diff --git a/README.md b/README.md index 0e773f3..9776ff6 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,17 @@ Bash-скрипт мониторинга основного баланса в Se - наличие ключа API (https://my.selectel.ru/profile/apikeys) в действующем аккаунте Selectel - заполненные переменные в .env - настроенный почтовый клиент mutt +- установленная утилита jq ## Использование Заполнить .env и выполнять с необходимой периодичностью. ./selectel-balance.sh + +## Коды завершения + +0 - успешное завершение +1 - не установлены необходимые пакеты в системе +2 - не найден файл с переменными .env +3 - не заполнена переменная +4 - не пройдена авторизация на Selectel diff --git a/selectel-balance.sh b/selectel-balance.sh index 2b2170b..91779be 100755 --- a/selectel-balance.sh +++ b/selectel-balance.sh @@ -3,6 +3,7 @@ set -eu export PATH="/usr/local/bin:/usr/bin:/bin" MUTT=$(which mutt) +JQ=$(which jq) SCRIPT=$(readlink -e $0) SCRIPT_PATH="$(dirname ${SCRIPT})" echo "SCRIPT_PATH=${SCRIPT_PATH}" @@ -10,7 +11,13 @@ cd ${SCRIPT_PATH} # Проверка наличия почтового клиента mutt if [[ -z "${MUTT}" ]]; then - echo "Ошибка - почтовый клиент mutt не найден." + echo "Ошибка - почтовый клиент mutt не найден" + exit 1 +fi + +# Проверка наличия утилиты jq +if [[ -z "${JQ}" ]]; then + echo "Ошибка - утилита jq не найдена" exit 1 fi @@ -25,7 +32,7 @@ source .env # Проверка заполнения переменной SELECTEL_API_KEY if [[ -z "${SELECTEL_API_KEY}" ]]; then - echo "Ошибка - пустая пременная SELECTEL_API_KEY" + echo "Ошибка - пустая переменная SELECTEL_API_KEY" exit 3 #else # echo "SELECTEL_API_KEY=${SELECTEL_API_KEY}" @@ -33,16 +40,16 @@ fi # Проверка заполнения переменной MIN_BALANCE if [[ -z "${MIN_BALANCE}" ]]; then - echo "Ошибка - пустая пременная MIN_BALANCE" - exit 4 + echo "Ошибка - пустая переменная MIN_BALANCE" + exit 3 #else # echo "MIN_BALANCE=${MIN_BALANCE}" fi # Проверка заполнения переменной EMAIL_FOR_NOTIFICATION if [[ -z "${EMAIL_FOR_NOTIFICATION}" ]]; then - echo "Ошибка - пустая пременная EMAIL_FOR_NOTIFICATION" - exit 5 + echo "Ошибка - пустая переменная EMAIL_FOR_NOTIFICATION" + exit 3 #else # echo "EMAIL_FOR_NOTIFICATION=${EMAIL_FOR_NOTIFICATION}" fi @@ -54,7 +61,7 @@ ANSWER=$(curl -s -H "X-token: ${SELECTEL_API_KEY}" -H "Content-Type: application # Проверяем прошла ли авторизация if [[ ! -z $(echo ${ANSWER} | grep "401 Authorization Required") ]]; then echo "Ошибка - не пройдена авторизация на SELECTEL:/n${ANSWER}" - exit 6 + exit 4 else BALANCE=$(echo ${ANSWER} | jq '.data.primary.main') # echo "BALANCE=${BALANCE}" @@ -63,7 +70,7 @@ fi # Проверка заполнения переменной BALANCE if [[ -z "${BALANCE}" ]]; then echo "Ошибка - не получен BALANCE" - exit 7 + exit 3 #else # echo "BALANCE=${BALANCE}" fi