cron定时任务命令
crontab -l 查看定时任务列表
crontab -e 编辑定时任务列表
cron定时任务的配置文件
定时任务在 /var/spool/cron/ 下,以用户名字命名的文件,文件里就是定时任务的指令
比如: /var/spool/cron/root(是需要备份的)
cron表达式的语法规则
每个*中间都要有一个空格
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
特殊符号:
定时任务的日志地址
/var/log/cron
注意
1)定时任务后面执行的命令不能有百分号,如果非要有就要转义 \
2)定时任务尽量用脚本(命令放到文件里)。脚本结尾加.sh
3)/bin/sh 脚本全路径
4)&>/dev/null或者>/dev/null 2>&1
5)有软链接的文件要写源文件
实践
往/data/oldboy/test.log,每分钟追加一个 “I study linux `date`”。
crontab -l
### print char by yangyang for oldboy at 20300609
* * * * * echo "I study linux `date`" >>/data/oldboy/test.log
让服务器时间每5分钟和互联网时间做一次同步
crontab -l
### sync time by oldboy for lingdao at 20300609
*/5 * * * * /usr/sbin/ntpdate ntp5.aliyun.com >/dev/null 2>&1
每天晚上00点10分,打包备份
cat tar.sh
/usr/bin/tar -zcvf /backup/$(date +%Y-%m-%d:%H:%M:%S) /etc/rc.d/rc.local /var/spool/cron/root /etc/hosts
crontab -l
10 00 * * * /bin/bash /server/scripts/tar.sh &>/dev/null
生产环境定时任务书写要领
要领1:为定时任务规则加必要的注释
要领2:尽量以脚本形式执行
要领3:在执行的Shell脚本前加上/bin/sh
要领4:定时任务配置结尾加>/dev/null 2>&1
要领5:在指定用户下执行相关定时任务
要领6:生产任务计划程序中不要随意打印输出信息
要领7:执行的脚本要存放到规范路径下
要领8:配置定时任务要规范操作过程,减少出错
要领9:定时任务脚本中程序命令及路径尽量用全路径
要领10:时间变量%号要用反斜线转义
要领11:若脚本中调用了系统环境变量,要重新定义