Utwórz kopię zapasową serwera WWW Debian Jessie 64 na VPS i przywróć na Debian Jessie 64 na VPS

0

Wypożyczam VPS w centrum danych z serwerem apache2 web, nodejs, webmin, phpMyadmin i wieloma innymi programami zainstalowanymi i skonfigurowanymi w Debian Jessie 64.

System operacyjny został początkowo zainstalowany z ustawieniami domyślnymi dotyczącymi partycjonowania dysku, więc nie ma LVM i innych rzeczy.

Teraz zajmuję się planem tworzenia kopii zapasowych i odzyskiwania, który muszę przywrócić do pełnej konfiguracji, powiedzmy, około 10 minut.

Przeszedłem przez to atrakcyjne rozwiązanie, które mówi, że sprawiasz, że ładny Tar zaczyna się od roota z systemu do backupu iw razie potrzeby można go rozpakować w katalogu głównym nowego systemu z tylko OS (debian Jessie 64) i masz całkowicie nowy, identyczny system online i działający.

Pozostaje tylko zmienić IP w DNS i jesteśmy zadowoleni.

Próbuję opisanego tutaj rozwiązania: http://www.aboutdebian.com/tar-backup.htm

Jestem pewien, że nie może być tak łatwo i mam wrażenie, że niektóre pliki i katalogi powinny być wyłączone z kopii zapasowej. na przykład. interfejsy sieciowe? Wydaje mi się, że kiedy kopiujesz to od jednego do drugiego, powstają konflikty, ponieważ nowy VPS ma innego IP z jego Hosta i tym podobnych.

Mogę też zrozumieć, że katalog / proc jest katalogiem, w którym wszystkie dane dotyczą uruchomionych procesów na maszynie i nie należy ich wykonywać w celu przywrócenia?

Czy istnieje prosta odpowiedź w tej sprawie na temat korzystania z tej rzeczy Tar? Co należy wykluczyć i co należy skonfigurować na komputerze docelowym, gdy tar jest rozpakowany?

Edytować Po prostu zmanipulowanie go i rozpakowanie go nie działa. Oddzielenie go do osobnego folderu mogę zobaczyć np. apache2 reż. Po rozpakowaniu w katalogu głównym nie jest widoczne, co czyni instrukcje kompletnymi BS.

Spróbujmy dalej

Ingrid Lambrechtse
źródło

Odpowiedzi:

0

myślę, że to powinno to zrobić, po prostu zmodyfikuj je dla swoich potrzeb.

backup.sh:

#!/bin/sh

# Backupscript mit TAR
# Definieren der Konstanten
###########################
HOSTNAME="YOUR-SERVER-NAME-HERE"
# Backupname
BACKUPNAME="How your backup will be called"
# Emailempfaenger
EMAIL_TO="your-mail@com"
# Emailsender
EMAIL_FROM="Your Name <[email protected]>"
# Backup Verzeichnis
BACKUP_DIR="/root/scripts/backup"
# zu sicherende Files
LIST=$BACKUP_DIR"/backuplist"
# exkludierte Files
EXLIST=$BACKUP_DIR"/excludelist"
# Name des Backup-Device
#OUTDEV="/dev/st0"
OUTDEV="BACKUP-PATH/backup.`date +%A`.tar.gz"
# Log-Datei
LOGFILE=$BACKUP_DIR"/backup.`date +%A`.log"
# Copy Log
LOGCOPY=$BACKUP_DIR"/copy.log"
# Mail Subject Log
SUBJECT_LOG=$BACKUP_DIR"/subject.log"
# Mount Log
MOUNT_LOG=$BACKUP_DIR"/mount.log"
# tar Kommando zum sichern
# TAR_SICH="tar cvf"
TAR_SICH="tar cvzf"
# tar Kommando zum lesen
# TAR_READ="tar tvf"
TAR_READ="tar tvzf"
# tar Kommando zum zurueckspulen
# TAR_REWIND="mt -f /dev/st0 rewind"
# erwartete Filenamen
FILE_EXP=$BACKUP_DIR"/file_expected"
# gesicherte Filenamen
FILE_BCK=$BACKUP_DIR"/savedfiles"
# gelesene Dateien
FILE_READ=$BACKUP_DIR"/file_read"
# Fehler bei erwartete Filenamen
ERR_EXP=$BACKUP_DIR"/tar_find_error"
# Fehler bei gesicherte Filenamen
ERR_BCK=$BACKUP_DIR"/tar_write_error"
# Fehler bei Band zurueckspulen
ERR_REWIND=$BACKUP_DIR"/tar_rewind_error"
# Fehler bei gelesene Dateien
ERR_READ=$BACKUP_DIR"/tar_read_error"

# Sicherungsprotokolldateien auf NULL setzen
rm $LOGFILE $FILE_EXP $FILE_BCK $FILE_READ $ERR_EXP $ERR_BCK $ERR_REWIND $ERR_READ $SUBJECT_LOG $LOGCOPY $MOUNT_LOG 2> /dev/null
echo "Beginne Sicherung"
echo `date` > $LOGFILE
echo

makebackup() {
    # Ins Root Verzeichnis wechseln
    cd /


    # Eintrag in die LOG 
    echo -n "Start TAR Datensicherung: " >> $LOGFILE
    date >> $LOGFILE
    echo >> $LOGFILE

    # Backuplist in Logfile schreiben
    echo >> $LOGFILE
    echo "Backuplist: " >> $LOGFILE
    cat $LIST >> $LOGFILE
    echo >> $LOGFILE

    # Sichern mit dem TAR Kommando
    echo "Beginne Sicherung ..." >> $LOGFILE
    $TAR_SICH $OUTDEV -T $LIST -X $EXLIST > $FILE_BCK 2> $ERR_BCK
    if [ -s $ERR_BCK ]; then
        cat $ERR_BCK >> $LOGFILE
    fi
    echo "Beende Sicherung ..." >> $LOGFILE
    echo >> $LOGFILE

    # Rueckgabewert von TAR Sicherung speichern
    RC=$?

    # Anzahl gesicherte Dateien speichern
    ANZ_SICH_FILES=`wc $FILE_BCK | awk '{print $1}'`
    echo "Anzahl gesicherte Dateien: " $ANZ_SICH_FILES >> $LOGFILE

    # Dateiverzeichnis des Bandes mit dem TAR Kommando lesen
    $TAR_READ $OUTDEV > $FILE_READ 2> $ERR_READ
    if [ -s $ERR_READ ]; then
        cat $ERR_READ >> $LOGFILE
    fi

    # Anzahl gesicherte Dateien speichern
    ANZ_READ_FILES=`wc $FILE_READ | awk '{print $1}'`
    echo "Anzahl gelesene Dateien  : " $ANZ_READ_FILES >> $LOGFILE
    echo >> $LOGFILE

    du -hs $OUTDEV >> $LOGFILE

    # Wenn die Anzahl erwarteten Dateien ungleich der gelesenen ist
    if [ $ANZ_READ_FILES -ne $ANZ_SICH_FILES ]; then
        echo "FEHLER bei Datensicherung " > $SUBJECT_LOG
        cat $SUBJECT_LOG >> $LOGFILE
        echo -n "Ende Datensicherung: " >> $LOGFILE
        date >> $LOGFILE
    else
        echo "Datensicherung erfolgreich abgeschlossen " > $SUBJECT_LOG
        cat $SUBJECT_LOG >> $LOGFILE
        echo -n "Ende Datensicherung: " >> $LOGFILE
        date >> $LOGFILE
    fi

    if [ $ANZ_READ_FILES != $ANZ_SICH_FILES ]; then
        echo "FEHLER bei Datensicherung " > $SUBJECT_LOG
    fi

    echo >> $LOGFILE

    # Mail Benachrichtigung
    mail $EMAIL_TO -r "`echo $EMAIL_FROM`" -s "`echo "Backup"` - `echo $HOSTNAME` - `echo $BACKUPNAME` - `cat $SUBJECT_LOG`" < $LOGFILE

}



makebackup

#EOF

lista kopii zapasowych (musi znajdować się w tym samym folderze co skrypt)

/bin
/boot
/etc
/home
/lib
/lib64
/opt
/root
/sbin
/usr
/var

excludelist (także w tym samym folderze)

/var/lib
/var/spool
/var/run
/root/scripts/backup
René
źródło
Tworzenie taru za pomocą skryptu i rozpakowanie go w katalogu głównym nowego komputera powoduje: ALERT! / dev / disk / by-uuid / xxxxxxxxx nie istnieje. Przechodzenie do powłoki initramfs: _ Powinno być również jasne, że nie mam fizycznego dostępu do serwerów.
Ingrid Lambrechtse
spróbuj ponownie z wyłączeniem / boot
Ingrid Lambrechtse
Dziwne, nie powinno się tworzyć kopii zapasowych / dev i nie powinno się tam niczego kopiować, zwykle powinieneś mieć kopię zapasową wszystkich plików konfiguracyjnych.
René
Więc może lepiej byłoby rozpakować tar w podkatalogu (na przykład / root / restore), a następnie skopiować ważne pliki z powrotem na swoje miejsce.
René
Czy masz dostęp do roota na swoim serwerze?
René
0

Ten mały, nędzny plik fstab w folderze / etc uniemożliwił mi wykonanie tego. Wyłączając to załatwiło sprawę. Kosztowało mnie 10 godzin próby wykluczenia tego i tamtego i tego i tamtego! :)

Tak więc kopia zapasowa jest następująca:

tar -zcvpf /tars/$archive_file --directory=/ --exclude='etc/fstab' -- exclude='boot' --exclude='dev' --exclude='var/www/uploads' --exclude='tars'  --exclude='proc' --exclude='sys' --exclude='tmp' --exclude='run' --exclude='mnt' --exclude='media' --exclude='lost+found' .

A potem w / na nowym systemie ze świeżą podstawową instalacją Debiana Jessie 64:

tar -zxvpf transonly-Sunday.gz

Uruchom ponownie i Voila! :-)

Ingrid Lambrechtse
źródło