Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Backup directory path
  4. backup_parent_dir="$HOME/backup/mysql"
  5.  
  6. # Create backup directory
  7. if [ ! -d $backup_parent_dir ]; then
  8. mkdir -p $backup_parent_dir
  9. if [ "$?" = "0" ]; then
  10. :
  11. else
  12. echo "Could not create backup folder."
  13. fi
  14. else
  15. :
  16. fi
  17.  
  18. # Write log
  19. exec &>> $backup_parent_dir/backup.log
  20. echo "****************************"
  21. echo "* Backup date time *"
  22. echo "* $(date +%c) *"
  23. echo "****************************"
  24. echo
  25.  
  26. # MySQL settings
  27. mysql_user="username"
  28. mysql_password="password"
  29.  
  30. # Check MySQL password
  31. echo exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2>/dev/null
  32. if [ "$?" -gt 0 ]; then
  33. echo "MySQL ${mysql_user} password incorrect"
  34. exit 1
  35. else
  36. echo "MySQL ${mysql_user} password correct."
  37. fi
  38.  
  39. # Create backup directory and set permissions
  40. backup_date=`date +%Y_%m_%d_%H_%M`
  41. backup_dir="${backup_parent_dir}/${backup_date}"
  42. echo "Backup directory: ${backup_dir}"
  43. mkdir -p "${backup_dir}"
  44. chmod 700 "${backup_dir}"
  45.  
  46. # Get MySQL databases except information_schema and performance_schema
  47. mysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed /^Database$/d | egrep -vi 'information_schema|performance_schema'`
  48.  
  49. # Backup and compress each database
  50. for database in $mysql_databases
  51. do
  52. echo "Creating backup of \"${database}\" database"
  53. mysqldump --user=${mysql_user} --password=${mysql_password} ${database} | gzip > "${backup_dir}/${database}.gz"
  54. chmod 600 "${backup_dir}/${database}.gz"
  55. done
  56.  
  57. # Remove backups older than 7 days
  58. find $backup_parent_dir -maxdepth 1 -type d -mtime +7 -exec echo {} "will be removed." \;
  59. find $backup_parent_dir -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
  60. echo
  61. echo "Removed backups older than 7 days"
  62. echo
  63. echo "********* End Work **********"
  64. echo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement