Добавлено оповещение Telegram и GotiFy
This commit is contained in:
parent
4fe9f8401a
commit
d02d42b2db
10
backup.ini
10
backup.ini
@ -7,4 +7,12 @@ FILES=/home/user/BashProject/backup.sh,/home/user/jet/restore.sh
|
|||||||
FTP_SERVER=127.0.0.1
|
FTP_SERVER=127.0.0.1
|
||||||
FTP_USER=user
|
FTP_USER=user
|
||||||
FTP_PASS=password
|
FTP_PASS=password
|
||||||
[OTHER]
|
[SENT]
|
||||||
|
ENABLE_SENT=true
|
||||||
|
ENABLE_SENT_GOTIFY=true
|
||||||
|
ENABLE_SENT_TELEGRAM=true
|
||||||
|
GOTIFY_URL=http://ваш_gotify_сервер
|
||||||
|
GOTIFY_APP_TOKEN=0000000
|
||||||
|
TELEGRAM_TOKEN=00000000
|
||||||
|
CHAT_ID=00000000
|
||||||
|
[END]
|
50
backup.sh
50
backup.sh
@ -13,7 +13,7 @@ if [ "$EUID" -ne 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Проверка наличия необходимых утилит
|
# Проверка наличия необходимых утилит
|
||||||
for cmd in tar ftp lftp; do
|
for cmd in tar ftp lftp curl; do
|
||||||
if ! command -v "$cmd" &> /dev/null; then
|
if ! command -v "$cmd" &> /dev/null; then
|
||||||
echo "Ошибка: Утилита '$cmd' не найдена. Установите её и повторите попытку."
|
echo "Ошибка: Утилита '$cmd' не найдена. Установите её и повторите попытку."
|
||||||
exit 1
|
exit 1
|
||||||
@ -53,6 +53,42 @@ get_ini_value() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_sent_message() {
|
||||||
|
# Настройки для Telegram
|
||||||
|
TELEGRAM_TOKEN=$(get_ini_value "SENT" "TELEGRAM_TOKEN")
|
||||||
|
CHAT_ID=$(get_ini_value "SENT" "CHAT_ID")
|
||||||
|
|
||||||
|
# Настройки для Gotify
|
||||||
|
GOTIFY_URL="$(get_ini_value "SENT" "GOTIFY_URL")/message"
|
||||||
|
GOTIFY_APP_TOKEN=$(get_ini_value "SENT" "GOTIFY_APP_TOKEN")
|
||||||
|
|
||||||
|
# Сообщение для отправки
|
||||||
|
local message="$1"
|
||||||
|
local title="$(hostname)"
|
||||||
|
local escaped_message=$(printf '%s\n' "$message" | jq -R .)
|
||||||
|
|
||||||
|
if [[ "$ENABLE_SENT" == "true" ]]; then
|
||||||
|
if [[ "$ENABLE_SENT_GOTIFY" == "true" ]]; then
|
||||||
|
response=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$GOTIFY_URL"
|
||||||
|
-H "X-Gotify-Key: $GOTIFY_APP_TOKEN"
|
||||||
|
-H "Content-Type: application/json"
|
||||||
|
-d "{"title":$title,"message":$escaped_message,"priority":5}")
|
||||||
|
if [[ "$response" -ne 200 ]]; then
|
||||||
|
echo "Gotify error: $response"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_SENT_TELEGRAM" == "true" ]]; then
|
||||||
|
response=$(curl -s -o /dev/null -w "%{http_code}" -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage"
|
||||||
|
-d "chat_id=$CHAT_ID&text=$title: $message")
|
||||||
|
if [[ "$response" -ne 200 ]]; then
|
||||||
|
echo "Telegram error: $response"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Указываем директории и файлы для копирования
|
# Указываем директории и файлы для копирования
|
||||||
DIRECTORIES=$(get_ini_value "Backup" "DIRS")
|
DIRECTORIES=$(get_ini_value "Backup" "DIRS")
|
||||||
FILES=$(get_ini_value "Backup" "FILES")
|
FILES=$(get_ini_value "Backup" "FILES")
|
||||||
@ -114,16 +150,22 @@ if [[ ! -f "$LOG_FILE" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Загружаем файлы на FTP-сервер
|
# Загружаем файлы на FTP-сервер
|
||||||
|
echo "Передача файлов по FTP ..."
|
||||||
lftp -u "$FTP_USER","$FTP_PASS" "$FTP_SERVER" <<EOF > ftp_log.txt 2>&1
|
lftp -u "$FTP_USER","$FTP_PASS" "$FTP_SERVER" <<EOF > ftp_log.txt 2>&1
|
||||||
set ssl:verify-certificate no
|
set ssl:verify-certificate no
|
||||||
put "$(pwd)/$TAR_NAME"
|
set net:timeout 10
|
||||||
put "$(pwd)/$LOG_FILE"
|
set net:max-retries 3
|
||||||
|
set net:reconnect-interval-base 5
|
||||||
|
set net:reconnect-interval-multiplier 2
|
||||||
|
put "/$TAR_NAME"
|
||||||
|
put "/$LOG_FILE"
|
||||||
bye
|
bye
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Проверка статуса выполнения FTP команды
|
# Проверка статуса выполнения FTP команды
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Ошибка при выполнении FTP команды."
|
echo "Ошибка при выполнении FTP команды."
|
||||||
|
rm "$TAR_NAME"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -135,5 +177,5 @@ rm "$LOG_FILE"
|
|||||||
echo "Временная директория $TEMP_DIR удалена."
|
echo "Временная директория $TEMP_DIR удалена."
|
||||||
echo "Архив $TAR_NAME удален."
|
echo "Архив $TAR_NAME удален."
|
||||||
echo "Лог-файл $LOG_FILE удален."
|
echo "Лог-файл $LOG_FILE удален."
|
||||||
|
get_sent_message "Succes"
|
||||||
echo "Резервное копирование завершено успешно."
|
echo "Резервное копирование завершено успешно."
|
||||||
|
Loading…
Reference in New Issue
Block a user