一. 参数说明
crontab -l (小写) 查看root用户系统定时任务
crontab -e 配置定时任务
crontab -u oldgirl -l 伪装成oldgirl身份查看oldgirl用户的定时任务信息
tail -f /var/log/cron 查看确认定时任务是否已经执行过
crontab -r 删除用户的定时任务(小心)
ps -ef|grep crond 确认定时任务服务是否正在运行
二. 系统定时任务
/etc/cron.hourly/ 每小时间隔执行定时任务
/etc/cron.daily 每天
/etc/cron.monthly 每月
/etc/cron.weekly 每周
将编写好的脚本文件放入到下面目录中
[root@oldboy-xiaodao.com.cn ~]# vim /etc/cron.hourly/test.sh
#!/bin/bash
echo oldboy.info >>/tmp/oldboy_hour.txt
三. 用户定时任务
3.1 定时任务配置过程
3.1.1 在命令行测试命令是否有问题
3.1.2 编写脚本信息, 并且授权脚本文件为执行权限
3.1.3 命令行直接运行脚本
3.1.4 编写定时任务
crontab -e
# cronid-01 time sync --添加注释信息
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
# xxxxx
* * * * * /bin/sh /server/scripts/date_info.sh &>/dev/null
3.1.5 检查日志文件, 确认命令是否触发
3.2 定时任务语法
四. 注意事项
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 备份文件时文件名称有日期信息
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