Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- ## backup each mysql db into a different file, rather than one big file
- ## as with --all-databases. This will make restores easier.
- ## To backup a single database simply add the db name as a parameter (or multiple dbs)
- ## Putting the script in /var/backups/mysql seems sensible... on a debian machine that is
- ## Create the user and directories
- # mkdir -p /var/backups/mysql/databases
- # useradd --home-dir /var/backups/mysql --gid backup --no-create-home mysql-backup
- ## Remember to make the script executable, and unreadable by others
- # chown -R mysql-backup:backup /var/backups/mysql
- # chmod u=rwx,g=rx,o= /var/backups/mysql/dump.sh
- ## crontab entry - backup every night at 02:00
- # sudo -u mysql-backup crontab -e
- # 0 2 * * * /var/backups/mysql/dump.sh
- ## Create 'backup' mysql user
- # CREATE USER 'backup'@'localhost' IDENTIFIED BY 's3cr3t';
- # GRANT EVENT, LOCK TABLES, PROCESS, REFERENCES, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER ON *.* TO 'backup'@'localhost' ;
- USER="backup"
- PASSWORD="s3cr3t"
- OUTPUTDIR=$(dirname $0)"/databases"
- MYSQLDUMP="/usr/bin/mysqldump"
- MYSQL="/usr/bin/mysql"
- #Consulta que excluye las DB de sytema y otras innecesarias
- SHOW="SHOW DATABASES WHERE \`DATABASE\` NOT IN ('mysql','information_schema')"
- FILE="bk/DB_"$(date '+%y-%m-%d.bk')
- if [ -z "$1" ]; then
- databases=`$MYSQL --user=$USER --password=$PASSWORD --batch --skip-column-names -e "$SHOW"`
- for database in $databases; do
- $MYSQLDUMP \
- --user=$USER --password=$PASSWORD \
- --force \
- --quote-names --dump-date \
- --opt --single-transaction \
- --events --routines --triggers \
- --databases $database \
- --result-file="$OUTPUTDIR/$database.sql"
- done
- else
- for database in ${@}; do
- $MYSQLDUMP \
- --user=$USER --password=$PASSWORD \
- --force \
- --quote-names --dump-date \
- --opt --single-transaction \
- --events --routines --triggers \
- --databases $database \
- --result-file="$OUTPUTDIR/$database.sql"
- done
- fi
- #Comprension de todo las bases de datos
- tar -czvf $FILE databases/
Add Comment
Please, Sign In to add comment