<Poprzedni | Spis treści | Następne>
2.1. Rotacja archiwów NFS
W tej sekcji skrypt powłoki zostanie nieco zmodyfikowany, aby zaimplementować schemat rotacji dziadek-ojciec-syn (co miesiąc-tydzień-codziennie):
• Obrót wykona a codziennie kopia zapasowa od niedzieli do piątku.
• W sobotę o tygodniowy kopia zapasowa jest wykonywana, co daje cztery cotygodniowe kopie zapasowe w miesiącu.
• miesięcznie kopia zapasowa jest wykonywana pierwszego dnia miesiąca, z rotacją dwóch miesięcznych kopii zapasowych w zależności od tego, czy miesiąc jest nieparzysty, czy parzysty.
Oto nowy skrypt:
#! / bin / bash
####################################
#
# Utwórz kopię zapasową skryptu montowania NFS za pomocą
# rotacja dziadek-ojciec-syn.
#
####################################
# Co wykonać kopię zapasową.
backup_files="/home /var/spool/mail /etc /root /boot /opt"
# Gdzie wykonać kopię zapasową. cel="/mnt/kopia zapasowa"
# Ustaw zmienne dla nazwy pliku archiwum. dzień=$(data +%A)
nazwa hosta=$(nazwa hosta -s)
# Znajdź, który to tydzień miesiąca 1-4. dzień_num=$(data +%-d)
if (( $day_num <= 7 )); następnie plik_tygodnia="$nazwa_hosta-tydzień1.tgz"
elif (( $day_num > 7 && $day_num <= 14 )); następnie plik_tygodnia="$nazwa hosta-tydzień2.tgz"
elif (( $day_num > 14 && $day_num <= 21 )); następnie plik_tygodnia="$nazwa hosta-tydzień3.tgz"
elif (( $day_num > 21 && $day_num < 32 )); następnie plik_tygodnia="$nazwa hosta-tydzień4.tgz"
fi
# Sprawdź, czy miesiąc jest parzysty czy nieparzysty. numer_miesiąca=$(data +%m)
miesiąc=$(wyrażenie $miesiąc_num % 2) if [ $miesiąc -eq 0 ]; Następnie
miesiąc_plik="$nazwa_hosta-miesiąc2.tgz"
więcej
fi
miesiąc_plik="$nazwa_hosta-miesiąc1.tgz"
# Utwórz nazwę pliku archiwum. jeśli [ $day_num == 1 ]; następnie plik_archiwum=$plik_miesiąca
elif [ $dzień != "Sobota"]; następnie plik_archiwum="$nazwa hosta-$dzień.tgz"
inaczej plik_archiwum=$plik_tygodnia
fi
# Wydrukuj komunikat o stanie rozpoczęcia.
echo „Tworzenie kopii zapasowej $backup_files do $dest/$archive_file” data
przegapić
# Wykonaj kopię zapasową plików za pomocą tar.
tar czf $dest/$archive_file $backup_files
# Wydrukuj komunikat o stanie zakończenia. Echo
echo Data zakończenia tworzenia kopii zapasowej
# Długa lista plików w $dest, aby sprawdzić rozmiary plików. ls -lh $dest/
Skrypt można wykonać tymi samymi metodami, co w Sekcji 1.2, „Wykonywanie skryptu” [s. 325].
Na wypadek awarii dobrą praktyką jest zabranie nośników kopii zapasowych poza siedzibę. W przykładzie skryptu powłoki nośnikiem kopii zapasowych jest inny serwer udostępniający udział NFS. Najprawdopodobniej przeniesienie serwera NFS do innej lokalizacji byłoby niepraktyczne. W zależności od szybkości połączenia może być dostępna opcja skopiowania pliku archiwum przez łącze WAN na serwer w innej lokalizacji.
Inną opcją jest skopiowanie pliku archiwum na zewnętrzny dysk twardy, który można następnie zabrać poza siedzibę. Ponieważ ceny zewnętrznych dysków twardych stale spadają, opłacalne może być użycie dwóch dysków na każdy poziom archiwum. Umożliwiłoby to podłączenie jednego dysku zewnętrznego do serwera kopii zapasowych i jednego w innej lokalizacji.