cron定时任务介绍
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
crontab命令的基本格式:
crontab [参数] [文件名]
如果没有指定文件名,则接收键盘上输入的命令,并将它载入到 crontab 。
crontab参数:
参数 | 功能 |
---|---|
-u | 指定用户 |
-e | 编辑某个用户的crontab文件内容 |
-l | 显示某个用户的crontab文件内容 |
-r | 删除某个用户的crontab文件 |
-i | 删除某个用户的crontab文件时需确认 |
以上参数,如果没有使用 -u 指定用户,则默认使用的当前用户。
通过 crontab -e 命令编辑文件内容,具体语法如下:
[分] [小时] [日期] [月] [星期] 具体任务
其中:
-
分,表示多少分钟,范围:0-59
-
小时,表示多少小时,范围:0-23
-
日期,表示具体在哪一天,范围:1-31
-
月,表示多少月,范围:1-12
-
星期,表示多少周,范围:0-7,0和7都代表星期日
还有一些特殊字符,比如:
-
代表如何时间,比如: 1** 表示每天凌晨1点执行。
-
/ 代表每隔多久执行一次,比如: */5 **** 表示每隔5分钟执行一次。
-
, 代表支持多个,比如: 10 7,9,12 *** 表示在每天的7、9、12点10分各执行一次。
-
代表支持一个范围,比如: 10 7-9 *** 表示在每天的7、8、9点10分各执行一次。
可以通过以下命令操作相关服务:
service crond status // 查看运行状态
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
示例:
实例1:每1分钟执行一次myCommand
* * * * * 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
0 */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart