Übergeben Sie die Cronjob-Ausgabe als Parameter an Curl

0

Ich habe einen Cronjob, der eine stündliche Sicherung erfordert. Jetzt möchte ich einen 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 Sie.

Ash
quelle

Antworten:

0

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 Variablen OUTPUT die Ausgänge stdout und stderr zu und fügen sie in den Querystring ein.

Ich empfehle jedoch, einen HTTP-POST und den Parameter -d zu verwenden, um die Daten stattdessen an den Body zu übergeben, falls Sie die Ausgabe von script.sh nicht ordnungsgemäß urlencodieren. Mit POST können Sie auch versuchen, --data-urlencode

andy magoon
quelle
Bitte führen Sie mich, wie Sie dies in HTTP POST und den Parameter -d ändern, um die Daten an den Body zu übergeben
Ash