Advertisement
Guest User

Untitled

a guest
Aug 4th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.04 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DATE_PREFIX=$(date +%G-%m-%d)
  4.  
  5. MYSQL_USER="root"
  6. MYSQL_PWD="secret"
  7.  
  8.  
  9. BACKUP_DIR="/var/backups/mysql"
  10.  
  11. GZIP="/bin/gzip"
  12. MYSQLDUMP="/usr/bin/mysqldump"
  13. MYSQLCLIENT="/usr/bin/mysql"
  14. FIND="/usr/bin/find"
  15.  
  16. DAYS_TO_KEEP_OLD_BACKUPS="4"  #how many days should you keep the old backups
  17.  
  18. #remove old backups
  19. $FIND $BACKUP_DIR -maxdepth 0 -mtime +$DAYS_TO_KEEP_OLD_BACKUPS -exec rm -f {} \;
  20.  
  21. # get a list of databases
  22. DBLIST=$( ${MYSQLCLIENT} --skip-column-names --batch --user=$MYSQL_USER --password=$MYSQL_PWD  --execute="SHOW DATABASES;" )
  23.  
  24. #dump databases in seperate files an gzip them
  25.  
  26. umask 027
  27. cd $BACKUP_DIR || exit 1
  28.  
  29. for db in $DBLIST; do
  30.     SKIP_LOCK=""
  31.     [ "$db" == "information_schema" ] && SKIP_LOCK="--skip-lock-tables"
  32.     DUMP_FILE_NAME="${DATE_PREFIX}_${db}.tar.gz"
  33.     $MYSQLDUMP --force --opt $SKIP_LOCK --user=$MYSQL_USER --password=$MYSQL_PWD --databases $db | \
  34.          $GZIP > $DUMP_FILE_NAME
  35.     [ -f current_${db}.tar.gz ] && rm current_${db}.tar.gz
  36.     ln $DUMP_FILE_NAME current_${db}.tar.gz
  37. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement