Linux: einfaches Backup Script (Dateien + Datenbank)

Hier pflegen wir selbst Tips ein, deren Verwendung wir immer wieder selbst einmal brauchen.
Antworten
Benutzeravatar
maennchen1.de
Administrator
Beiträge: 17868
Registriert: 14.08.2003, 16:55
Lizenz: wpShopGermany Enterprise
Wohnort: Thüringen, Ellersleben
Kontaktdaten:

Linux: einfaches Backup Script (Dateien + Datenbank)

Beitrag von maennchen1.de »

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!):

Code: Alles auswählen

[client]
password=DeinPassWort
Kein Support per PN! Alle Fragen beantworten wir hier im Forum. Per PN bitte nur Passwörter, Namen und URLs - sofern notwendig.
Bitte vor dem posten lesen:
Wie poste ich eine Frage zu einem Problem?
FAQ / häufig gestellte Fragen
Anzeige-Fehler / Funktionsfehler in wpShopGermany erkennen und selbst beheben
PHTML-Dateien richtig verwenden (für eigene Anpassungen)
Antworten