计划任务及服务管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计划任务及服务管理相关的知识,希望对你有一定的参考价值。

Linux任务计划
  • 任务计划的配置文件及详解
    [[email protected] ~]# cat /etc/crontab 
    SHELL=/bin/bash  ##定义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   再加上用户和命令
  • 制定任务计划的格式
    • 分范围0-59,时范围0-23,日范围0-31,月范围0-12,周1-6
    • 格式1,2,3表示1或者2或者3
    • 格式*/2表示被2整除的数字,比如小时就是每隔2小时
      [[email protected] ~]# crontab -e
      no crontab for root - using an empty one
      0 3 * * * /bin/bash /usr/local/sbin/123.sh >/tmp/123.log 2>/tmp/123.log  ##每天的三点,这里的命令要写绝对路径
      0 3 1-10 */2 2,5 /bin/bash /usr/local/sbin/123.sh >/tmp/123.log 2>/tmp/123.log ##1-10号的3点,每两个月(双月),周2和周五
  • 制定任务计划的条件
    • 启动服务crond
      [[email protected] ~]# systemctl start crond
      [[email protected] ~]# ps aux |grep crond
      root       587  0.0  0.0 126264  1644 ?        Ss   08:40   0:00 /usr/sbin/crond -n
      root      1321  0.0  0.0 112680   984 pts/0    S+   09:10   0:00 grep --color=auto crond
      [[email protected] ~]# systemctl status crond
      ● crond.service - Command Scheduler
      Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
      Active: active (running) since 六 2018-05-12 08:40:05 CST; 32min ago
    • 遵照格式编写,命令要写绝对路径,要输出到日志文件
    • crontab命令
    • crontab -e编写任务计划
    • crontab -r删除任务计划
    • crontab -l查看任务计划
    • crontab -u root -l指定用户
    • /var/spool/cron/root任务计划的保存文件,用户名为用户的文件
      [[email protected] ~]# crontab -e
      crontab: installing new crontab
      [[email protected] ~]# crontab -l
      1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f
      [[email protected] ~]# cat /var/spool/cron/root 
      1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f
      [[email protected] ~]# crontab -r
      [[email protected] ~]# crontab -l -u root
      no crontab for root

      系统服务管理chkconfig

  • 7以前的版本使用的,管理的服务称为SysV服务,7以后为systemd服务
    [[email protected] ~]# 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:关
  • 服务所在的目录
    [[email protected] ~]# ls /etc/init.d/
    functions  netconsole  network  README
  • chkconfig --list列出服务状态
  • chkconfig network on 开启服务开机启动
    • 开启的为默认级别启动
  • chkconfig --level 345 network off指定级别
  • 自定义启动脚本并开机启动
    
    [[email protected] ~]# cp /etc/init.d/network /etc/init.d/123
    [[email protected] ~]# ls /etc/init.d/
    123  functions  netconsole  network  README
    [[email protected] ~]# chkconfig --add 123
    [[email protected] ~]# chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

  要列出 systemd 服务,请执行 ‘systemctl list-unit-files‘。
  查看在具体 target 启用的服务请执行
  ‘systemctl list-dependencies [target]‘。

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


- chkconfig --del 123删除服务
# 系统服务管理systemd
- 列出服务
  - systemctl list-unit-files列出所有的服务及服务状态
  - systemctl list-units --all --type=service列出所有service服务包括了未激活和激活的,去掉--all就不会列出未激活的
- 控制服务启动命令
  - 

以上是关于计划任务及服务管理的主要内容,如果未能解决你的问题,请参考以下文章

进程和计划任务管理

任务计划cron / chkconfig工具/ system管理服务/unit及target介绍

进程管理工具及任务计划

进程和计划任务管理(纯理论,多学多看多思考)

Linux系统中查看进程和计划任务管理

进程和计划任务管理