通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作
命令格式
crontab [-u user] [-e|-l|-r]命令参数
* -u user: 用来设定某个用户的crontab服务.* file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
* -e: 编辑某个用户的crontab文件内容, 如果不指定用户, 则表示编辑当前用户的crontab文件.
* -l: 显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
* -r: 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件.
* -i: 在删除用户的crontab文件时给确认提示。
crontab的文件格式
分 时 日 月 星期 要运行的命令* 第1列分钟1~59
* 第2列小时1~23(0表示子夜)
* 第3列日1~31
* 第4列月1~12
* 第5列星期0~6(0表示星期天)
* 第6列要运行的命令
常用方法
使用实例
1. 每一分钟执行一次myCommand* * * * * myCommand
2. 每小时的第3和第5分钟执行
3,15 * * * * myCommand
3. 上午8点到11点的第3和第15分钟执行.
3,15 8-11 * * * myCommand
4. 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
5. 每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
6. 每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
7. 每月1, 10, 22 日的4:45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
8. 每周六, 周日的1:10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
9. 每天18:00 至 23:00 之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
10. 每周六的晚上11:00 pm 重启smb
0 23 * *6 /etc/init.d/smb restart
11. 每一小时重启smb
* */1 * * * /etc/init.d/smb restart
12. 晚上11点到早上7点之间, 每隔一个小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
13. 每五分钟执行
*/5 * * * *
14. 每小时执行
0 * * * *
15. 每天执行
0 0 * * *
16. 每周执行
0 0 * * 0
17. 每月执行
0 0 1 * *
18. 每年执行
0 0 1 1 *