48 lines
1.7 KiB
Bash
48 lines
1.7 KiB
Bash
#!/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." |