utils/secrets-import.sh
2024-07-27 04:15:43 +05:00

48 lines
1.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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."