Команда curl в cron не работает должным образом - PullRequest
0 голосов
/ 05 ноября 2018

Я использую curl в cronjob:

*/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 голосов
/ 05 ноября 2018

я нашел :) 1: поместите команду в скрипт и используйте cron для выполнения скрипта: Working 2: cron интерпретирует «%» по-своему, так что вы должны избежать этого. (http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/)

0 голосов
/ 05 ноября 2018

Я бы поместил команду curl в файл скрипта

snapshot.sh * * 1004

#!/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...