Linux[centos]定时任务之crontab

1,752 阅读2分钟

介绍

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