Übergeben Sie die Cronjob-Ausgabe als Parameter an curl

515
Ash

Ich habe einen Cronjob, der stündliche Unterstützung braucht. Jetzt möchte ich jeden stderr an eine API übergeben.

0 * * * * /usr/local/sbin/script.sh 2>&1 | curl -k -X GET "https://192.168.0.25/path/of/joomla/instance/index.php?option=com_user&task=sendSMSalert&msg=variable" 

Ich bin mir jedoch nicht sicher, wie ich den stderr an meine API übergeben soll. Bitte helfen

0

1 Antwort auf die Frage

0
andy magoon

versuchen Sie etwas wie:

0 * * * * OUTPUT=$((/usr/local/sbin/script.sh) 2>&1) && curl -k -X GET "https://192.168.0.25/path/of/joomla/instance/index.php?option=com_user&task=sendSMSalert&msg=$OUTPUT" 

Auf diese Weise weisen Sie der OUTPUT-Variablen die Ausgänge stdout und stderr zu und fügen sie in die Querzeichenfolge ein.

Ich empfehle jedoch die Verwendung eines HTTP-POST und des Parameters -d, um die Daten stattdessen an den Hauptteil zu übergeben, falls Sie die Ausgabe von script.sh nicht ordnungsgemäß verschlüsseln. Mit POST können Sie auch --data-urlencode ausprobieren

Bitte führen Sie mich aus, wie Sie dies in HTTP POST und den Parameter -d ändern können, um die Daten an den Hauptteil zu übergeben Ash vor 6 Jahren 0