在有些业务场景部署时需要创建定时任务,这里用Crontab命令来实现完成。Crontab的时间颗粒度可以精确到分钟,可以实现分钟、小时、日、月、周的任意组合。该命令适合对任务周期性有比较高要求的场合,比如定期分析系统日志、上报状态等。
Crontab的命令行格式
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
Crontab的命令行参数
- -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列分钟0~59
- 第2列小时0~23(0表示子夜)
- 第3列日1~31
- 第4列月1~12
- 第5列星期0~7(0和7表示星期天)
- 第6列要运行的命令
Crontab文件创建
以Ubuntu 18.04为例,创建一个Crontab文件,实现每天6点和18点定时重启系统,则输入Vim /etc/crontab
0 0 6,18 * * /sbin/reboot
更多使用样例
实例1:每1分钟执行一次myCommand
* * * * * myCommand
每两分钟运行一次
*/2 * * * * myCommand
实例2:每小时的第3和第15分钟执行
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
0 23-7 * * * /etc/init.d/smb restart
保存后退出即可。
[参考文章]
本文由作者 Leeco 发布在 WirelessLink , 转载请联系客服授权处理,获得授权后请保留文章的完整性并附上原文链接: https://wirelesslink.net/5090.html