1.介绍
使用crontab –help,可以看到下面的选项
usage:
crontab
[-u user]
file
crontab
[-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's
crontab
)
-l (list user's
crontab
)
-r (delete user's
crontab
)
-i (prompt before deleting user's
crontab
)
-s (selinux context)
配置文件位于/var/spool/cron/crontabs/<username>,记得备份配置文件,配置丢失可以找回。但是更建议使用crontab -e命令直接编辑。
2.crontab 设置和规则
2.1 /etc/crontab 里可以配置以下变量:
- 1.SHELL 指明系统要使用哪个shell,例如bash
- 2.PATH 指定了系统执行命令的路径
- 3.MAILTO 可以设置crond任务信息通过邮件发送
- 4.HOME 指定了在执行命令或者脚本时使用的主目录。
2.2时间规则设置
* * * * * 分别代表了分钟/小时/每月的天/月份/周几
我的理解 crontab 时间规则大体分为三种:时间点,时间段,频率
2.2.1 时间点:比如几点执行,几分执行,可以单用数字表示
eg.我要在每天12点45分执行打包动作
45 12 * * * zip -r test.zip test/
或者每小时的第10分钟,20分钟,40分钟的时候执行打包任务
10,20,40 * * * * zip -r test.zip test/
2.2.2 时间段:比如几点到几点执行什么动作,可以用-来表示
eg.我要在上午8到12点的整点时刻进行打包
0 8-12 * * * zip -r test.zip test/
2.2.3 频率,比如隔几个小时执行什么动作,可以用/来表示
eg.我要每隔2个小时打包一次
* */2 * * * zip -r test.zip test/
2.2.4还可以时间段和频率进行组合,某时间段内每多长时间执行一次。
eg.我要在上午6点到12点,每隔一小时打包一次
* 6-12/1 * * * zip -r test.zip test/
或者我要在上午6点到12点,每隔十分钟打包一次
*/10 6-12 * * * zip -r test.zip test/
后面 的天、月份、周都可以这么用,在这儿抛砖引玉了。