#!/bin/bash BACKUPFILES="/home/root/backup/backup_files.sh" BACKUPMYSQL="/home/root/backup/backup_mysql.sh" BACKUPFILESDIR="/home/backup/files" BACKUPMYSQLDIR="/home/backup/mysql" WORKDIR="/home/backup/ftp_backup" MYDATE="$(date +%Y%m%d)" LFTPSCRIPT="$WORKDIR/$MYDATE.lftp" FTPUSER="ksXXXXX.ovh.com" FTPPASSWD="PASSWORD" FTPSERVER="ftp-server" HISTORIC="$(dirname $0)/$(basename $0 .sh).historic" let MAXBACKUPS=20 check_dirs() { if ! [ -d $WORKDIR ] then mkdir -p $WORKDIR/$MYDATE else if [ -d $WORKDIR/$MYDATE ] then rm -fr $WORKDIR/$MYDATE fi mkdir -p $WORKDIR/$MYDATE fi } do_backups() { $BACKUPFILES $BACKUPMYSQL find $BACKUPFILESDIR -type f -name "*$MYDATE*" -exec cp -fv {} $WORKDIR/$MYDATE/ \; find $BACKUPMYSQLDIR -type f -name "*$MYDATE*" -exec cp -fv {} $WORKDIR/$MYDATE/ \; } upload_backup() { echo "set dns:cache-enable off" > $LFTPSCRIPT echo "open -p 21 $FTPSERVER" >> $LFTPSCRIPT echo "user $FTPUSER $FTPPASSWD" >> $LFTPSCRIPT echo "lcd $WORKDIR" >> $LFTPSCRIPT echo "mirror -Rc $MYDATE" >> $LFTPSCRIPT lftp -f $LFTPSCRIPT rm -fr $WORKDIR/$MYDATE echo $MYDATE >> $HISTORIC } purge_backup() { let LINES=$(cat $HISTORIC | wc -l) let HEAD=0 if [ $LINES -gt $MAXBACKUPS ] then echo "COMPROBAR PURGADO BACKUP FTP" | mail -s "comprobacion" YOUR_MAIL@DOMAIN.com let HEAD=$LINES-$MAXBACKUPS echo "set dns:cache-enable off" > $LFTPSCRIPT echo "open -p 21 $FTPSERVER" >> $LFTPSCRIPT echo "user $FTPUSER $FTPPASSWD" >> $LFTPSCRIPT for i in $(head -$HEAD $HISTORIC) do echo "rm -fr $i" >> $LFTPSCRIPT done lftp -f $LFTPSCRIPT fi } check_dirs do_backups upload_backup purge_backup