linux:backup:server-backup

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
linux:backup:server-backup [2011/05/23 00:16] psycorelinux:backup:server-backup [2024/01/12 22:17] – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +{{tag>deutsch linux debian backup}}
 +====== Remote Server Backup ======
  
 +Mithilfe des folgenden Scripts können Backups von einem Remote Server auf einen anderen angelegt werden. Hierzu wird FTP genutzt.
 +
 +===== Backup Script =====
 +
 +<code bash>
 +#!/bin/sh
 +# Remote Server Backup Script v0.5 by PsyCore
 +
 +# vars
 +
 + BCF=backup-datei.tar
 + RDir="dir1/subdir1"
 +
 + FTPHost=dein.host.ip
 + FTPPort=21
 + FTPUser=FTPUser
 + FTPPass=passwort
 +
 + SQLUser=root
 + SQLPass=passwort
 +
 + SUBJECT="Backup Status ServerName"
 + EMAIL="du@server.ip"
 + EMSG="/tmp/emsg.txt"
 +
 +# dumping mySQL tables
 +
 + mysqldump -u $SQLUser -p$SQLPass --all-databases > root_full.sql
 +
 +# collect and compress backup files
 +
 + tar cvfz webs.tgz /home/user /root
 + tar cvfz sql.backup.tgz *.sql
 +
 +# archive all
 +
 + tar cvf $BCF *.tgz
 +
 +# FTP transfer
 +
 +./rftp.sh $FTPHost $FTPPort $FTPUser $FTPPass $BCF
 +
 +# cleanup
 +
 + rm -f *.sql
 + rm -f *.tgz
 + rm -f *.tar
 +
 +echo "Backup Status: " >$EMSG
 +grep "bytes sent" backup.log>>$EMSG
 +grep "221 Goodbye" backup.log>>$EMSG
 +
 +mail -s "$SUBJECT" "$EMAIL" < $EMSG
 +rm $EMSG
 +
 +# EOF
 +</code>
 +
 +===== rftp Script=====
 +
 +Das Script rftp.sh führt eine Reihe von Remote FTP Kommandos aus. Die Parameter werden aus dem Ursprungsscript übergeben.
 +
 +<code bash>
 +#!/bin/sh
 +# Remote Server Backup Script v0.5 by PsyCore
 +
 +ftp -vn << EOFTP
 +open $1 $2
 +user $3 $4
 +cd "dasFTPVerzeichnis auf/deinem Server"
 +delete $5
 +put $5
 +quit
 +EOFTP
 +</code>
 +
 +
 +===== Cronjob =====
 +
 +Um das Script zeitgesteuert zu starten muss ein Cronjob angelegt werden. In diesem Beispiel startet das Script jeden Montag um 12:00 Uhr. Die Ausgabe des Scripts wird in ein Logfile umgeleitet.
 +
 +<code bash>
 +# m h  dom mon dow   command
 +0 12 * * 1 /var/www/web/files/backup.sh > /var/www/web/files/backup.log
 +</code>