♩ 背景
- 近期,在设定 CentOS 定时任务时发现,有一些注意事项总是被自己忽略,而每次又需要百度解决,有些绕远的感觉,所以自己整理一些认为重要的事项,主要是推荐的文章链接,欢迎批评指正
- 系统:CentOS6.5 CentOS7.0
♪ 概念介绍
◆ crontab
crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程
crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度 和 用户任务调度
◆ curl 命令
curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。
它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。
作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl 可以助一臂之力。
♫ 操作举例
①. 每分钟向一个文件中写入一个单词
//执行编辑命令
[root@bogon /]# crontab -e
//每秒访问一个链接的简单设置
*/1 * * * * echo "HELLO" >> /tmp/Hello.txt
//保存代码后 再执行下面的命令
[root@bogon /]# /etc/rc.d/init.d/crond restart
- 执行效果查看:
②. 每分钟去访问一个链接
- 对应的链接地址中即可以进行项目的业务处理,比如有效中奖名单统计等…
//执行编辑命令
[root@bogon /]# crontab -e
//每秒访问一个链接的简单设置
*/1 * * * * curl http://192.168.1.70:82/admin_hwsf/Crontab/crontab.html
//保存代码后 再执行下面的命令
[root@bogon /]# /etc/rc.d/init.d/crond restart
♬ 常见 cron 示例参考
5 * * * * ls 指定每小时的第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命令[即每月的1、11、21、31日是的6:30执行一次ls命令 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件
第10、20、30分钟输出到/tmp/cron1.txt:
10,20,30 * * * * echo "第10、20、30分钟输出一次" >> /tmp/cron1.txt
以用户lzw.me的身份每两小时就运行某个程序:
0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1