Guest User

Untitled

a guest
Jul 16th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. #!usr/bin/path/backup.sh
  2.  
  3. # List of databases to be backed up separated by space
  4. dblist="mydb"
  5. user="myuser"
  6. pass="mypass********"
  7.  
  8. # Directory for backups
  9. backupdir=/my/path
  10.  
  11. # Number of versions to keep
  12. numversions=4
  13.  
  14. # Full path for MySQL hotcopy command
  15. # Please put credentials into /root/.my.cnf
  16. #hotcopycmd=/usr/bin/mysqlhotcopy
  17. hotcopycmd="/usr/bin/mysqldump -u$user -p$pass --lock-tables --databases"
  18.  
  19. # Create directory if needed
  20. mkdir -p "$backupdir"
  21. if [ ! -d "$backupdir" ]; then
  22. echo "Invalid directory: $backupdir"
  23. exit 1
  24. fi
  25.  
  26. # Hotcopy begins here
  27. echo "Dumping MySQL Databases..."
  28. RC=0
  29. for database in $dblist; do
  30. echo
  31. echo "Dumping $database ..."
  32. mv "$backupdir/$database.gz" "$backupdir/$database.0.gz" 2> /dev/null
  33. $hotcopycmd $database | gzip > "$backupdir/$database.gz"
  34.  
  35. RC=$?
  36. if [ $RC -gt 0 ]; then
  37. continue;
  38. fi
  39.  
  40. # Rollover the backup directories
  41. rm -fr "$backupdir/$database.$numversions.gz" 2> /dev/null
  42. i=$numversions
  43. while [ $i -gt 0 ]; do
  44. mv "$backupdir/$database.`expr $i - 1`.gz" "$backupdir/$database.$i.gz" 2> /dev/null
  45. i=`expr $i - 1`
  46. done
  47. done
  48.  
  49. if [ $RC -gt 0 ]; then
  50. echo "MySQL Dump failed!"
  51. exit $RC
  52. else
  53. # Hotcopy is complete. List the backup versions!
  54. ls -l "$backupdir"
  55. echo "MySQL Dump is complete!"
  56. fi
  57. exit 0
Add Comment
Please, Sign In to add comment