Folgendes Script kopiert Dateien von $SRCDIR (in diesem Beispiel sind es 2 Verzeichnisse; diese Liste kann beliebig erweitert werden) nach $DESTDIR. In $DESTDIR wird zuvor ein neues Verzeichnis mit dem heutigen Datum angelegt und alle Dateien werden dort hinein kopiert. Bei der Ausführung des Scriptes wird darauf geachtet, dass bereits angelegte Backups nicht älter als 30 Tage sind, um die Festplatte des NAS nicht vollzumüllen.
Code: Alles auswählen
#!/bin/bash
SRCDIR=("/var/backups/" "/etc/")
DESTDIR=/mnt/nas-backup/server01
DATE=`date -I`
find $DESTDIR -type d -mtime +30 -exec rm -R {} \;
if [ ! -x $DESTDIR/$DATE ]; then
mkdir $DESTDIR/$DATE;
fi
for p in ${SRCDIR[@]};
do cp -r $p $DESTDIR/$DATE;
done
In diesem Zusammenhang ist es zum Beispiel notwendig, MySQL-Datenbanken zu sichern. Dazu werden lediglich die Datenbanktabellen in einem zweiten Script als Dump exportiert und gepackt:
Code: Alles auswählen
#!/bin/bash
DESTDIR=/var/backups/dbbackup
for db in $(/usr/bin/mysql -e 'show databases' -s | grep -v 'lost+found' | grep -v 'information_schema' | grep -v 'performance_schema') ;
do /usr/bin/mysqldump --events -B --opt -Q $db | bzip2 -c > $DESTDIR/$db.sql.bz2 ;
done
Damit der User das obige Script aufrufen kann, ohne ein Passwort angeben zu müssen, sollte noch ein Datei namens ".my.cnf" mit folgendem Inhalt angelegt werden (Achtung: der Datei möglichst nur Leserechte für den Besitzer geben!):