Backup сервера Ubuntu 18 на локальный ftp сервер

Есть сервер с Ubuntu 18 на борту, цель создать максимально простой Backup всей системы.

Так как с локальной сети у нас есть свой сервак ftp, то как раз туда и будем заливать копию.

Для начала создадим учетку для создания бэкапов на ftp сервере.

И приступим непосредственно к скрипту который будет тарить все систему на ftp.

apt-get install curlftpfs
nano /scripts/backup.sh

#!/bin/bash

servername='gateway'

backupname=`date +%d-%m-%Y`.tar.gz

backupnamesql=`date +%d-%m-%Y`.ALL.sql

backupobject="/"

exclude="--exclude=/dev --exclude=/var/lib/lxcfs --exclude=swap.img --exclude=/var/spool/havp --exclude=/run --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/var/spool/squid"

backupdst="/mnt/backup"

logsys="/var/log/backup_sys.log"

ftpuser='ftp_user'

ftppass='ftp_password'

curlftpfs 192.168.1.112/ $backupdst -o user=$ftpuser:$ftppass  #примонтируем паку на ftp сервере к себе в систему

if [ $? = 0 ]; then

echo "`date +%d_%m_%Y:%T` ::backup system was RUN ====================================================>" >> $logsys

echo $exclude >> $logsys

mysqldump -uroot -p'pass_mysql' -hlocalhost --all-databases > $backupdst/$servername/$backupnamesql   #Сделаем полный дамп всех баз mysql

find $backupdst/$servername -mtime +2 -name "*.sql" -exec rm -f {} \;   #Найдем и удалим все бэкапы заканчивающиеся на.sql старше 2 дней

tar -cvpzf $backupdst/$servername/$backupname $exclude $backupobject #собстевенно сам архив

find $backupdst/$servername -mtime +2 -name "*tar.gz" -exec rm -f {} \;  #Найдем и удалим все бэкапы заканчивающиеся на.tar старше 2 дней

echo "SQL backup start" >> $logsys

echo "SQL backup stop" >> $logsys

echo "`date +%d_%m_%Y:%T` ::backup system was STOP ====================================================>" >> $logsys

cp $logsys $backupdst/$servername/backup_sys.log

umount $backupdst

else

echo "Error! can not mount backup share" >> $logsys

fi

crontab -e
00 09 * * * /root/scripts/backup_sys.sh

 Добавили на выполнение скрипт в 9 утра каждого дня.