我在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'来帮助我,我真的不知道该怎么办?
答案 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/)