我有每小时备份一次的 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