Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #VDS backup script by Tomashkov Evgeniy
- USER=""
- PASSWORD=""
- BACKUP=""
- OLD=30 #время хранения бэкапа
- PREFIX="" # hostname
- DATE=`date '+%Y-%m-%d'`
- FILE1=$BACKUP/$DATE-sql-$PREFIX.tar.gz
- FILE2=$BACKUP/$DATE-files-$PREFIX.tar.gz
- LOG=0
- #--------------------------------------------------------------------------------------------------------
- #Оповещение в Telegram
- BOT_TOKEN=""
- CHAT_ID=""
- MESSAGE=""
- function sendNotification()
- {
- wget --tries=3 --timeout=5 -O /dev/null \
- "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage?chat_id=${CHAT_ID}&text=${MESSAGE}"
- }
- #-------------------------------------------------------------------------------------------------------
- #Бэкапим дамп mysql по базам
- function mysqlDump()
- {
- mkdir $BACKUP/$DATE.sql
- cd $BACKUP/$DATE.sql
- for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | grep -v information_schema | grep -v Database`;
- do mysqldump -u $USER -p$PASSWORD $i > $DATE-$i.sql
- done
- cd ..
- tar -czf $BACKUP/$DATE-sql-$PREFIX.tar.gz ./$DATE.sql
- rm -rf ./$DATE.sql
- }
- #--------------------------------------------------------------------------------------------------------
- #Бэкапим файлы
- function filesBackup()
- {
- tar -czf $BACKUP/$DATE-files-$PREFIX.tar.gz \
- /root/ \
- /var/www/ \
- /etc/ \
- /var/log/ \
- --exclude=$BACKUP
- }
- #-------------------------------------------------------------------------------------------------------
- #Проверка, логирование и оповещение
- function checkFiles()
- {
- if [ -f $FILE1 ] && [ -f $FILE2 ]
- then
- LOG=$[LOG+1]
- fi
- if [ -s $FILE1 ] && [ -s $FILE2 ]
- then
- LOG=$[LOG+1]
- fi
- if [ "$LOG" -eq "2" ]
- then
- echo "$DATE Backup [OK] Total size: $(du -h $BACKUP | awk '{print $1}')" >> /var/log/backup_vds.log && \
- MESSAGE=$(echo "Warpgate weekly backup [OK]")
- else
- exec 2 >> /var/log/backup_vds.log && \
- echo "$DATE Backup [FAIL]" >> /var/log/backup_vds.log && \
- MESSAGE=$(echo "Warpgate weekly backup [FAIL]")
- fi
- }
- #-------------------------------------------------------------------------------------------------------------------
- #Удаляем старые бэкапы
- function oldDel()
- {
- find $BACKUP -mtime +$OLD -exec rm '{}' \;
- }
- mysqlDump && filesBackup && checkFiles && sendNotification && oldDel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement