#!/bin/bash REMOTE_USER="remote_user" REMOTE_HOST="remote_host" REMOTE_DIR="/secrets" REMOTE_FILE="secrets.env.tar.gz" LOCAL_SECRETS_DIR="/data/secrets" ARCHIVE_PATH="$LOCAL_SECRETS_DIR/$REMOTE_FILE" PASSWORD_FILE="$LOCAL_SECRETS_DIR/secrets.env" # Скачиваем файл с удаленного сервера rsync -avz --progress $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/$REMOTE_FILE $LOCAL_SECRETS_DIR # Проверяем успешность скачивания if [ $? -ne 0 ]; then echo "Ошибка: не удалось скачать файл $REMOTE_FILE." exit 1 fi # Проверяем, существует ли файл $PASSWORD_FILE if [ ! -f "$PASSWORD_FILE" ]; then echo "Ошибка: файл с паролем $PASSWORD_FILE не найден." exit 1 fi # Извлекаем пароль из файла PASSWORD=$(cat "$PASSWORD_FILE") # Проверяем, существует ли папка $LOCAL_SECRETS_DIR if [ -d "$LOCAL_SECRETS_DIR" ]; then # Переименовываем старую папку mv "$LOCAL_SECRETS_DIR" "${LOCAL_SECRETS_DIR}_old" fi # Создаем новую папку mkdir -p "$LOCAL_SECRETS_DIR" # Распаковываем и расшифровываем файл в новую папку cd "$LOCAL_SECRETS_DIR" echo "$PASSWORD" | gpg --batch --yes --passphrase-fd 0 -d "$ARCHIVE_PATH" | tar -xz # Проверяем успешность распаковки if [ $? -ne 0 ]; then echo "Ошибка: не удалось распаковать файл $REMOTE_FILE." exit 1 fi echo "Файл $REMOTE_FILE успешно скачан, расшифрован и распакован в $LOCAL_SECRETS_DIR."