Spisu treści:
- Krok 1: Założenia
- Krok 2: Zainstaluj kopię zapasową Rdiff
- Krok 3: Zidentyfikuj katalogi, które chcesz wykonać kopię zapasową
- Krok 4: Automatyzacja
- Krok 5: Napisz funkcję
- Krok 6: Powiedz skryptowi, który katalog ma wykonać kopię zapasową
- Krok 7: Wszystko razem teraz
- Krok 8: Dodaj do Crona
- Krok 9: Przywróć
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta instrukcja pokaże Ci, jak uruchomić prosty, w pełni funkcjonalny system tworzenia kopii zapasowych i odzyskiwania w systemie Linux przy użyciu kopii zapasowej rdiff i dysku USB.
Krok 1: Założenia
Przyjmę system, który używa yum do instalacji i zamontowałem dysk USB jako /mnt//backup. Używam fedory, ale możesz użyć czegokolwiek i po prostu zainstalować rdiff-backup, jak chcesz. Jest również dostępny do pobrania tutaj:
Krok 2: Zainstaluj kopię zapasową Rdiff
Zainstaluj rdiff-backup[root@HOST scripts]# mniam zainstaluj rdiff-backup
Krok 3: Zidentyfikuj katalogi, które chcesz wykonać kopię zapasową
Możesz wykonać kopię zapasową całego systemu, ale to może być przesadą, chcę zrobić kopię zapasową mojego katalogu /etc/ dla wszelkich zmian, które wprowadziłem w named, sendmail, network, itp., /data i moich katalogach domowych.
Krok 4: Automatyzacja
Najwyraźniej nie chcesz tego robić ręcznie. Napiszemy skrypt. Najpierw sprawdzimy, czy dysk USB jest zamontowany, i zakończymy, jeśli nie. #!/bin/bash#Skrypt do tworzenia kopii zapasowej na dysku USBBACKUPBASE="/backups"#check, aby sprawdzić, czy cel kopii zapasowej jest zamontowany.if `df -h | grep $BACKUPBASE >/dev/null ` then echo "Zaczyna się od $0 `data`"else echo "BŁĄD: $BACKUPBASE nie jest podłączony" echo "$0 kończy `data` " exit 1fi
Krok 5: Napisz funkcję
Następnie napiszemy funkcję, która faktycznie wykona kopię zapasową. function kopia zapasowa { CEL=$1$2 ŹRÓDŁO=$2 echo "Źródło: $CEL" if [-d $CEL] then echo "CEL: $CEL" else mkdir -p $CEL echo "CEL: $CEL -utworzono" OPTS=" --force" fi #Wykonaj kopię zapasową rdiff-backup -v2 --exclude-special-files $OPTS $SOURCE $DEST #Wyczyść pliki wersji starszych niż 4 tygodnie rdiff-backup -v2 --remove-starsze-niż 4W --force $ DEST #Wydrukuj raport o tym, co utworzyliśmy i wyczyściliśmy rdiff-backup --list-changed-since 0D23h00m $DEST}
Krok 6: Powiedz skryptowi, który katalog ma wykonać kopię zapasową
backup $BACKUPBASE /databackup $BACKUPBASE /etcbackup $BACKUPBASE /usr/localbackup $BACKUPBASE /home
Krok 7: Wszystko razem teraz
#!/bin/bash#Skrypt do tworzenia kopii zapasowej na dysku USBBACKUPBASE="/backups"#Sprawdź, czy dysk kopii zapasowej jest zamontowany. jeśli `df -h | grep $BACKUPBASE >/dev/null `następnie echo "Rozpoczynasz $0 `data`"else echo "BŁĄD: $BACKUPBASE nie jest podłączony" echo "$0 kończy `data`" exit 1fifunction backup { DEST=$1$2 SOURCE=$2 echo "Src: $SOURCE" if [-d $DEST] then echo "Cel: $DEST" else mkdir -p $DEST echo "Cel: $DEST -created" OPTS="--force" fi #Wykonaj kopię zapasową rdiff-backup -v2 --exclude-special-files $OPTS $SOURCE $DEST #Wyczyść pliki wersji starszych niż 4 tygodnie rdiff-backup -v2 --remove-older-than 4W --force $DEST #Wydrukuj raport o tym, co utworzyliśmy i wyczyściliśmy rdiff-backup --list-changed-od 0D23h00m $DEST}backup $BACKUPBASE /databackup $BACKUPBASE /etcbackup $BACKUPBASE /usr/localbackup $BACKUPBASE /home
Krok 8: Dodaj do Crona
[root@HOST scripts]# crontab -e10 1 * * * /usr/local/scripts/backup-rdiff.sh > /var/log/backup.log 2>&1
Krok 9: Przywróć
Aby przywrócić najnowszą wersję, wystarczy skopiować plik z katalogu kopii zapasowej. Jeśli chcesz wersję sprzed 2 dni:rdiff-backup -r 2D /backup/etc/named.conf /etc/named.confProsty i bardzo skuteczny.