Bash-скрипт для автотматизации бэкапа
Задача: создать скрипт для автоматического резервного копирования файлов и папок в Git-аккаунт, защищая их при этом AES-шифрованием.
Для системных администраторов, которые хотят использовать облако для управления своими файлами.
Меню
Bash: скрипт вызывающий специальные подскрипты в соответствии с выбором пользователя.
#!/bin/bash
cd /home/user/working-directory
# loop menu
while true; do
# Display options
echo "BACKUP TOOL"
echo "................."
echo "1 Backup 1"
echo "2 Backup 2"
echo "3 Backup 3"
echo "................."
# Read user input
read -n 1 -p "Enter your choice (#) or exit (x): " choice
echo
# Perform the selected action based on user input
case "$choice" in
1)
echo "Backup 1"
./script_1 ;;
2)
echo "Backup 2"
./script_2 ;;
3)
echo "Backup 3"
./script_3 ;;
x)
exit 0 ;;
*)
echo "Invalid choice..." ;;
esac
done
Данный скрипт:
• скопирует файл(ы) или папку для резервного копирования в ваш Git-каталог.
• зашифрует его с помощью GPG AES256: вам будет предложено ввести пароль
• очистит каталог
• отправит зашифрованный файл в Git
#!/bin/bash
# WD
cd /home/user/git-directory
# copy file to backup
cp /home/user/other-directory/file.ext ./file.ext
# encrypt file using GPG AES256
gpg -c file.kdbx
# rename with date
now=$(date +%Y%m%d_%H%M)
mv file.kdbx.gpg ./"keep_$now.gpg"
read -p ">> Continue to GIT ? " -n1 -s
# Remove temp files
rm ./file.ext
# GIT operations
git pull
git add *.gpg
git commit -a -m "File backup"
git push
Для расшифровки файла (будет запрошен пароль):
gpg -d --output restored_file.ext ./*gpg
+1
+1
2
+1
+1
+1