41 lines
1.2 KiB
Bash
41 lines
1.2 KiB
Bash
#!/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 |