#!/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}Export Directus Database and files ? (y/N) ${RESET}" read answer if [[ "$answer" == "y" ]]; then user=$(getent passwd 1001 | awk -F: '{print $1}') 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_base_folder="/home/${user}/content_exports" export_folder="${export_base_folder}/${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 "${export_base_folder}" . rm -r "${export_folder}" chown -R "${user}:${user}" "${export_base_folder}" ssh_port=$(cat /etc/ssh/sshd_config.d/custom.conf | grep "Port " | sed 's/^Port //') ip=$(hostname -I) if [[ "${ip: -1}" == " " ]]; then ip="${ip%?}" fi echo -e "${PURPLE}${BOLD}You can now download the backup${RESET}" echo -e "${BLUE}scp -P ${ssh_port} ${user}@${ip}:${export_folder}.tar.gz ./path/to/local/folder${RESET}" fi