oft reicht ein Backup für Daten, Datenbanken und Konfiguration. Bei Linux liegen diese Informationen an wohlbekannten Orten.
Packt man diese in ein Archiv und leg sie z.B. auf an NAS, hat man es bei einem Crash deutlich leichter…
#!/bin/bash here=$(pwd) MYSQL_USR="dbroot" MYSQL_PWD="dbroot-Password" MYSQL_CMD=/usr/bin/mysql MYSQL_DMP=/usr/bin/mysqldump mount -t nfs -o nolock nashost:/NFSBackup /mnt/backup for (( i=10; i>=1; i--)) do k=$(printf '%03d' "$i") j=$(printf '%03d' "$((i+1))") if [ -f /mnt/backup/${HOSTNAME}.${k}.tar.gz ]; then mv -f /mnt/backup/${HOSTNAME}.${k}.tar.gz /mnt/backup/${HOSTNAME}.${j}.tar.gz fi done if [ -f /mnt/backup/${HOSTNAME}.tar.gz ]; then mv -f /mnt/backup/${HOSTNAME}.tar.gz /mnt/backup/${HOSTNAME}.001.tar.gz fi cd / if [ -f $MYSQL_CMD ]; then databases=`$MYSQL_CMD --user=$MYSQL_USR -p$MYSQL_PWD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"` for db in $databases; do # echo "Dumping $db ..." $MYSQL_DMP --force --events --opt --user=$MYSQL_USR -p$MYSQL_PWD --databases $db > /opt/mysqlbck/$db.sql done fi tar czf /mnt/backup/$HOSTNAME.tar.gz opt etc home var --exclude=var/lib/mysql/* --exclude=*.sock fuser -km /mnt/backup umount /mnt/backup cd $here
Zeile 5 und 6 muss mit den Anmeldedaten eines MySQL-Server ausgefüllt werden. Hat man keinen MySQL installiert, kann dies ignoriert werden.
In Zeile 12 gibt man die Anzahl der Backups an. Aktuell sind es 10. Da jedes Backup ein Full-Backup ist ist diese Zahl sozusagen die direkte Backup-Storage-Size…
Einfaches Backup für Linux