Advertisement
Guest User

s3mysqlbackup.sh

a guest
Mar 21st, 2018
489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.59 KB | None | 0 0
  1. #!/bin/bash
  2. # Based on https://gist.github.com/2206527
  3. echo -e " "
  4. echo -e " .  ____  .    ______________________________"
  5. echo -e " |/      \|   |                              |"
  6. echo -e "[| \e[1;31m♥    ♥\e[00m |]  | S3 MySQL Backup Script v.0.1 |"
  7. echo -e " |___==___|  /                © oodavid 2012 |"
  8. echo -e "              |______________________________|"
  9. echo -e " "
  10.  
  11. # Basic variables
  12. mysqlpass="YOUR_DATA_HERE"
  13. bucket="s3://YOUR_DATA_HERE"
  14. MYSQLDUMPPATH=/usr/local/apps/mysql/bin/
  15. # Timestamp (sortable AND readable)
  16. stamp=`date +"%s - %A %d %B %Y @ %H%M"`
  17.  
  18. # List all the databases
  19. databases=`mysql -u root -p$mysqlpass -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"`
  20.  
  21. # Feedback
  22. echo -e "Dumping to \e[1;32m$bucket/$stamp/\e[00m"
  23.  
  24. # Loop the databases
  25. for db in $databases; do
  26.  
  27.   # Define our filenames
  28.   filename="$stamp - $db.sql.gz"
  29.   tmpfile="/tmp/$filename"
  30.   object="$bucket/$stamp/$filename"
  31.  
  32.   # Feedback
  33.   echo -e "\e[1;34m$db\e[00m"
  34.  
  35.   # Dump and zip
  36.   echo -e "  creating \e[0;35m$tmpfile\e[00m"
  37.   ${MYSQLDUMPPATH}mysqldump -u root -p$mysqlpass --force --opt --databases "$db" | gzip -c > "$tmpfile"
  38.  
  39.   # Upload
  40.   echo -e "  uploading..."
  41.   s3cmd put "$tmpfile" "$object"
  42.  
  43.   # Delete
  44.   rm -f "$tmpfile"
  45.  
  46. done;
  47.  
  48. # Jobs a goodun
  49. echo -e "\e[1;32mJobs a goodun\e[00m"
  50.  
  51. emailfrom="your@email.com"
  52. emailto="your@email.com"
  53. subjectOK="BACKUP OK (MYSQL)"
  54. messageOK="BACKUP OK (MYSQL)"
  55. mailOK="subject:$subjectOK\nfrom:$emailfrom\n$messageOK"
  56. echo -e $mailOK | /usr/sbin/sendmail "$emailto"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement