在 linux centos7上使用crontab定时任务,自动定时执行脚本
在 centos7上使用crontab定时任务,自动定时执行脚本
添加/编辑 Crontab
crontab -e
crontab [-u username] -e
默认情况下,系统会编辑当前用户的crontab命令集合
查看Crontab
crontab -l
crontab [-u username] -l
删除Crontab
crontab -r
crontab [-u username] -r
慎用。可以直接crontab -e 进行编辑
载入
crontab [-u user] file
将file做为crontab的任务列表文件并载入crontab
如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
配置路径
/var/spool/cron/root (以用户命名的文件) 是所有默认存放定时任务的文件
/etc/cron.deny 该文件中所列出用户不允许使用crontab命令
/etc/cron.allow 该文件中所列出用户允许使用crontab命令,且优先级高于/etc/cron.deny/var/log/cron 该文件存放cron服务的日志
示例
每五分钟执行 */5 * * * *
每105分钟执行一次 */105 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
1.每天 02:00 执行任务
0 2 * * * /bin/sh backup.sh
2.每天 5:00和17:00执行任务
0 5,17 * * * sh /a.sh
3.每分钟执行一次任务
* * * * * sh /a.sh
4.每周日 17:00 执行任务
0 17 * * sun sh /a.sh
5.每 10min 执行一次任务
*/10 * * * * sh /a.sh
6.在特定的某几个月执行任务
* * * jan,may,aug * /script/script.sh
7.在特定的某几天执行任务
0 17 * * sun,fri /script/scripy.sh
在每周五、周日的17点执行任务
8.在某个月的第一个周日执行任务
0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
9.每四个小时执行一个任务
0 */4 * * * sh /a.sh
10.每周一、周日执行任务
0 4,17 * * sun,mon sh /a.sh
11.每30秒执行一次任务
* * * * * sh /a.sh
* * * * * sleep 30; sh /a.sh
12.多个任务在一条命令中配置
* * * * * sh /a.sh sh /b.sh
13.每年执行一次任务
@yearly sh /a.sh
@yearly 类似于“0 0 1 1 *”。它会在每年的第一分钟内执行,通常我们可以用这个发送新年的问候。
14.系统重启时执行
@reboot sh /a.sh
15.将 Cron 结果重定向的特定的账户
默认情况下,cron 只会将结果详情发送给 cron 被制定的用户。如果需要发送给其他用户,可以通过如下的方式:
# crontab -l
MAIL=bob
0 2 * * * /script/backup.sh