crontab是啥
crontab是一个定时任务管理工具,是Linux下的好帮手!可以定时帮我们做很多有繁琐的事情。以前在玩RSS订阅的时候,就有用到过,当时是用来ping某个容器,以保持其持续工作。好了,子方有料就不瞎逼逼了
crontab访问url开挂
最近在使用crontab执行定时访问url时,一直都是失败的,这令子方有料非常困惑。子方有料要访问的url类似这样:http://xx.ippa.top/inc/timming.php?m=%E9%87%87%E9%9B%86
当子方有料使用以下命令时访问正常:curl http://xx.ippa.top/inc/timming.php?m=%E9%87%87%E9%9B%86
一旦子方有料放进crontab中,就怎么都不正常了
curl故障?
随后,子方有料又尝试了wget命令,一样是没收到效果。wget http://xx.ippa.top/inc/timming.php?m=%E9%87%87%E9%9B%86
%参数可能没法传递?
这实在是太奇怪了,在查阅资料的过程中,子方有料看到有朋友提到说,%参数可能没法传递,于是子方有料依葫芦画瓢,加了/,变成/%E9/%,还是不行
因为链接有中文字符?
其实子方有料这个链接是有中文字符的,可能是这里出了问题,于是子方有料采取了网址缩短的形式,变成了纯英文。curl到的信息是一个跳转内容,这个方法行不通
crontab无法定时访问网址链接的根本原因
意识到中文的问题后,子方有料重新生成了链接,将中文字符去掉,这样放进crontab时,可以顺利运行了。
看来,使用crontab定时访问url的时候,最好不要包含中文转码的字符串,这样及其容易出现运行错误!
通过crontab定时访问url的格式
*/1 * * * * /usr/bin/curl http://xx.ippa.top/inc/timming.php 每分钟访问一次
五个星号,分别是分、时、天、月、星期 ,后面接用户和命令,用户一般是root,可以不填
crontab常用操作
service crond start
#启动
service crond stop
#停止
service crond reload
#不中断服务,重新载入配置
crontab -l
#查看当前用户任务
crontab -e
#进入crontab编辑页,默认为nano编辑器
crontab -r
#删除crontab任务