Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Create the directory /home/database-backups
- # Then run this script on a daily cron to dump all databases
- # Should work on any Plesk server as-is.
- # Original script courtesy of Sonia Hamilton
- # http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/
- # Modified by QWeb Ltd to:
- # - work more securely on Plesk servers
- # - keep existing backups for 2 days
- # http://www.qweb.co.uk/
- # Plesk renames root to admin
- USER="admin"
- # Plesk stores the admin password here
- PASSWORD="`cat /etc/psa/.psa.shadow`"
- # mkdir this folder if it doesn't yet exist
- OUTPUTDIR="/home/database-backups"
- MYSQLDUMP="/usr/bin/mysqldump"
- MYSQL="/usr/bin/mysql"
- # Clean up older backups (save space)
- rm "$OUTPUTDIR/*bak2" > /dev/null 2>&1
- # Get a list of databases
- databases=`$MYSQL --user=$USER --password=$PASSWORD \
- -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
- # Dump each database in turn
- for db in $databases; do
- # maintain backups for 2 days to prevent complete loss if server dies during backup
- mv "$OUTPUTDIR/$db.bak" "$OUTPUTDIR/$db.bak2"
- $MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \
- --databases $db > "$OUTPUTDIR/$db.bak"
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement