crontab学习笔记
1. 格式
每隔两分钟执行
*/2 * * * * cmd
每小时的奇数分钟执行,(0不执行,1执行)
1-59/2 * * * * cmd
每天18:00至23:00间每隔30分钟
0,30 18-23 * * * cmd
0-59/30 18-23 * * * cmd
A,B,C A或B或C
A-B A到B之间
*/A 每A分钟(小时等)
crontab -l [-u 用户]
-e
-u 指定用户
2.配置文件
crontab 文件名, 文件命中计划全部覆盖
/etc/cron.d目录中添加任务文件(系统级计划),写计划时指定用户,作为用户计划任务的补充,crontab -l -u时看不到。
e.g.添加文件内容:
*/1 * * * * root echo "File in /etc/cron.d/crontest*********"
crontab -e的效果和vi /var/spool/cron/tabs/用户相同
3 日志信息
(不同linux相应日志文件名可能有些出入,本系统为suse)
/var/mail/用户 文件记录了日志信息,其中Subject后为执行的命令
/var/log/messages 也是日志信息,比较简明,一般查看此处
其内容形式:
Aug 13 20:17:01 prehost /usr/sbin/cron[7579]: (xdself) CMD ( echo xd && date)
4 技巧及常见错误
实现每半分钟执行一次,用sleep实现
*/1 * * * * cmd
*/1 * * * * sleep 30s;cmd
e1: .bash_profile中环境变量 echo $var 空
e2: 第三和第五个域间执行的是“或”操作
实现每周一执行:
59 1 1-7 4 1 cmd (错误)
命令中注意%前加\转义
59 1 1-7 4 * test `date +\%w` -eq 1 && cmd (正确)
e3: 分钟的设置。
两小时运行一次
* */2 * * * cmd (错误)
0 */2 * * * cmd (正确)

浙公网安备 33010602011771号