mysqldump в файл с любой ошибкой запускает запрос cURL с информацией об ошибке

Поискав по всему миру, я нашел эту ссылку:

https://a20.net/bert/2016/09/27/openvpn-client-connection-not-started-on-ubuntu-16-04/

edit /etc/default/openvpn, uncomment AUTOSTART=”all”
sudo systemctl daemon-reload
sudo service openvpn restart

Я еще немного свел это к:

echo 'echo "AUTOSTART="\"all"\"" >> /etc/default/openvpn' | sudo -s
sudo systemctl daemon-reload
sudo service openvpn restart

1
10.12.2019, 22:05
1 ответ

Сохраните поток ошибок в отдельный файл и "curlего", если есть ошибка. Тогда удалите (или оставьте, может пригодится?):

if ! mysqldump -u whatever -pwhatever somedb >somebackupfile.sql 2>error.log
then
    json=$( jq -c -n --arg message "$(cat error.log)" '{ error: $message }' )
    curl...options... -d "$json"
fi
rm -f error.log   # or not

Это дополнительно использует jqдля правильного кодирования вывода ошибки в error.logв виде текстовой строки JSON.

Если вы хотите изменить логику, чтобы вы отправляли содержимое файла error.logвсякий раз, когда он не пуст, возможно, потому, что программа mysqldumpне возвращает нормальный статус выхода (Я не знаю как эта конкретная программа ведет себя в данный момент):

mysqldump -u whatever -pwhatever somedb >somebackupfile.sql 2>error.log

if [ -s error.log ]; then
    json=$( jq -c -n --arg message "$(cat error.log)" '{ error: $message }' )
    curl...options... -d "$json"
fi
rm -f error.log   # or not

Тест файла -sявляется истинным , если именованный файл имеет не -нулевой размер.

0
27.01.2020, 23:55

Теги

Похожие вопросы