{{tag>deutsch linux debian backup automate}} ====== Backup Script Linux ====== ===== Daten Kollektor ===== #!/bin/sh # Remote Server Backup Script v1.6 by PsyCore # vars BCF=my.backup.tar BCF2=sql.backup.tgz NFSDir="/mnt/storage/" SQLUser=sqladmin SQLPass=moresecretthansecret SUBJECT="My Backup Status" EMAIL="notification@my-email.tld" EMSG="/tmp/emsg.txt" ATTACH="/tmp/attach.txt" DATE=$(date +%u) EnableFileBackup=1 EnableSQLBackup=1 EnableCronBackup=1 EnableCloudBackup=1 run_date=`date +'%d.%m.%Y %H:%M:%S'` echo "Backup Status: " >$EMSG echo "rsync log" >$ATTACH if [ "$EnableSQLBackup" = "1" ] then echo "SQL Backup started " `date +'%d.%m.%Y %H:%M:%S'` >$EMSG #date +'%d.%m.%Y %H:%M:%S' mysqldump -u $SQLUser -p$SQLPass --all-databases > root_full.sql mysqldump -u $SQLUser -p$SQLPass --databases db1 > db1.sql mysqldump -u $SQLUser -p$SQLPass --databases dbx > dbx.sql tar cvfz sql.backup-$DATE.tgz *.sql cp -u sql.backup-$DATE.tgz /root/backup-database cp -u sql.backup-$DATE.tgz $NFSDir fi # backup cron tasks if [ "$EnableCronBackup" = "1" ] then echo "Cron Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG #date +'%d.%m.%Y %H:%M:%S' crontab -l > crontab.txt tar cvfz crontab.tgz *.txt fi if [ "$EnableFileBackup" = "1" ] then echo "File Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG #date +'%d.%m.%Y %H:%M:%S' tar cvfz webs.tgz /var/www/dir1 /var/www/dir2 /var/www/dirx fi if [ "$EnableCloudBackup" = "1" ] then echo "Cloud Backup started " `date +'%d.%m.%Y %H:%M:%S'` >>$EMSG #date +'%d.%m.%Y %H:%M:%S' rsync -a -v --exclude-from 'backup-exclude.txt' --stats --delete /usr/share/cloud-dir $NFSDir >> $ATTACH fi # archive all tar cvf $BCF *.tgz # NFS Storage cp $BCF $NFSDir # cleanup rm -f *.sql rm -f *.tgz rm -f *.tar #rm -f *.txt # grep "bytes sent" backup.log>>$EMSG # grep "221 Goodbye" backup.log>>$EMSG echo "Backup beendet: " `date +'%d.%m.%Y %H:%M:%S'` >> $EMSG echo " ">>$EMSG echo "remote storage: ">>$EMSG echo "==========================">>$EMSG ls -ashl $NFSDir>>$EMSG echo "database archive: ">>$EMSG echo "==========================">>$EMSG ls -ashl /root/backup-database/>>$EMSG mail -A $ATTACH -s "$SUBJECT" "$EMAIL" < $EMSG rm $EMSG #date +'%d.%m.%Y %H:%M:%S' # EOF