关于crontab定时任务中用到curl以get方式执行带参数的url任务的问题
一开始我发现我服务器上的定时任务没有执行,我就打开了/var/log/cron这个日志,发现日志记录的执行任务是正常的,我开始怀疑我的链接有问题,就拿到浏览器试了一下结果也是正常的,我就蒙了。然后我就又写了一个不同的链接(没有带参数),居然成功了,这个时候我就怀疑时符号的问题。
例如下方的执行任务,curl在执行的时候只会拿到第一个参数,之后的参数会丢失,导致执行任务失败
30 12 * * * curl --get http://www.xxx.xxx?a=x&b=y&c=z
我们只要将该url参数中的&符号转义一下就好了
30 12 * * * curl --get http://www.xxx.xxx?a=x\&b=y\&c=z
这样就能正常获取到完整的参数并成功执行任务了