tusharjoshi

System + MySQL backup script by Marchost

Aug 2nd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2. # System + MySQL backup script
  3. # Copyright (c) 2008 Marchost
  4. # This script is licensed under GNU GPL version 2.0 or above
  5. # ---------------------------------------------------------------------
  6.  
  7. #########################
  8. ######TO BE MODIFIED#####
  9.  
  10. ### System Setup ###
  11. BACKUP=YOUR_LOCAL_BACKUP_DIR
  12.  
  13. ### MySQL Setup ###
  14. MUSER="MYSQL_USER"
  15. MPASS="MYSQL_USER_PASSWORD"
  16. MHOST="localhost"
  17.  
  18. ### FTP server Setup ###
  19. FTPD="YOUR_FTP_BACKUP_DIR"
  20. FTPU="YOUR_FTP_USER"
  21. FTPP="YOUR_FTP_USER_PASSWORD"
  22. FTPS="YOUR_FTP_SERVER_ADDRESS"
  23.  
  24. ######DO NOT MAKE MODIFICATION BELOW#####
  25. #########################################
  26.  
  27. ### Binaries ###
  28. TAR="$(which tar)"
  29. GZIP="$(which gzip)"
  30. FTP="$(which ftp)"
  31. MYSQL="$(which mysql)"
  32. MYSQLDUMP="$(which mysqldump)"
  33.  
  34. ### Today + hour in 24h format ###
  35. NOW=$(date +"%d%H")
  36.  
  37. ### Create hourly dir ###
  38.  
  39. mkdir $BACKUP/$NOW
  40.  
  41. ### Get all databases name ###
  42. DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
  43. for db in $DBS
  44. do
  45.  
  46. ### Create dir for each databases, backup tables in individual files ###
  47.   mkdir $BACKUP/$NOW/$db
  48.  
  49.   for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  50.   do
  51.     FILE=$BACKUP/$NOW/$db/$i.sql.gz
  52.     echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  53.   done
  54. done
  55.  
  56. ### Compress all tables in one nice file to upload ###
  57.  
  58. ARCHIVE=$BACKUP/$NOW.tar.gz
  59. ARCHIVED=$BACKUP/$NOW
  60.  
  61. $TAR -cvf $ARCHIVE $ARCHIVED
  62.  
  63. ### Dump backup using FTP ###
  64. cd $BACKUP
  65. DUMPFILE=$NOW.tar.gz
  66. $FTP -n $FTPS <<END_SCRIPT
  67. quote USER $FTPU
  68. quote PASS $FTPP
  69. cd $FTPD
  70. mput $DUMPFILE
  71. quit
  72. END_SCRIPT
  73.  
  74. ### Delete the backup dir and keep archive ###
  75.  
  76. rm -rf $ARCHIVED
Add Comment
Please, Sign In to add comment