ubuntu安装
apt-get install cron
Centos安装
yum install vixie-cron
yum install crontabs
启动服务
service crond start
关闭服务
service crond stop
重启服务
service crond restart
重新载入配置
service crond reload
查看状态
service crond status
设置开机自动启动crond服务:
chkconfig crond on
开机级别的crond服务运行情况 ,2、3、4、5级别开机会自动启动crond服务
chkconfig –list crond
取消开机自动启动crond服务
chkconfig crond off
1.在命令行输入
# 添加相应的任务,wq存盘退出。具体含义之后介绍
crontab -e # 配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务
# 列出当前的所有调度任务
crontab -l
# 列出用户jp的所有调度任务
crontab -l -u jp
# 删除所有任务调度工作
crontab -r
2.编辑文件
直接编辑/etc/crontab 文件,即 vi /etc/crontab,添加相应的任务。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
* * * * * user-name command to be executed
前四行是有关设置cron任务运行的环境变量。
SHELL:变量的值指定系统使用的SHELL环境(该样例为bash shell),
PATH:变量定义了执行命令的路径。
MAILTO: Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=“”),电子邮件不会被发送。
HOME: 执行命令或脚本时HOME变量可用来设置基目录
格式:
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
-u user:用于设定某个用户的crontab服务;
file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
-e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
-l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
-r:从/var/spool/cron目录中删除某个用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
分钟 小时 日 月 星期 命令
每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)
* * * * * command
每小时的第3和第15分钟执行command
3,15 * * * * command
每天上午8-11点的第3和15分钟执行command:
3,15 8-11 * * * command
每隔2天的上午8-11点的第3和15分钟执行command:
3,15 8-11 */2 * * command
每个星期一的上午8点到11点的第3和第15分钟执行command
3,15 8-11 * * 1 command
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
每小时执行/etc/cron.hourly目录内的脚本
0 1 * * * root run-parts /etc/cron.hourly

#crontab执行
0 5 0 * * 2 (export CI_ENV=testing && /usr/local/bin/php /home/q/system/safe-cactus/application/script/crontab/CalHardWareCount.php &>> /tmp/CalHardWareCount.php.log)
#docker的命令
0 5 0 * * 2 (docker exec cactus-web /bin/bash -c 'export CI_ENV=production; /usr/local/bin/php /home/q/system/safe-cactus/application/script/crontab/CalHardWareCount.php &>> /tmp/CalHardWareCount.php.log')
1. 启动cron
service crond start
2. cron帮助命令
man crontab
3. 查看cron任务
crontab -l
注: 刚开始添加暂无内容
5. 编辑cron任务
crontab -e
删除cron任务 使用下面的命令移除已经计划的cron作业
crontab -r
使用下面的命令移除所有已计划的cron作业,且无需再次确认。
crontab -ir
待补充
不同版本的解析crontab器有区别。
有的支持秒。
有的星期和day不能同时设置(*和?的区别)。
直接crontab好像不能使用 得-e加到文件里
docker中可能会出问题 需要先杀掉crontab进程 再启动
请先网上找个crontab验证的 看一看执行时间是否符合预期