Linux定时执行任务crontab
常用操作
启动停止服务
1 | systemctl start cron |
查看所有用户 crontab
1 | cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {} |
配置
全局配置
crontab 在/etc 目录下面存在 cron.hourly、cron.daily、cron.weekly、cron.monthly、cron.d 五个目录, 这些相当于快捷方式, 直接将你的脚本扔进去就可以
和 crontab、cron.deny 二个文件。
目录 | 作用 |
---|---|
cron.daily | 每天执行 |
cron.weekly | 每周执行 |
cron.monthly | 每月执行 |
cron.hourly | 每小时执行 |
crontab | 系统级任务, 在这里面调用了上面几个 |
用户配置文件
直接使用 crontab -e
编辑就行, -e
使用的编辑器可以通过 select-editor
来指定
或者使用 crontab -u www-data -e
指定用户执行。
配置文件在 /var/spool/cron
下
crontab 文件格式
1 | # Example of job definition: |
特殊字符
符号 | 含义 |
---|---|
* | 代表每的意思,例如 month 字段如果是星号,则表示每月都执行该命令操作。 |
, | 表示分隔时段的意思,例如,“1,3,5,7,9”。 |
- | 表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。 |
/ | 可以用正斜线指定时间的间隔频率,例如 0-23/2 表示每两小时执行一次。同时正斜线可以和星号一起使用,例如 */10 |
示例
1 | # 每月每天每小时的第 0 分钟执行一次 /bin/ls |
下面再看看几个具体的例子:
1 | 0 */2 * * * /sbin/service httpd restart # 意思是每两个小时重启一次apache |
注意:当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1
即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论