Коды завершения скрипта + их описание

This commit is contained in:
2021-07-14 15:04:43 +03:00
parent 01e7105d45
commit 75ae856b02
2 changed files with 24 additions and 8 deletions

View File

@@ -6,8 +6,17 @@ Bash-скрипт мониторинга основного баланса в Se
- наличие ключа API (https://my.selectel.ru/profile/apikeys) в действующем аккаунте Selectel - наличие ключа API (https://my.selectel.ru/profile/apikeys) в действующем аккаунте Selectel
- заполненные переменные в .env - заполненные переменные в .env
- настроенный почтовый клиент mutt - настроенный почтовый клиент mutt
- установленная утилита jq
## Использование ## Использование
Заполнить .env и выполнять с необходимой периодичностью. Заполнить .env и выполнять с необходимой периодичностью.
./selectel-balance.sh ./selectel-balance.sh
## Коды завершения
0 - успешное завершение
1 - не установлены необходимые пакеты в системе
2 - не найден файл с переменными .env
3 - не заполнена переменная
4 - не пройдена авторизация на Selectel

View File

@@ -3,6 +3,7 @@ set -eu
export PATH="/usr/local/bin:/usr/bin:/bin" export PATH="/usr/local/bin:/usr/bin:/bin"
MUTT=$(which mutt) MUTT=$(which mutt)
JQ=$(which jq)
SCRIPT=$(readlink -e $0) SCRIPT=$(readlink -e $0)
SCRIPT_PATH="$(dirname ${SCRIPT})" SCRIPT_PATH="$(dirname ${SCRIPT})"
echo "SCRIPT_PATH=${SCRIPT_PATH}" echo "SCRIPT_PATH=${SCRIPT_PATH}"
@@ -10,7 +11,13 @@ cd ${SCRIPT_PATH}
# Проверка наличия почтового клиента mutt # Проверка наличия почтового клиента mutt
if [[ -z "${MUTT}" ]]; then if [[ -z "${MUTT}" ]]; then
echo "Ошибка - почтовый клиент mutt не найден." echo "Ошибка - почтовый клиент mutt не найден"
exit 1
fi
# Проверка наличия утилиты jq
if [[ -z "${JQ}" ]]; then
echo "Ошибка - утилита jq не найдена"
exit 1 exit 1
fi fi
@@ -25,7 +32,7 @@ source .env
# Проверка заполнения переменной SELECTEL_API_KEY # Проверка заполнения переменной SELECTEL_API_KEY
if [[ -z "${SELECTEL_API_KEY}" ]]; then if [[ -z "${SELECTEL_API_KEY}" ]]; then
echo "Ошибка - пустая пременная SELECTEL_API_KEY" echo "Ошибка - пустая переменная SELECTEL_API_KEY"
exit 3 exit 3
#else #else
# echo "SELECTEL_API_KEY=${SELECTEL_API_KEY}" # echo "SELECTEL_API_KEY=${SELECTEL_API_KEY}"
@@ -33,16 +40,16 @@ fi
# Проверка заполнения переменной MIN_BALANCE # Проверка заполнения переменной MIN_BALANCE
if [[ -z "${MIN_BALANCE}" ]]; then if [[ -z "${MIN_BALANCE}" ]]; then
echo "Ошибка - пустая пременная MIN_BALANCE" echo "Ошибка - пустая переменная MIN_BALANCE"
exit 4 exit 3
#else #else
# echo "MIN_BALANCE=${MIN_BALANCE}" # echo "MIN_BALANCE=${MIN_BALANCE}"
fi fi
# Проверка заполнения переменной EMAIL_FOR_NOTIFICATION # Проверка заполнения переменной EMAIL_FOR_NOTIFICATION
if [[ -z "${EMAIL_FOR_NOTIFICATION}" ]]; then if [[ -z "${EMAIL_FOR_NOTIFICATION}" ]]; then
echo "Ошибка - пустая пременная EMAIL_FOR_NOTIFICATION" echo "Ошибка - пустая переменная EMAIL_FOR_NOTIFICATION"
exit 5 exit 3
#else #else
# echo "EMAIL_FOR_NOTIFICATION=${EMAIL_FOR_NOTIFICATION}" # echo "EMAIL_FOR_NOTIFICATION=${EMAIL_FOR_NOTIFICATION}"
fi 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 if [[ ! -z $(echo ${ANSWER} | grep "401 Authorization Required") ]]; then
echo "Ошибка - не пройдена авторизация на SELECTEL:/n${ANSWER}" echo "Ошибка - не пройдена авторизация на SELECTEL:/n${ANSWER}"
exit 6 exit 4
else else
BALANCE=$(echo ${ANSWER} | jq '.data.primary.main') BALANCE=$(echo ${ANSWER} | jq '.data.primary.main')
# echo "BALANCE=${BALANCE}" # echo "BALANCE=${BALANCE}"
@@ -63,7 +70,7 @@ fi
# Проверка заполнения переменной BALANCE # Проверка заполнения переменной BALANCE
if [[ -z "${BALANCE}" ]]; then if [[ -z "${BALANCE}" ]]; then
echo "Ошибка - не получен BALANCE" echo "Ошибка - не получен BALANCE"
exit 7 exit 3
#else #else
# echo "BALANCE=${BALANCE}" # echo "BALANCE=${BALANCE}"
fi fi