#!/bin/bash # Переменные SOURCE_DIR="/data/secrets" ARCHIVE_NAME="secrets.tar.gz.enc" REMOTE_USER="remote_user" REMOTE_HOST="remote_host" REMOTE_DIR="/secrets" PASSWORD_FILE="$SOURCE_DIR/secrets.env" # Путь к зашифрованному архиву ARCHIVE_PATH="$SOURCE_DIR/$ARCHIVE_NAME" # Чтение пароля из файла if [ -f "$PASSWORD_FILE" ]; then PASSWORD=$(cat "$PASSWORD_FILE") else echo "Файл с паролем не найден: $PASSWORD_FILE" exit 1 fi # Создание tar.gz архива и шифрование его tar -czf - "$SOURCE_DIR" | openssl enc -aes-256-cbc -e -pass pass:"$PASSWORD" -out "$ARCHIVE_PATH" if [ $? -ne 0 ]; then echo "Не удалось создать и зашифровать архив" exit 1 fi # Отправка архива на удаленный сервер rsync -avz "$ARCHIVE_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR" if [ $? -ne 0 ]; then echo "Не удалось отправить архив на удаленный сервер" exit 1 fi # Удаление архива после успешной отправки (опционально) rm -f "$ARCHIVE_PATH" echo "Успешно завершено!" exit 0