crontab工具可以用来让系统执行一些周期性任务,其在ubuntu下服务名字叫cron;在centos下服务名字叫crond。
你可以通过crontab这个命令查看或修改具体的配置:
crontab -l #列出配置文件内容
crontab -e #进入配置文件编辑
编辑一般就是进入的vi编辑器。用crontab -e修改的配置会直接生效,不需要重启crontab的后台服务。如果重启后台服务了,那么所有的任务都会重新开始计时。当你的配置写着每隔一个小时执行某个任务,那么要等到下一个小时的时候才会执行任务。
一开始推荐写上这样一个每分钟的echo命令来看看crontab的具体运行情况。
* * * * * echo "test"
一般日志是默认在 /var/log/cron
那里(centos)。
然后上面的配置含义是 :
分 时 日 月 星期几 命令
其中小时是24时制,星期几0表示星期日,1表示星期一。后面的命令就是一行简单的shell命令,如果是多行命令的话建议写成bash脚本,然后给这个脚本可执行权限,然后写上该脚本的绝对路径名即可。
NOTICE: crontab里面执行的命令不是在shell环境下,比如pyenv环境就可能不会正常工作,推荐要使用什么命令什么文件都使用绝对路径。
每五分钟:
*/5 * * * *
每三个小时:
0 */3 * * *
注意前面分钟一定要写上0,这是新手很容易犯的一个错误。
每天早上七点钟:
0 7 * * *
一些常见的crobtab配置
本小节参考了 这篇文章 。
- 每月
0 0 1 * *
- 每周
0 0 * * 0
- 每天
0 0 * * *
- 每五个小时
0 */5 * * *
- 每三十分钟
*/30 * * * *
定时备份crontab配置
远程连接服务器,在进行crontab -e编辑的时候如果失去连接或者怎么意外终止了,那么你之前所有的crontab配置都会清空!!
所以请加个定时备份你的crontab配置命令:
* */1 * * * crontab -l > /home/backup/crontab.back