Guest User

Untitled

a guest
Oct 26th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. #!/bin/sh
  2. ## crontab: min hr mday month wday command
  3. # 15 9 * * * /Users/[your user name]/scripts/auto_mysql_backup.sh
  4. ## Restore from Backup
  5. # gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]
  6. # or
  7. # gunzip [backupfile.sql.gz]
  8. # mysql -u [uname] -p[pass] [dbname] < [backupfile.sql]
  9.  
  10. HOSTNAME=localhost
  11. MYSQLUSER=root
  12. MYSQLPASS=123
  13.  
  14. ##
  15. BACKUP_DIR=/data/backup/mysql
  16. BACKUP_SEQ=$(date '+%Y%m%d')_$(date '+%H%M')
  17.  
  18. mkdir -p $BACKUP_DIR
  19.  
  20. # Don't backup databases with these names
  21. # Example: starts with mysql (^mysql) or ends with _schema (_schema$)
  22. IGNORE_DB="^mysql\|_schema$\|sys"
  23.  
  24.  
  25. for DB in $(mysql -h $HOSTNAME -u $MYSQLUSER --password=${MYSQLPASS} --batch --skip-column-names --execute="show databases" | grep -v ${IGNORE_DB} );
  26. do
  27. FILENAME=${DB}_${BACKUP_SEQ}.sql.gzip
  28. echo "exec dump db ${DB}"
  29. mysqldump $DB -h $HOSTNAME -u $MYSQLUSER --password=${MYSQLPASS} --triggers --routines --events | gzip -c > $BACKUP_DIR/$FILENAME
  30. done
Add Comment
Please, Sign In to add comment