下面我以 centos7
为例来介绍我们在 linux
中如何创建定时任务
查看是否安装了 cron 服务
安装 cron
查看 cron 状态,设为开机启动
1 2 3 4 5
| systemctl status crond #查看状态 systemctl start crond #启动 systemctl restart crond #重启 systemctl enable crond #设为开机启动 systemctl start crond #启动crond服务
|
corntab 的一些命令
1 2 3 4
| crontab -help crontab -l #查看当前定时任务 crontab -e #新建定时任务 crontab -r #删除定时任务
|
crontab -e
新建定时任务后,可输入定时任务,可参考文件 /etc/crontab
1 2 3 4 5 6 7 8 9
| # Example of job definition:
# .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
|
crontab -e
新建定时任务后会在 /var/spool/cron
下生成 root
文件,里面即为定时任务
要使用该命令更新定时任务
1
| 1 * * * run-parts /etc/crontab-test
|
该任务表示每分钟执行一次/etc/crontab-test 目录下的所有 .sh
文件。
/etc/crontab-test 目录下新建需要执行的任务文件,该目录可以自定义
test.sh 内部代码如下,表示访问一个链接。
1 2
| #!/bin/sh curl http://***.com/test
|
还有一个问题,就是目录权限,如果 .sh
所在的目录没有权限,不会执行,具体验证可以直接在命令窗口执行 .sh
文件
1
| sh /etc/crontab-test/test.sh
|
如果报错,可根据报错给相应的目录 777
权限
还有具体的执行日志可以在目录 /var/log
中查看
定时例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| # 每天早上6点 0 6 * * *
# 每两个小时 0 */2 * * *
# 晚上11点到早上7点之间每两个小时和早上八点 0 23-7/2,8 * * *
# 每个月的4号【和】每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3
# 1月1日早上4点 0 4 1 1 *
# 每小时01分 01 * * * *
# 每天凌晨4点02分 02 4 * * *
# 每星期凌晨4点22分 22 4 * * 0
# 每月1号凌晨4点42分 42 4 1 * *
# 每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min 5,15,25,35,45,55 16,17,18 * * *
# 每周一,三,五的下午3:00 00 15 * * 1,3,5
# 每小时的10分,40分 10,40 * * * *
# 每年的一月和四月,4号到9号的3点12分和3点55分执行 12,55 3 4-9 1,4 *
|