Shell Script: Backup and gzip mysql databases for linux systems
Dies ist ein sehr hilfreiches Skript zur Sicherung von MySQL-Datenbanken. Alle Datenbanken werden automatisch gedumpt, gezippt und wie folgt benannt:
DATABASENAME.yyyyyyymmdd.gzip.
Das Script kann man z.B. jede Nacht als Cronjob ausführen. Der Wert EXPIRETIME bestimmt, nach wievielen Backups (Tagen) alte Backups gelöscht werden. So läuft man nicht Gefahr, die Platte übermäßig zu belasten.
# mysql_backup.sh
# Directory to save backups
BACKUP_DIR=${1:-/backups/mysql}
# Define cycle
EXPIRETIME=10
# Get actual date
DATE=`date "+%Y%m%d"`
# check if directory exists
# if not, then create directory
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
chown 0700 $BACKUP_DIR
fi
# loop all databses and dump
for i in /var/lib/mysql/*/; do
dbname=`basename "$i"`
mysqldump --user=root --password=YOURPASSWORD "$dbname" | gzip >
$BACKUP_DIR/$dbname.$DATE.gz
done
# delete all old Backups
find $BACKUP_DIR -mtime +${EXPIRETIME} -exec rm {} \;
