Linux 任务计划crontab
Linux 任务计划crontab
crontab 简介
这里我们看一看crontab 的格式
1 | # Example of job definition: |
crontab 准备
crontab 在本实验环境中需要做一些特殊的准备,首先我们会启动 rsyslog,以便我们可以通过日志中的信息来了解我们的任务是否真正的被执行了(在本实验环境中需要手动启动,而在自己本地中 Ubuntu 会默认自行启动不需要手动启动)
1 | sudo service rsyslog start |
在本实验环境中 crontab 也是不被默认启动的,同时不能在后台由 upstart 来管理,所以需要我们来启动它(同样在本实验环境中需要手动启动,自己的本地 Ubuntu 的环境中也不需要手动启动)
1 | sudo cron -f & |
crontab 使用
添加计划任务
1 | crontab -e |
在文档的最后一排加上这样一排命令,该任务是每分钟我们会在 /home/shiyanlou
目录下创建一个以当前的年月日时分秒为名字的空白文件
1 | */1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S) |
查看添加的任务
1 | crontab -l |
察看任务是否启动
1 | ps aux | grep cron |
若没有启动,执行上文准备中的第二步
查看日志
1 | sudo tail -f /var/log/syslog |
删除任务
1 | crontab -r |
crontab 的深入
每个用户使用 crontab -e
添加计划任务,都会在/var/spool/cron/crontabs
中添加一个该用户自己的任务文档,这样目的是为了隔离。
如果是系统级别的定时任务只需要以 sudo
权限编辑 /etc/crontab
文件就可以。
cron 服务监测时间最小单位是分钟,所以 cron 会每分钟去读取一次 /etc/crontab
与 /var/spool/cron/crontabs
里面的內容。
在 /etc
目录下,cron 相关的目录有下面几个:
1 | 1. /etc/cron.daily,目录下的脚本会每天执行一次,在每天的6点25分时运行; |
系统默认执行时间可以根据需求进行修改。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeureka!