将 cronjob 输出作为参数传递给 curl

将 cronjob 输出作为参数传递给 curl

我有每小时备份一次的 cronjob。现在我想将任何 stderr 传递给 API。

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"

但我不确定如何将 stderr 传递给我的 API。请帮忙。

答案1

尝试类似:

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"

这样,您就可以将 stdout 和 stderr 输出分配给 OUTPUT 变量,并将它们插入到查询字符串中。

但是,我建议使用 HTTP POST 和 -d 参数将数据传递到主体,以防您没有正确地对 script.sh 的输出进行 urlencoding。使用 POST 时,您也可以尝试 --data-urlencode

相关内容