Backup für VDS und Dedizierte Server (Linux)

Unten finden Sie zwei Versionen des Skripts für die Organisation der Datensicherung (Backup) mit VDS Linux. Beide Varianten erstellen einmal pro Woche - sonntags - eine vollständige Kopie aller Daten und der MySQL-Datenbank, und in der übrigen Zeit nur inkrementelle Archive. Um automatisch zu laufen, fügen Sie eine Zeile wie die folgende in den Cron Job Manager ein:

10 0 * /root/bin/backup.sh >/dev/null 2>&1

Damit die Skripte funktionieren, muss der freie Speicherplatz im System größer sein als die Größe der kopierten Daten.

Backup auf FTP-Server

Weisen Sie anfangs mehreren Variablen Werte zu. DIRS - durch Leerzeichen getrennte Liste der Verzeichnisse für Backups. MUSER und MPASS - MySQL DBMS-Administrationsdaten für die Verbindung. FTPU und FTPP - Benutzerdaten für die Verbindung mit dem FTP-Server. FTPS ist der Name des FTP-Servers. EMAILID - E-Mail-Adresse, an die Fehlermeldungen gesendet werden sollen. Für den korrekten Betrieb muss der ncftp-Client auf dem System installiert sein:
#!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### FTP server Setup ###
FTPD="/backup/incremental"
FTPU="user"
FTPP="password"
FTPS="ftp1.sim-networks.com"
NCFTP="$(which ncftpput)"

### Other stuff ###
EMAILID="user@yourdomain.com"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
FTPD="/backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

### Dump backup using FTP ###
#Start FTP backup using ncftp
ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
lcd $BACKUP
mput
quit
EOF

### Find out if ftp backup failed or not ###
if [ "$?" == "0" ]; then
rm -f $BACKUP/

else
T=/tmp/backup.fail
echo "Date: $(date)">$T
echo "Hostname: $(hostname)" >>$T
echo "Backup failed" >>$T
mail -s "BACKUP FAILED" "$EMAILID" <$T
rm -f $T
fi

Server Colocation

Server Colocation

Erfahren Sie mehr über unsere Rechenzentren in Deutschland für Colocation

Mehr erfahren

Backup auf lokalen Datenträger, NFS, iSCSI

Beachten Sie die Variablen, die konfiguriert werden müssen. DIRS - durch Leerzeichen getrennte Liste der Verzeichnisse für Backups. MUSER und MPASS - MySQL DBMS-Administratordaten für die Verbindung. MNTD ist das Verzeichnis, in dem der Backup-Speicher organisiert werden soll. Dies kann ein Verzeichnis auf dem lokalen Laufwerk oder ein NFS- oder iSCSI-Netzwerkspeicher sein, der an dieser Stelle eingebunden ist: #!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### Datastore Setup ###
MNTD="/mnt"
DSD="backup/incremental"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
DSD="backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

mkdir -p $MNTD/$DSD/$NOW
mv -f $BACKUP/ $MNTD/$DSD/$NOW
rm -f $BACKUP/

War dieser Artikel hilfreich?

Stichworten:

#server

Hat dir der Artikel gefallen?

Cookie-Zustimmung

Indem Sie auf «Ich stimme zu» klicken, stimmen Sie der Verwendung von Cookies auf unserer Website zu. Die Verwendung dieser Cookies dient der Optimierung Ihrer Nutzererfahrung, indem u. a. Präferenzen für kommende Besuche auf unserer Website gespeichert werden. Sie können unter «Cookies verwalten» detaillierte Einstellungen vornehmen und Ihre Cookie-Auswahl anpassen. Mehr dazu

Cookie-Einstellungen

funktional

Funktionale bzw. notwendige Cookies sind für die Grundfunktionen der Website von entscheidender Bedeutung und die Website funktioniert ohne sie nicht wie vorgesehen.

analyse

Analytische Cookies werden verwendet, um zu verstehen, wie Besucher mit der Website interagieren.

werbung

Werbe-Cookies werden verwendet, um Besuchern relevante Anzeigen und Angebote bereitzustellen.