**Ошибка:** Код бекапа проверяет свободное место и если его не хватает - шлет alarm и падает.
if [ $node_backup_freespace -le $mysize ]; then
/node/bin/alarm "no free space for bk $VM_NODE_BACKUP $VM_DIR $node_backup_freespace $mysize"
exit 1
fi
Код alarm:
#!/bin/bash
msg="$HOSTNAME: $@"
msg=${msg// /%20}
wget -O - "xxxxxxxxx&text=$msg"
exit 0
Как это выглядит в консоли и логах:
START /bin/vm backup xxx [799576]
/node/bin/vm_backup START
--2018-02-07 17:28:54-- xxxxx&text=xxx:%20no%20free%20space%20for%20bk%20xxx%20/vm/office/xxx%20663%20892
Resolving xxxx... xxx
Connecting to xxx|xxx|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2 [text/html]
Saving to: “STDOUT”
0% [ ] 0 --.-K/s O100%[===========================================================================================================================================================================>] 2 --.-K/s in 0s
2018-02-07 17:28:55 (657 KB/s) - written to stdout [2/2]
ERROR_PROG=/bin/vm backup xxx ERROR_STACK=/bin/vm
ERROR_SOURCE=/bin/vm backup xxx ERROR_CMD="/node/bin/__vm "$@"" ERROR_STATUS=1 LINENO=12 FUNC: main
7:if [[ "${2:---}" != --* ]] && [ "${1:-}" != "create" ] && [ "$2" != "ALL" ] ; then
8: . /node/bin/__vm_config $2
9: [[ " $SKIP_LOCK " != *" $1 "* ]] && /node/bin/__lock $VM_DIR/vm.lock $$
10:fi
11-
12:/node/bin/__vm "$@"
13-
14:if [[ "${2:---}" != --* ]] && [ "$2" != "ALL" ] ; then
15: . /node/bin/__vm_config $2
16: [[ " $SKIP_LOCK " != *" $1 "* ]] && /node/bin/__unlock $VM_DIR/vm.lock $$
17:fi
FAILED /bin/vm backup xxx [799576]
**В логах совершенно непонятна причина поломки.**
**Как надо делать:** Функция alarm должна дополнительно выводить сообщение, которое в нее передают, чтобы оно попало в логи в читаемом виде:
#!/bin/bash
msg="$HOSTNAME: $@"
wget_msg=${msg// /%20}
wget -O - "xxxxxxxxx&text=$wget_msg"
echo "$msg" >&2
exit 0
Аналогично в питоне, если мы вешаем хук в logging, чтобы он дополнительно отправлял CRITICAL или ERROR в какую-то систему реагирования, эта ошибка также попадает и в основной лог приложения. Ничего не должно скрываться.
~~OWNERAPPROVE~~
/*Не удаляйте эту строку и ниже!*/
{(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-02-07_глухая_отправка_уведомлений_об_ошибках_из_приложения|type=vote|trace=user|tracedetails=1)}