• 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍


    linux任务计划 

    任务计划:特定时间备份数据,重启服务,shell脚本,单独的命令等等。

    任务计划配置文件:cat /etc/crontab

     

    [root@pantinglinux]# cat /etc/crontab 

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    # For details see man 4 crontabs

    # Example of job definition:

    # .---------------- minute (0 - 59)

    # |  .------------- hour (0 - 23)

    # |  |  .---------- day of month (1 - 31)

    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

    # |  |  |  |  |

    # *  *  *  *  * user-name  command to be executed

     

     

    shell脚本,PATH环境变量,MAILTO发送邮件给谁

    时间5个位置格式依次:

    分钟,小时,几号,月份,星期;

    user-name             command to be executed

    用户(root可以省略)    最后是需要执行的命令。

    crontab  -e 需要执行的任务计划。

    每天凌晨3点执行的脚本

      0  3 * * * /bin/bash       /usr/local/sbin/123.sh  >>  /tmp/123.log   2>>/tmp/123.log

     

    /usr/local/sbin/123.sh  >>  /tmp/123.log  正确输出追加

    2>>/tmp/123.log  错误输出追加

     

     

     

    1到10号的3点 双月能被2整除的月份,星期周2和周5,

    0 3 1-10 */2   2,5  /bin/bash     /usr/local/sbin/123.sh>> /tmp/123.log    2>>/tmp/123.log

     

     

    没有年份:月份几号和星期确定年份的唯一性。

     

     

     

    启动服务:

    systemctl start crond

     

    查看是否启动:

    ps aux |grep cron

    或者:

    systemctl status crond

     

     

    注意:

    crontab -e编写脚本的时候:

    直接写命令有可能没有在PATH里面定义,或者用绝对路径,例如iptables 可以写成绝对路径/usr/sbin/iptables或者加入到PATH里面;

    此外还要添加一个错误日志用来查看执行信息。

     

     

    crontab -e编辑一个计划任务

    删除2月10点1分的大于100天的文件

    1 10 * 2 * /usr/bin/find     /tmp/ -type f -mtime +100 |xargs rm -f

     

    备份任务计划

    crontab任务文件存储在 /var/spool/cron/username

    这里面有对于用户的文件root,xiaobo用户等。

    直接拷贝这个目录路径文件即可。

     

     

    总结:

    crontab -u 、-e 、-l 、-r

    crontab -e编辑一个计划任务

    crontab -l 查看当前添加的计划任务

    crontab -r 删除当前计划任务

    crontab -u 指定一个用户

     

     

    格式: 分 时 日 月 周 user command

    文件 /var/spool/cron/username

     

    分范围0-59,时范围0-23 ,日范围0-31,月范围0-12,周1-6

    可用格式1-5表示一个范围1到5

    可用格式1,2,3表示1或者2或者3

    可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时要保证服务是启动状态

     

     

     

     

    linux系统服务管理工具chkconfig

    用来管理一些服务: network,mysql,httpd等等

     

    Chkconfig   --list列出当前的服务

    [root@pantinglinux]# chkconfig --list

    注:该输出结果只显示 SysV 服务,并不包含

    原生 systemd 服务。SysV 配置数据

    可能被原生 systemd 配置覆盖。 

          要列出 systemd 服务,请执行 'systemctl list-unit-files'。

          查看在具体 target 启用的服务请执行

          'systemctl list-dependencies [target]'。

    netconsole     0:关 1:关 2:关 3:关 4:关 5:关 6:关

    network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

     

    系统7个运行级别0~6

    0级别 关机状态

    1级别 单用户

    2级别 多用户模式不带图形不带nfs服务

    3级别 多用户模式不带图形

    4级别 保留

    5级别 多用户带图形

    6级别 重启状态

    服务启动脚本存储在:/etc/init.d/

    [root@pantinglinux]# ls /etc/init.d/

    functions  netconsole  network  README

    关闭服务:systemctl network off

    开启服务:systemctl network on

     

     

    /etc/inittab 不再使用

     

     

    network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

    指定3级别关闭

    chkconfig  --level 3 network  off

    指定345级别关闭

    chkconfig  --level 345 network off

     

    cd /etc/init.d/

    自定义一个脚本 cp network 123

    添加到服务

    chkconfig  --add 123

    删除服务

    chkconfig  --del  123

     

     

    systemd管理服务

    查看所有的服务

    [root@pantinglinux]# systemctl list-unit-files 

     

     

    列出所有的服务service,包括描述信息

    systemctl  list-units --all --type=service

     

     

    几个常用的服务相关的命令

    systemctl enable cond.service //让服务开机启动

    systemctl enable crond (.service可以省略)

     

    systemctl disable crond  //不让开启启动

     

    [root@pantinglinux]# systemctl is-enabled crond.service 

    enabled

    [root@pantinglinux]# systemctl disable crond.service 

    Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

    [root@pantinglinux]# systemctl is-enabled crond.service 

    disabled

     

    [root@pantinglinux]# systemctl enable crond.service 

    Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.

     

    Created symlink 创建软连接

     

     

    生成软连接

    [root@pantinglinux]# ls -l /etc/systemd/system/multi-user.target.wants/crond.service 

    lrwxrwxrwx 1 root root 37 1月  27 12:45 /etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/crond.service

     

    disable 会把软连接remove

     

    [root@pantinglinux]# systemctl disable crond.service 

    Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

     

     

    systemctl status crond //查看状态

    systemctl stop crond //停止服务

    systemctl start crond //启动服务

    systemctl restart crond //重启服务

     

    systemctl is-enableed crond //检查服务是否开机启动

     

     

     

    linux系统服务管理-systemd unit介绍

     

    ls /usr/lib/systemd/system //系统所有unit,分为以下类型

     

    service系统服务

     

    tartget 多个unit组成的组

     

    [root@centos7 systemd]# cd /usr/lib/systemd/system

    [root@centos7 system]# ls -l runlevel*

     

    7个运行级别 target

    lrwxrwxrwx. 1 root root 15 12月 19 05:49 runlevel0.target -> poweroff.target

    lrwxrwxrwx. 1 root root 13 12月 19 05:49 runlevel1.target -> rescue.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel2.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel3.target -> multi-user.target

    lrwxrwxrwx. 1 root root 17 12月 19 05:49 runlevel4.target -> multi-user.target

    lrwxrwxrwx. 1 root root 16 12月 19 05:49 runlevel5.target -> graphical.target

    lrwxrwxrwx. 1 root root 13 12月 19 05:49 runlevel6.target -> reboot.target

     

     

     

    device硬件设备

    mount 文件系统挂载点

    automount 自动挂载点

    path 文件或路径

    scope 不是由 systemd 启动的外部进程

    slice进程组

    snapshot systemd 快照

    socket 进程间通信套接字

    swap swap文件

    timer 定时器

    unit相关的命令

     

    systemctl list-units   //列出正在运行的unit

     

     systemctl  list-units --all //列出所有,包括失败的或者inactive的

     

    systemctl list-units --all --state=inactive //列出inactive的unit

     

    systemctl list-unit --type=service //列出状态为active的service

     

    systemctl is-active crond.service  //查看某个服务示范为active]

    systemctl is-enable crond.service //查看服务是否开启

     

     

    target 

    系统为了方便管理用target来管理unit

     

    一个target 由多个unit组成。

    列出系统里面所有的target

    systemctl list-unit-files --type=target

     

     

    systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit

    大多数是service

     

     

    systemctl get-default //查看系统默认的target

    systemctl set-default multi-user.target  //设置默认的多用户target

     

     

    一个service属于一种类型的unit

    多个unit组成了一个target

    一个target里面包含了多个service

     

     

    cat /usr/lib/systemd/system/sshd.service //查看[install]部分

    sshd.service 属于multi-user.target

    [Install]

    WantedBy=multi-user.target

  • 相关阅读:
    9.1、PHP 中的函数
    7.2.2、二维数组中包含自定义键数组的打印
    Windows 8 VHD 概述与使用
    8.2、磁盘、目录和文件计算
    7.2.6、随机取出数组中的某个下标
    7.2.3、数组排序
    7.2.7、数组指针的操作
    CentOS6 下 JDK7 + jBoss AS 7 环境搭建
    How to iterate HashMap using JSTL forEach loop
    windows 8 非内置系统管理员获得完整权限的方法
  • 原文地址:https://www.cnblogs.com/pta188/p/9023952.html
Copyright © 2020-2023  润新知