utils/secrets-import.sh

48 lines
1.7 KiB
Bash
Raw Normal View History

2024-07-27 04:15:43 +05:00
#!/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."