diff --git a/assets/backup.sh b/assets/backup.sh index 2fade87..4689d6e 100644 --- a/assets/backup.sh +++ b/assets/backup.sh @@ -8,7 +8,7 @@ site_name=$(ls /var/www/repositories/ | grep -v '^cms') db_password=$(cat /var/www/repositories/cms*/.env | grep DB_PASSWORD | sed "s/[^']*'\([^']*\)'.*/\1/") current_date=$(date +'%d-%m-%y_%H-%M') -export_folder="~/backup/${site_name}_export_${current_date}" +export_folder="/root/backup/${site_name}_export_${current_date}" mkdir -p "${export_folder}" @@ -16,14 +16,14 @@ mysqldump -u directus -p"${db_password}" directus > "${export_folder}/db_${site_ cp -r /var/www/repositories/cms*/uploads "${export_folder}" cp -r /var/www/repositories/cms*/.env "${export_folder}" -tar -czf "${export_folder}.tar.gz" -C ~/backup/ . +tar -czf "${export_folder}.tar.gz" -C /root/backup/ . -ssh -p $receiving_port $receiving_user@$receiving_ip << 'EOF' +ssh -p $receiving_port $receiving_user@$receiving_ip << EOF -mkdir -p "~/backups/${site_name}" -ls -tp "~/backups/${site_name}" | grep -v '/$' | tail -n +3 | xargs -I {} rm -- {} +mkdir -p "/home/${receiving_user}/backups/${site_name}" +ls -tp "/home/${receiving_user}/backups/${site_name}" | grep -v '/$' | tail -n +3 | xargs -I {} rm -- "/home/${receiving_user}/backups/${site_name}/{}" EOF -scp -P $receiving_port "~/backup/${export_folder}.tar.gz" "${receiving_user}@${receiving_ip}:~/backups/${site_name}" +scp -P $receiving_port "${export_folder}.tar.gz" "${receiving_user}@${receiving_ip}:/home/${receiving_user}/backups/${site_name}" rm -r ~/backup/ \ No newline at end of file diff --git a/bin/setup_backup.sh b/bin/setup_backup.sh index 3859bfa..af774d7 100644 --- a/bin/setup_backup.sh +++ b/bin/setup_backup.sh @@ -16,8 +16,8 @@ cp ./assets/backup.sh ~/backup.sh chmod +x ~/backup.sh sed -i "s/^receiving_ip=.*/receiving_ip=$receiving_ip/" ~/backup.sh -sed -i "s/^receiving_user=.*/receiving_ip=$receiving_user/" ~/backup.sh -sed -i "s/^receiving_port=.*/receiving_ip=$receiving_port/" ~/backup.sh +sed -i "s/^receiving_user=.*/receiving_user=$receiving_user/" ~/backup.sh +sed -i "s/^receiving_port=.*/receiving_port=$receiving_port/" ~/backup.sh cronjob="0 2 * * * ~/backup.sh" diff --git a/utils/import_backup.sh b/utils/import_backup.sh new file mode 100644 index 0000000..f5029ed --- /dev/null +++ b/utils/import_backup.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root" + exit +fi + +PURPLE='\033[35m' +BLUE='\033[34m' +BOLD='\033[1m' +RESET='\033[0m' + +echo -e "${PURPLE}${BOLD}Import a backup ? (y/N) ${RESET}" +read answer +if [[ "$answer" == "y" ]]; then + + username=$(getent passwd 1001 | cut -d: -f1) + + echo -e "${PURPLE}${BOLD}Did you import a .tar.gz backup in /home/${username} ? (y/N) ${RESET}" + if [[ "$answer" == "y" ]]; then + + site_name=$(ls /var/www/repositories/ | grep -v '^cms') + backup_archive=$(ls "/home/${username}/${site_name}_export*") + + tar -xzvf $backup_archive -C "/home/${username}" + + db_password=$(cat /var/www/repositories/cms*/.env | grep DB_PASSWORD | sed "s/[^']*'\([^']*\)'.*/\1/") + + + else + echo -e "${PURPLE}${BOLD}Please import a .tar.gz backup in /home/${username}${RESET}" + fi +fi \ No newline at end of file