crontab命令
网址:http://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html
一、crontab介绍
通过crontab命令可以在固定的间隔时间指定系统指令或shell脚本。时间间隔的单位可以使分钟、小时、日、月、周及以上的任意组合。
适用场景:周期性的日志分析或数据备份。
二、crontab命令格式
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
crontab -n [ hostname ]
crontab -c
三、crontab命令参数
-u <user> define user #用来设定某个用户的crontab服务
-e edit user's crontab #编辑某个用户下的crontab文件内容
-l list user's crontab #列出某个用户下的crontab文件内容
-r delete user's crontab #删除某个用户下的crontab定时任务
-i prompt before deleting #在删除用户的crontab文件时给确认提示
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging
四、crontab文件格式
* * * * * 运行的命令
分 时 日 月 星期 要运行的命令
第1列分钟0~59
第2列小时0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令
五、常用实例
每1分钟执行一次myCommand
* * * * * myCommand
每小时的第3和第15分钟执行
3,15 * * * * myCommand
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
0 23-7 * * * /etc/init.d/smb restart
六、总结
符号 | 含义 |
---|---|
* | 表示任意时间,比如第一个“*”就代表一小时中的每分钟都执行一次的意思 |
,(逗号) | 表示不连续的时间,比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行命令 |
-(减号) | 表示连续时间的范围,比如“0 4 * * 1-6”.代表在每周一到周六的凌晨4点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“/10 * * * *”命令,代表每隔10分钟执行一次命令 |