一. 参数说明

  1. crontab -l (小写) 查看root用户系统定时任务
  2. crontab -e 配置定时任务
  3. crontab -u oldgirl -l 伪装成oldgirl身份查看oldgirl用户的定时任务信息
  4. tail -f /var/log/cron 查看确认定时任务是否已经执行过
  5. crontab -r 删除用户的定时任务(小心)
  6. ps -ef|grep crond 确认定时任务服务是否正在运行

二. 系统定时任务

  1. /etc/cron.hourly/ 每小时间隔执行定时任务
  2. /etc/cron.daily 每天
  3. /etc/cron.monthly 每月
  4. /etc/cron.weekly 每周
  5. 将编写好的脚本文件放入到下面目录中
  6. [root@oldboy-xiaodao.com.cn ~]# vim /etc/cron.hourly/test.sh
  7. #!/bin/bash
  8. echo oldboy.info >>/tmp/oldboy_hour.txt

三. 用户定时任务

3.1 定时任务配置过程

3.1.1 在命令行测试命令是否有问题

3.1.2 编写脚本信息, 并且授权脚本文件为执行权限

3.1.3 命令行直接运行脚本

3.1.4 编写定时任务

  1. crontab -e
  2. # cronid-01 time sync --添加注释信息
  3. */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
  4. # xxxxx
  5. * * * * * /bin/sh /server/scripts/date_info.sh &>/dev/null

3.1.5 检查日志文件, 确认命令是否触发

3.2 定时任务语法

image.png

四. 注意事项

4.1 在编写定时任务时, 一定不能把日期和周信息进行同时编辑

4.2 在定时任务执行的时候, 无法识别定时任务命令中的特殊字符,如 %

方法一: 特殊符号前面加上 \ 进行转译
方法二: 将有特殊符号的命令放入到脚本中运行

4.3 在定时任务中, 文件和命令要写绝对路径信息

4.4 在定时任务中, 识别的$PATH环境变量信息只有 /usr/bin 和 /bin

(慎用) 可以在定时任务配置文件开始定义新的PATH环境变量信息

4.5 在执行定时任务时, 在任务命令后面加上 &>/dev/null,将正确和错误输出到黑洞

4.6 编写定时任务规则之前加注释

4.7 超过两条命令,就用脚本替代命令执行定时任务

4.8 打包压缩使用相对路径(切到目标目录的上一级打包目标)

五. 案例

5.1 备份文件时文件名称有日期信息

  1. cp /etc/selinix/config /tmp/backup.`date +%F %T`

5.2 清除异常提示

You have new mail in /var/spool/mail/root —-记录定时任务执行过程中的错误信息
var/spool/mail/root 文件不断增大,导致磁盘容量不够用
解决方法: 定时任务中-命令或脚本结果(正确及错误)定向到黑洞&>/dev/null