介绍
Linux crontab是用来定期执行程序的命令。
命令
crontab -e
服务命令
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
如图所示:
格式
熟悉格式
[* * * * *] [/usr/bin/curl] [url]
说明: 五个星号分别代表分、时、日、月、周
日志
日志存放路径
默认情况下,crontab中执行的日志写在/var/log下。
crontab命令
查看crontab服务状态
service crond status
启动crontab服务
service crond start
实际应用
访问url(get请求)
需求:每天下午1点自动请求访问百度网扯(www.baidu.com)
进入 crontab -e
然后在最后一行添加如下内容:
* 13 * * * /usr/bin/curl http://www.baidu.com
解释:每天下午1点执行百度这个url。
最后记得启动crontab。
/sbin/service crond start
访问url(post请求)
需求:crontab执行每隔一分钟请求一次接口。
进入 crontab -e
添加如下内容:
*/1 * * * * /usr/bin/curl http://xxxx.com/api/xxx -X POST
添加完定时任务语句后,启动crontab:
/sbin/service crond start
post访问url,并传参
进入 crontab -e
添加如下定时任务语句:
0 */6 * * * curl -X POST -d @/etc/dd/ddd.txt http://localhost:8080/booking/rs/LazadaService/post --header "Content-Type:application/json"
解释: /etc/dd/ddd.txt json 数据–> 用于post
启动crontab:
/sbin/service crond start
执行内容输出到txt文件中
只输出最新的内容:
*/2 * * * * echo "hello world" > /data/crontab.txt
追加内容: 这种方法追加的内容是不进行换行的
*/2 * * * * echo "hello world" >> /data/crontab.txt
访问url并追加内容加换行
在我们开发过程中,可能会遇到这种问题: 我需要定时处理某个url,并且记录下该url的返回值。
需求:每分种处理http://www.xx.com/api/demo
并把该url的返回值记录到/data/demo.txt文件中
进入 crontab -e
添加如下定时任务:
*/1 * * * * echo $(/usr/bin/curl http://www.xx.com/api/demo) >> /data/demo.txt
post访问url并追加内容换行
需求:每天14点开始通过post访问http://www.xx.cn/api/demo
,然后返回的内容输出到/data/crontab3.txt
文件中,并记录执行完成的时间。
进入 crontab -e
添加如下定时内容:
* 14 * * * echo $(date) : $(/usr/bin/curl -X POST http://www.xx.cn/api/demo) >> /data/crontab3.txt