#!/bin/bash #Fileserver Backup Script SSH_USER= SSH_PW= SSH_HOST= #Installed needed tools for i in /usr/bin/lftp do if [ -e $i ] then echo "ok lftp found" else apt -y install lftp fi done for e in /usr/bin/rsync do if [ -e $e ] then echo "ok rsync found" else apt -y install rsync fi done for g in /usr/bin/sshpass do if [ -e $g ] then echo "ok sshpass found" else apt -y install sshpass fi done #Workround mkdir -p /home/MYSQL-BACKUPS/public_html for D in $(find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d) ; do echo ${D##*/} mysqldump -u root ${D##*/} > /home/MYSQL-BACKUPS/${D##*/}.sql gzip /home/MYSQL-BACKUPS/${D##*/}.sql echo ''; done rm /home/MYSQL-BACKUPS/modsec.sql -f #Yesterdays date in ISO-8601 format: DAY1=`date -d "yesterday 13:00" '+%Y-%m-%d'` #Todays date in ISO-8601 format: DAY0=`date -I` lftp sftp://${SSH_USER}:${SSH_PW}@${SSH_HOST} -e "mkdir -p media/host/backup__$DAY0/home/MYSQL-BACKUPS; bye" /usr/bin/sshpass -p "$SSH_PW" /usr/bin/rsync -avhi -e 'ssh -o StrictHostKeyChecking=no -p 23' --link-dest /home/MYSQL-BACKUPS/ /home/MYSQL-BACKUPS/ "$SSH_USER"@$SSH_HOST:media/host/backup__$DAY0/home/MYSQL-BACKUPS/ for F in $(find /home/ -mindepth 1 -maxdepth 1 -type d) ; do echo $F lftp sftp://${SSH_USER}:${SSH_PW}@${SSH_HOST} -e "mkdir -p media/host/backup/home_backup__$DAY0$F; bye" #The source directory: SRC="$F/public_html/" #The target directory: TRG="$SSH_USER@$SSH_HOST:media/host/backup/home_backup__$DAY0$F/" #The link destination directory: LNK="$SRC" echo /usr/bin/sshpass -p "$SSH_PW" /usr/bin/rsync -avhi $LNK -e 'ssh -o StrictHostKeyChecking=no -p 23' --link-dest $LNK $SRC $TRG /usr/bin/sshpass -p "$SSH_PW" /usr/bin/rsync -avhi -e 'ssh -o StrictHostKeyChecking=no -p 23' --link-dest $LNK $SRC "$SSH_USER"@"$SSH_HOST:media/host/backup/home_backup__$DAY0$F/" done