Advertisement
Guest User

Untitled

a guest
Apr 20th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.38 KB | None | 0 0
  1. #!/bin/bash
  2. #VDS backup  script by Tomashkov Evgeniy
  3.  
  4. USER=""
  5. PASSWORD=""
  6. BACKUP=""
  7.  
  8. OLD=30 #время хранения бэкапа
  9. PREFIX=""  # hostname
  10. DATE=`date '+%Y-%m-%d'`
  11.  
  12. FILE1=$BACKUP/$DATE-sql-$PREFIX.tar.gz
  13. FILE2=$BACKUP/$DATE-files-$PREFIX.tar.gz
  14. LOG=0
  15.  
  16. #--------------------------------------------------------------------------------------------------------
  17. #Оповещение в Telegram
  18. BOT_TOKEN=""
  19. CHAT_ID=""
  20. MESSAGE=""
  21.  
  22. function sendNotification()
  23. {
  24.     wget --tries=3 --timeout=5 -O /dev/null  \
  25.     "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage?chat_id=${CHAT_ID}&text=${MESSAGE}"
  26. }
  27.  
  28. #-------------------------------------------------------------------------------------------------------
  29. #Бэкапим дамп mysql по базам
  30.  
  31. function mysqlDump()
  32. {
  33. mkdir $BACKUP/$DATE.sql
  34. cd $BACKUP/$DATE.sql
  35. for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | grep -v information_schema | grep -v Database`;
  36.         do mysqldump -u $USER -p$PASSWORD $i > $DATE-$i.sql
  37. done
  38.  
  39. cd ..
  40. tar -czf $BACKUP/$DATE-sql-$PREFIX.tar.gz ./$DATE.sql
  41. rm -rf ./$DATE.sql
  42. }
  43.  
  44. #--------------------------------------------------------------------------------------------------------
  45. #Бэкапим файлы
  46.  
  47. function filesBackup()
  48. {
  49. tar -czf $BACKUP/$DATE-files-$PREFIX.tar.gz  \
  50.     /root/ \
  51.     /var/www/ \
  52.     /etc/ \
  53.     /var/log/ \
  54.     --exclude=$BACKUP
  55. }
  56.  
  57. #-------------------------------------------------------------------------------------------------------
  58. #Проверка, логирование и оповещение
  59. function checkFiles()
  60. {
  61. if [ -f $FILE1 ] && [ -f $FILE2 ]
  62. then
  63.         LOG=$[LOG+1]
  64. fi
  65.  
  66. if [ -s $FILE1 ] && [ -s $FILE2 ]
  67. then
  68.         LOG=$[LOG+1]
  69. fi
  70.  
  71. if [ "$LOG" -eq "2" ]
  72.     then
  73.     echo "$DATE Backup [OK] Total size: $(du -h $BACKUP | awk '{print $1}')" >> /var/log/backup_vds.log && \
  74.     MESSAGE=$(echo "Warpgate weekly backup [OK]")
  75. else
  76.     exec 2 >> /var/log/backup_vds.log && \
  77.     echo "$DATE Backup [FAIL]"  >> /var/log/backup_vds.log  && \
  78.     MESSAGE=$(echo "Warpgate weekly backup [FAIL]")
  79. fi
  80. }
  81.  
  82. #-------------------------------------------------------------------------------------------------------------------
  83. #Удаляем старые бэкапы
  84. function oldDel()
  85. {
  86. find $BACKUP -mtime +$OLD -exec rm '{}' \;
  87. }
  88.  
  89. mysqlDump && filesBackup && checkFiles && sendNotification && oldDel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement