cron中的卷曲命令无法正常工作

时间:2018-11-05 14:45:17

标签: elasticsearch curl cron

我在cronjob中使用curl:

*/3 * * * * curl -XPUT "elasticsearch3:9200/_snapshot/edump/snapshot-$(date +%Y_%m_%d)?pretty" -H 'Content-Type:application/json'-d'{"ignore_unavailable":true,"include_global_state":false}' > /home/log

可以完美地手动工作。但是,在我的cronjob中(也可以使用更简单的cronjob来确保问题不只是我的cron无法正常工作(例如:*/1 * * * * curl http://google.fr > /home/google_log也可以正常工作))。

我什至没有'/ home / log'来帮助我,我真的不知道该怎么办?

2 个答案:

答案 0 :(得分:3)

我会将curl命令放在脚本文件中

snapshot.sh

#!/bin/sh
curl -XPUT "elasticsearch3:9200/_snapshot/edump/snapshot-$(date +%Y_%m_%d)?pretty" -H 'Content-Type:application/json'-d'{"ignore_unavailable":true,"include_global_state":false}'

确保使该文件可执行(chmod u+x snapshot.sh),然后像这样简单地修改您的cronjob:

*/3 * * * * /path/to/snapshot.sh > /home/log

答案 1 :(得分:1)

我发现了:) 1:将命令放在脚本中,然后使用cron执行脚本:工作 2:cron用他的方式解释“%”,因此您必须转义它。 (http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/