systemctl status crond.service
yum install vixie-cron
yum install crontabs
systemctl restart crond.service #启动服务 systemctl reload crond.service #从新载入配置 systemctl status crond.service #查看crontab服务状态 systemctl enable crond.service #开机自启动
crontab -u root -e #进入定时任务编辑
crontab -l
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 (每分钟用或者 */1表示,/n表示每n分钟,例如*/8就是每8分钟的意思,下面也是类推) 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令
tail -f /var/log/cron
*/2 * * * * curl -o /home/index.html www.baidu.com #每隔两分钟使用curl 访问www.baidu.com 并将结果写入/home/index.html 文件
00 * * * * lynx -dump https://www.yourdomain.com/script.php #当前时间的分钟数为00时,执行该定时任务
lynx -dump https://www.yourdomain.com/script.php #经过lynx访问这个url。咱们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而若是要提升效率,直接用php去执行本地php文件是最佳选择
00 */2 * * * /usr/bin/php /home/www/script.php #直接用php去执行本地php文件
这条语句就能够在每2小时的0分钟,经过linux内部php环境执行script.php,注意,这里可不是经过url访问,经过服务器环境来执行哦,而是直接执行,由于绕过了服务器环境,因此效率固然要高不少。php
至于为何要用/usr/bin/php可使用命令:which php 或者 whereis php
查看html
在crontab里面,将执行的结果输出一个文件当中。而后在这个文件当中查看执行状况。例如:linux
*/1 * * * * /usr/bin/php /data/dou/web/api/cron.php >> /data/dou/web/cron.txt
连续执行命令:
按顺序依次执行(经过`;`分隔)web
cmd1;
cmd2;
cmd3;
按逻辑与执行(&&分隔)api
cmd1&&cmd2&&cmd3;
cmd4;
按逻辑或执行:(||分隔)服务器
cmd1||cmd2||cmd3;
cmd4;
即回传值为0时逻辑与继续执行下去,回传值不为0时逻辑或继续执行,跟平时程序的逻辑与跟逻辑或短路同样(`?`为回传值,命令执行正确时回传值为0 经过echo $?能够试验,具体搜"回传")
组合:
cmd1;dom
cmd2||cmd3&&cmd4;curl
cmd5;
先执行cmd1而后执行cmd2,若是cmd2回传值非0则执行cmd3,若是cmd3回传值为0则执行cmd4,而后继续按顺序执行url
时间设定规则示例:spa
1.每分钟定时执行一次规则:
每1分钟执行: */1 * * * *或者* * * * *
每5分钟执行: */5 * * * *
2.每小时定时执行一次规则:
每小时执行: 0 * * * *或者0 */1 * * *
天天上午7点执行:0 7 * * *
天天上午7点10分执行:10 7 * * *
3.天天定时执行一次规则:
天天执行 0 0 * * *
4.每周定时执行一次规则:
每周执行 0 0 * * 0
5.每个月定时执行一次规则:
每个月执行 0 0 1 * *
6.每一年定时执行一次规则:
每一年执行 0 0 1 1 *
7.其余例子5 * * * * 指定每小时的第5分钟执行一次ls命令30 5 * * * ls 指定天天的 5:30 执行ls命令30 7 8 * * ls 指定每个月8号的7:30分执行ls命令30 5 8 6 * ls 指定每一年的6月8日5:30执行ls命令30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也能够用英文来表示,sun表示星期天,mon表示星期一等。]30 3 10,20 * * ls 每个月10号及20号的3:30执行ls命令[注:“,”用来链接多个不连续的时段]25 8-11 * * * ls 天天8-11点的第25分钟执行ls命令[注:“-”用来链接连续的时段]*/15 * * * * ls 每15分钟执行一次ls命令 [即每一个小时的第0 15 30 45 60分钟执行ls命令 ]30 6 */10 * * ls 每月中,每隔10天6:30执行一次ls命令[即每个月的一、十一、2一、31日是的6:30执行一次ls命令。 ]