kazeuraki

backup.sh

Jan 12th, 2017
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.56 KB | None | 0 0
  1. # HocVPS Script Plugin - Backup Server and Upload to Google Drive
  2.  
  3. #!/bin/bash
  4.  
  5. . /etc/hocvps/scripts.conf
  6.  
  7. SERVER_NAME=HOCVPS_BACKUP
  8.  
  9. TIMESTAMP=$(date +"%F")
  10. BACKUP_DIR="/root/backup/$TIMESTAMP"
  11. MYSQL_USER="root"
  12. MYSQL=/usr/bin/mysql
  13. MYSQL_PASSWORD=$mariadbpass
  14. MYSQLDUMP=/usr/bin/mysqldump
  15. SECONDS=0
  16.  
  17. mkdir -p "$BACKUP_DIR/mysql"
  18.  
  19. echo "Starting Backup Database";
  20. databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"`
  21.  
  22. for db in $databases; do
  23.     $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
  24. done
  25. echo "Finished";
  26. echo '';
  27.  
  28. echo "Starting Backup Website";
  29. #Loop through /home directory
  30. for D in /home/*; do
  31.     if [ -d "${D}" ]; then #If a directory
  32.         domain=${D##*/} # Domain name
  33.         echo "- "$domain;
  34.         zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache
  35.     fi
  36. done
  37. echo "Finished";
  38. echo '';
  39.  
  40. echo "Starting Backup Nginx Configuration";
  41. cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
  42. echo "Finished";
  43. echo '';
  44.  
  45. size=$(du -sh $BACKUP_DIR | awk '{ print $1}')
  46.  
  47. echo "Starting Uploading Backup";
  48. /usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1
  49. /usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week
  50. echo "Finished";
  51. echo '';
  52.  
  53. duration=$SECONDS
  54. echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
Add Comment
Please, Sign In to add comment