| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/crons/ |
Upload File : |
#!/bin/bash
declare -a weblist
declare -a dbase
weblist=(seaside.pacim.de api.pacim.de)
#weblist=(seaside.pacim.de seaside2.pacim.de api.pacim.de)
backupType="$1"
backupPass="J:xn\T=+P!K|r;V_O2i2"
webfolders="/var/www/"
vhostfolder="/etc/nginx/sites-available/"
echo "RESULTS FOR: $HOSTNAME"
for domain in "${weblist[@]}"
do echo "# $domain"
configFolder="${webfolders}${domain}/web/includes/config.inc.php"
backupFolder="${webfolders}${domain}/private/"
datebkp="$(date '+%Y%m%d-%H%M')"
if [[ -f "${configFolder}" ]] && [[ ! "${backupType}" = "FULL" ]]
then
# create tmp folder for backup files
if [[ ! -d "${backupFolder}/misc" ]]; then mkdir "${backupFolder}/misc"; fi
# copy vhost
if [[ -f "${vhostfolder}${domain}.vhost" ]]; then cp "${vhostfolder}${domain}.vhost" "${backupFolder}misc/${domain}.vhost"; fi
# read mysql configuration and create mysqldump
IFS=$'\n' read -d '' -r -a dbase <<< "$(HTTP_HOST="${domain}" php -d display_errors=off -r 'include("'${configFolder}'"); print MYSQL_DB . "\n" . MYSQL_USER . "\n" . MYSQL_PASS . "\n" . MYSQL_HOST;')"
mysqldump -u "${dbase[1]}" -p"${dbase[2]}" "${dbase[0]}" | gzip > "${backupFolder}misc/database.sql.gz"
# create import.sh and mysql_access.txt
printf "WEBSITE: ${domain}\nSERVER: $HOSTNAME\n\nDB_NAME: ${dbase[0]}\nDB_USER: ${dbase[1]}\nDB_PASS: ${dbase[2]}\nDB_HOST: ${dbase[3]}\n\ngunzip < database.sql.gz | mysql --user=${dbase[1]} --password=${dbase[2]} ${dbase[0]}" > "${backupFolder}misc/mysql_access.txt"
printf '#!/bin/bash\n\ngunzip < database.sql.gz | mysql --user='"${dbase[1]}"' --password='"${dbase[2]}"' '"${dbase[0]}"'\nif [ "$?" -eq 0 ]\nthen\n\techo "import was successful"\nelse\n\techo "import failed"; printf "'"\\\n"'"\n\n\tread -p "Enter MySQL User: " mysql_user\n\tread -sp "Enter MySQL Password: " mysql_pass; printf "'"\\\n"'"\n\tread -p "Enter MySQL Database: " mysql_dbase; printf "'"\\\n"'"\n\n\tgunzip < database.sql.gz | mysql --user="${mysql_user}" --password="${mysql_pass}" "${mysql_dbase}"\n\tif [ "$?" -eq 0 ]; then echo "import was successful"; else echo "ERROR: import aborted"; exit 1; fi;\nfi' > "${backupFolder}misc/import.sh"
# set rights to run this script in cli
chmod +x "${backupFolder}misc/import.sh"
storageFolderMisc="/usr/home/winterxu/backup/${domain}/misc"
storageFileMisc="${backupFolder}${datebkp}_misc.7z"
# create folder misc on storage
ssh winterxu@www489.your-server.de "mkdir -p ${storageFolderMisc}"
7z a -mhe=on "${storageFileMisc}" "${backupFolder}misc/*" -p"${backupPass}"
scp -r "${storageFileMisc}" winterxu@www489.your-server.de:"${storageFolderMisc}"
fi
# Web nur bei Full-Backup sichern
if [[ "${backupType}" = "FULL" ]]
then
storageFolderWeb="/usr/home/winterxu/backup/${domain}/web"
storageFileWeb="${backupFolder}${datebkp}_web.7z"
# create folder web on storage
ssh winterxu@www489.your-server.de "mkdir -p ${storageFolderWeb}"
# create archive and upload to storage
7z a -mhe=on "${storageFileWeb}" "${webfolders}${domain}/web/*" -p"${backupPass}"
scp -r "${storageFileWeb}" winterxu@www489.your-server.de:"${storageFolderWeb}"
fi
# Backup Files löschen
cd "${backupFolder}" && rm -r *
echo "-------------------------"
done