29 lines
1.0 KiB
Bash
29 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
receiving_ip=
|
|
receiving_user=
|
|
receiving_port=
|
|
|
|
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="/root/backup/${site_name}_export_${current_date}"
|
|
|
|
mkdir -p "${export_folder}"
|
|
|
|
mysqldump -u directus -p"${db_password}" directus > "${export_folder}/db_${site_name}_${current_date}.sql"
|
|
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 /root/backup/ .
|
|
|
|
ssh -p $receiving_port $receiving_user@$receiving_ip << EOF
|
|
|
|
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 "${export_folder}.tar.gz" "${receiving_user}@${receiving_ip}:/home/${receiving_user}/backups/${site_name}"
|
|
rm -r ~/backup/ |