Crontab 介绍
Crontab 安装
查看是否已安装:
- CentOS:
rpm -qa | grep cron
- Ubuntu:
dpkg -l | grep cron
- CentOS:
安装(一般系统是集成的):
- CentOS 6 / 7:
sudo yum install -y vixie-cron crontabs
- Ubuntu:
sudo apt-get install -y cron
- CentOS 6 / 7:
服务常用命令
- CentOS 6
service crond start
启动服务service crond stop
关闭服务service crond restart
重启服务
- CentOS 7
systemctl start crond
启动服务systemctl restart crond
重新启动服务systemctl status crond
加入自启动systemctl stop crond
关闭服务
- CentOS 6
Crontab 服务器配置文件常用参数
- 配置文件介绍(记得先备份):
sudo vim /etc/crontab
- 注意:不要在配置文件里面写相对路径
- 该配置格式解释:
- 常用例子介绍:
30 21 * * * service httpd restart
#每晚的 21:30 重启 apache30 21 * * 6,0 service httpd restart
#每周六、周日的 21:30 重启 apache45 4 1,10,22 * * service httpd restart
#每月的 1、10、22 日的 4:45 重启 apache45 4 1-10 * * service httpd restart
#每月的 1 到 10 日的 4:45 重启 apache*/2 * * * * service httpd restart
#每隔两分钟重启 apache1-59/2 * * * * service httpd restart
#每隔两分钟重启 apache(这个比较特殊:1-59/2 这个表示过掉0分,从 1 分开始算,每隔两分执行,所以 1 分执行了,3 分执行了,5 分执行了....都是奇数进行执行。默认的 */2 都是偶数执行。)* */2 * * * service httpd restart
#每隔两小时重启 apache0 23-7/2 * * * service httpd restart
#晚上 11 点到早上 7 点之间,每隔 2 个小时重启 apache0-59/30 18-23 * * * service httpd restart
#每天 18:00 到 23:00 之间,每隔 30 分钟重启 apache(方法一)0,30 18-23 * * * service httpd restart
#每天 18:00 到 23:00 之间,每隔 30 分钟重启 apache(方法二)0 4 * * sun root /opt/shell/crontab-redis-restart.sh
#每周日 4:00 执行一个脚本(root 用户运行,有些脚本不指定用户会报:ERROR (getpwnam() failed)
- 该配置格式解释:
- 更多例子可以看:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
- 执行记录日志:
tail -f /var/log/cron
(如果发现任务不执行,可以来这里盯着日志看)
Crontab 权限问题
- 一般默认只有 root 用户可以使用
- 如果要指定某个用户可以使用,可以在 /etc/cron.allow 添加(不存在文件就创建一个)
- 如果要指定某个用户不可以使用,可以在 /etc/cron.deny 添加(不存在文件就创建一个)
- 如果一个用户同时在两个文件都存在,那则以 allow 为准
Crontab 不执行
- Crontab 不执行原因有很多,可以 Google 搜索:
Crontab 不执行
,这里不多说。