crontab 用法及举例

前提

        当前linux环境 已经安装crontab

使用方法

1.在当前linux环境执行下面的指令,打开crontab 的执行文件:

crontab -e

2.在执行文件中,将 crontab 指令写入文件中,并用 vi命令保存即可

例子:每个月月初执行 root目录下的 test.sh 脚本

0 0 1 * * /root/test.sh

        或将shell的执行日志保存到 /root/mylog.log 下

0 0 1 * * /root/test.sh >> /root/mylog.log 2>&1

        完成以上两步,定时任务就创建成功了,就是这么简单,使用 crontab -l 命令就可以看到你刚列的定时任务

常用命令

        1、crontab -e: 编辑当前用户的crontab任务

        2、crontab -l: 列出当前用户的crontab任务

        3、crontab -r: 删除当前用户的crontab任务

         4、sudo crontab -u username -e: 编辑指定用户的crontab任务

        5、crontab -i: 在删除当前用户的crontab任务时提示确认

crontab任务格式解释

        用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,中间用空格隔开,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command

即:        

        *  *  *  *  *  command
        分  时  日  月    周   命令

其中:

        minute:表示分钟,可以是从0到59之间的任何整数。

        hour:表示小时,可以是从0到23之间的任何整数。

        day:表示日期,可以是从1到31之间的任何整数。

        month:表示月份,可以是从1到12之间的任何整数。

        week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

        command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

常用举例

Cron表达式范例:
             每隔5秒执行一次:*/5 * * * * ?
 
             每隔1分钟执行一次:0 */1 * * * ?
 
             每天23点执行一次:0 0 23 * * ?
 
             每天凌晨1点执行一次:0 0 1 * * ?
 
             每月1号凌晨1点执行一次:0 0 1 1 * ?
 
             每月最后一天23点执行一次:0 0 23 L * ?
 
             每周星期天凌晨1点实行一次:0 0 1 ? * L
1、每天6:00执行
0 6 * * * root /home/mvp/test.sh
 
2、每周六凌晨4:00执行
0 4 * * 6 root /home/mvp/test.sh
 
3、每周六凌晨4:05执行
5 4 * * 6 root /home/mvp/test.sh 
 
4、每周六凌晨4:15执行
15 4 * * 6 root /home/mvp/test.sh
 
5、每周六凌晨4:25执行
25 4 * * 6 root /home/mvp/test.sh
 
6、每周六凌晨4:35执行
35 4 * * 6 root /home/mvp/test.sh
 
7、每周六凌晨5:00执行
5 * * 6 root /home/mvp/test.sh
 
8、每天8:40执行
40 8 * * * root /home/mvp/test.sh
 
9、每天8:30执行
30 8 * * * root /home/mvp/test.sh
 
10、每周一到周五的11:41开始,每隔10分钟执行一次    #值得借鉴
41,51 11 * * 1-5   root /home/mvp/test.sh
或者
1-59/10 12-23 * * 1-5   root /home/mvp/test.sh
 
11、在每天的10:31开始,每隔2小时重复一次
31 10-23/2 * * * root   /home/mvp/test.sh
 
12、每天15:00执行
0 15 * * *  root /home/mvp/test.sh
 
13、每天的10:30开始,每隔2小时重复一次
30 10-23/2 * * * root  /home/mvp/test.sh
 
14、每天15:30执行
30 15 * * *  root /home/mvp/test.sh
 
15、每天17:50执行
50 17 * * *  root /home/mvp/test.sh
 
16、每天8:00执行
0 8 * * *  root  /home/mvp/test.sh
 
17、每天18:00执行
0 18 * * *  root  /home/mvp/test.sh
 
18、每天8:30执行
30 8 * * *  root  /home/mvp/test.sh
 
19、每天20:30
30 20 * * *  root /home/mvp/test.sh
 
20、每周一到周五2:00
0 2 * * 1-5 root /home/mvp/test.sh
 
21、每周一到周五9:30
30 9 * * 1-5 root /home/mvp/test.sh
 
22、每周一到周五8:00,每周一到周五9:00 
0 8,9 * * 1-5  root /home/mvp/test.sh
 
23、每天23:59 
59 23 * * *  root  /home/mvp/test.sh 

24、每周六23:59
59 23 * * 6  root    /home/mvp/test.sh
 
25、每天0:30 
30 0 * * *  root  /home/mvp/test.sh
 
26、每周一到周五9:25到11:35之间、13:00到15:00之间,每隔10分钟运行一次 
分区段写值得借鉴 
25,35,45,55  9 * * 1-5  root   /home/mvp/test.sh 
5-59/10  10 * * 1-5  root   /home/mvp/test.sh 
5,15,25,35  11 * * 1-5  root   /home/mvp/test.sh 
*/10  13-15 * * 1-5  root   /home/mvp/test.sh
 
27、每周一到周五8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 
30,50 8 * * 1-5  root  /home/mvp/test.sh 
30 9 * * 1-5  root  /home/mvp/test.sh 
*/30 10-11 * * 1-5  root  /home/mvp/test.sh 
30 13 * * 1-5  root  /home/mvp/test.sh 
0,30 14-15 * * 1-5  root  /home/mvp/test.sh
 
28、每天23:50执行 
50 23 * * *  root  /home/mvp/test.sh
 
29、每天10:00、16:00执行 
0 10,16 * * *  root /home/mvp/test.sh
 
30、每天5:30执行 
30 5 * * *  root  /home/mvp/test.sh
 
31、每周一到周五9:30执行 
30 9 * * 1-5  root  /home/mvp/test.sh
 
32、每周一到周五13:00执行 
0 13 * * 1-5  root  /home/mvp/test.sh
 
33、每天7:51执行 
51 7 * * *  root /home/mvp/test.sh
 
34、每天7:53、12:40分别执行一次 
53 7 * * *  root /home/mvp/test.sh 
40 12 * * *  root /home/mvp/test.sh
 
35、每天7:55执行 
55 7 * * *  root  /home/mvp/test.sh
 
36、每天8:10、16:00、20:00分别执行一次 
10 8 * * *  root  /home/mvp/test.sh
 
0 16 * * *  root  /home/mvp/test.sh
 
0 20 * * *  root  /home/mvp/test.sh
 
37、每天7:57、8:00分别执行一次 
57 7 * * *  root  /home/mvp/test.sh
 
0 8 * * *  root  /home/mvp/test.sh
 
             在26分、29分、33分执行一次:0 26,29,33 * * * ?
 
             每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
 
实例1:每1分钟执行一次command
 
命令:
 
* * * * * command
 
实例2:每小时的第3和第15分钟执行
 
命令:
 
3,15 * * * * command
 
 
 
实例3:在上午8点到11点的第3和第15分钟执行
 
命令:
 
3,15 8-11 * * * command
 
 
 
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
 
命令:
 
3,15 8-11 */2 * * command
 
 
 
实例5:每个星期一的上午8点到11点的第3和第15分钟执行
 
命令:
 
3,15 8-11 * * 1 command
 
 
 
实例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:每月的4号与每周一到周三的11点重启smb 
 
命令:
 
0 11 4 * mon-wed /etc/init.d/smb restart
 
 
 
实例14:一月一号的4点重启smb 
 
命令:
 
0 4 1 jan * /etc/init.d/smb restart
 
实例15:每小时执行/etc/cron.hourly目录内的脚本
 
命令:
 
01   *   *   *   *     root run-parts /etc/cron.hourly
 
说明:
 
run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了
 

注意事项

        新创建的crontab任务,不会马上执行,至少要过2分钟才行。如果重启crontab则马上执行。

        当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

        千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值