Добавлен перевод и редактирование логики

This commit is contained in:
stirelshka8 2025-01-25 10:49:24 +03:00
parent d02d42b2db
commit 1fd4901dbf
2 changed files with 27 additions and 25 deletions

View File

@ -15,4 +15,5 @@ GOTIFY_URL=http://ваш_gotify_сервер
GOTIFY_APP_TOKEN=0000000 GOTIFY_APP_TOKEN=0000000
TELEGRAM_TOKEN=00000000 TELEGRAM_TOKEN=00000000
CHAT_ID=00000000 CHAT_ID=00000000
TEXT_FINISH_MESSAGE="Backup finished"
[END] [END]

View File

@ -8,14 +8,14 @@ exec &> >(tee -a "$LOG_FILE")
# Проверка на выполнение скрипта с правами суперпользователя # Проверка на выполнение скрипта с правами суперпользователя
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
echo "Ошибка: скрипт должен быть запущен с правами суперпользователя (sudo)." echo "Error: the script must be run with superuser rights (sudo)."
exit 1 exit 1
fi fi
# Проверка наличия необходимых утилит # Проверка наличия необходимых утилит
for cmd in tar ftp lftp curl; 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 "Error: $cmd is not installed."
exit 1 exit 1
fi fi
done done
@ -49,7 +49,7 @@ get_ini_value() {
fi fi
done < "$ini_file" done < "$ini_file"
echo "Ошибка: значение для ключа '$key' в разделе '$section' не найдено." echo "Error: Key '$key' not found in section '$section'."
exit 1 exit 1
} }
@ -103,54 +103,54 @@ FTP_PASS="$(get_ini_value "FTP" "FTP_PASS")"
# Создаем временную директорию # Создаем временную директорию
mkdir -p "$TEMP_DIR" mkdir -p "$TEMP_DIR"
echo "Создана временная директория: $TEMP_DIR" echo "Create temp directory: $TEMP_DIR"
# Проверка, включено ли резервное копирование директорий # Проверка, включено ли резервное копирование директорий
echo "Проверка ENABLE_DIRS: $ENABLE_DIRS" echo "Enable backup of directories: $ENABLE_DIRS"
if [[ "$ENABLE_DIRS" == "true" ]]; then if [[ "$ENABLE_DIRS" == "true" ]]; then
IFS=',' read -r -a DIR_ARRAY <<< "$DIRECTORIES" IFS=',' read -r -a DIR_ARRAY <<< "$DIRECTORIES"
for DIR in "${DIR_ARRAY[@]}"; do for DIR in "${DIR_ARRAY[@]}"; do
if [ -d "$DIR" ]; then if [ -d "$DIR" ]; then
cp -r "$DIR" "$TEMP_DIR/" && echo "Копирование директории $DIR завершено." || echo "Ошибка при копировании директории $DIR." cp -r "$DIR" "$TEMP_DIR/" && echo "Copy directory $DIR completed." || echo "Error while copying directory $DIR."
else else
echo "Директория $DIR не найдена, пропускаем." echo "Directory $DIR not found, skipping."
fi fi
done done
else else
echo "Резервное копирование директорий отключено." echo "Backup of directories is disabled."
fi fi
# Проверка, включено ли резервное копирование файлов # Проверка, включено ли резервное копирование файлов
echo "Проверка ENABLE_FILES: $ENABLE_FILES" echo "Enable backup of files: $ENABLE_FILES"
if [[ "$ENABLE_FILES" == "true" ]]; then if [[ "$ENABLE_FILES" == "true" ]]; then
IFS=',' read -r -a FILE_ARRAY <<< "$FILES" IFS=',' read -r -a FILE_ARRAY <<< "$FILES"
for FILE in "${FILE_ARRAY[@]}"; do for FILE in "${FILE_ARRAY[@]}"; do
if [ -f "$FILE" ]; then if [ -f "$FILE" ]; then
cp "$FILE" "$TEMP_DIR/" && echo "Копирование файла $FILE завершено." || echo "Ошибка при копировании файла $FILE." cp "$FILE" "$TEMP_DIR/" && echo "Copy file $FILE completed." || echo "Error while copying file $FILE."
else else
echo "Файл $FILE не найден, пропускаем." echo "File $FILE not found, skipping."
fi fi
done done
else else
echo "Резервное копирование файлов отключено." echo "Backup of files is disabled."
fi fi
# Упаковываем временную директорию в tar.gz архив # Упаковываем временную директорию в tar.gz архив
tar -czf "$TAR_NAME" -C "$TEMP_DIR" . && echo "Создан tar.gz архив: $(pwd)/$TAR_NAME" || { echo "Ошибка при создании tar.gz архива."; exit 1; } tar -czf "$TAR_NAME" -C "$TEMP_DIR" . && echo "Created tar.gz archive: $(pwd)/$TAR_NAME" || { echo "Error while creating tar.gz archive."; rm -rf "$TEMP_DIR"; exit 1; }
# Проверяем наличие файлов # Проверяем наличие файлов
if [[ ! -f "$TAR_NAME" ]]; then if [[ ! -f "$TAR_NAME" ]]; then
echo "Файл $TAR_NAME не найден." echo "Fайл $TAR_NAME не найден."
exit 1 exit 1
fi fi
if [[ ! -f "$LOG_FILE" ]]; then if [[ ! -f "$LOG_FILE" ]]; then
echo "Файл $LOG_FILE не найден." echo "Fайл $LOG_FILE не найден."
exit 1 exit 1
fi fi
# Загружаем файлы на FTP-сервер # Загружаем файлы на FTP-сервер
echo "Передача файлов по FTP ..." echo "Sending files ..."
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
set net:timeout 10 set net:timeout 10
@ -164,18 +164,19 @@ EOF
# Проверка статуса выполнения FTP команды # Проверка статуса выполнения FTP команды
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Ошибка при выполнении FTP команды." echo "Error while sending files."
rm "$TAR_NAME" rm "$TAR_NAME"
exit 1 exit 1
fi fi
# Удаление временной директории и архива после завершения работы скрипта # Удаление временной директории и архива после завершения работы скрипта
rm -rf "$TEMP_DIR" rm -rf "$TEMP_DIR" || { echo "Error while deleting temp directory."}
rm "$TAR_NAME" echo "Temp directory deleted."
rm "$LOG_FILE" rm "$TAR_NAME" || { echo "Error while deleting tar.gz archive."}
echo "Tar.gz archive deleted."
rm "$LOG_FILE" || { echo "Error while deleting log file."}
echo "Log file deleted."
echo "Временная директория $TEMP_DIR удалена." echo "Sending message..."
echo "Архив $TAR_NAME удален." get_sent_message "$(get_ini_value "SENT" "TEXT_FINISH_MESSAGE")" || echo "Error while sending message."
echo "Лог-файл $LOG_FILE удален." echo "Backup completed."
get_sent_message "Succes"
echo "Резервное копирование завершено успешно."