[GOTOWIEC] Codzienna kopia zapasowa – szybki backup systemu plików ZFS


Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Warning: Undefined variable $line_numbers in /usr/home/okiemadmina/public_html/wp-content/plugins/wp-code-highlight/wp-code-highlight.php on line 69

Ostatnio pisałem o możliwym problemie z przesyłaniem systemu plików ZFS przez SSH przedstawiając gotową receptę. Tematem niniejszego wpisu jest z kolei gotowy sposób na codzienne kopie. Czy zdarzyło Ci się kiedyś, że w ferworze walki uszkodziłeś lub nadpisałeś jakiś ważny plik? Osobiście staram się pilnować co zatwierdzam klawiszem Enter, zwłaszcza pracując na prawach root’a, skłamałbym jednak twierdząc,  że nigdy nie zdarzyło mi się wprowadzić zmiany, które potem musiałem odkręcać.

Z myślą o takich sytuacjach – już kilka lat temu – przygotowałem gotowy skrypt, który już kilkukrotnie uratował moje cztery litery. Idea (implementacja zresztą również) jest bardzo prosta: codziennie wykonujemy snapshot systemu plików, nazywając go aktualnym dniem tygodnia i usuwając jednocześnie stary. Dzięki temu z łatwością cofniemy wybrane zmiany wykonane w ciągu tygodnia i to z rozdzielczością jednego dnia.

Oto jak wygląda skrypt:

#!/usr/local/bin/bash
#-----------------------------------------------------------------
# Name:        zfs-auto-snapshot 1.0
# Purpose:     Creating ZFS snapshot for each weekday.
#
# Author:      Rafal Wilk http://okiemadmina.pl/
#
# Created:     29-01-2011
# Modified:    07-11-2015
#-----------------------------------------------------------------


WEEKDAY=`date "+%A"`
STORAGE=zroot
ZFS=/sbin/zfs
echo "Creating/Updating recursive snapshot ${STORAGE}@${WEEKDAY}"

${ZFS} destroy -r ${STORAGE}@${WEEKDAY}
${ZFS} snapshot -r ${STORAGE}@${WEEKDAY}

Prawda, że to proste? Skrypt wykonujemy z cron’a. U mnie wygląda to tak:

# crontab -e
01 00 * * * /tools/zfs-auto-snapshot.sh >/dev/null 2>&1

Autor

Rafał Wilk

Administrator systemów Unixowych z 15 letnim doświadczeniem, specjalista od FreeBSD, Windows Admin, inżynier sieci i przedsiębiorca, a prywatnie myśliwy, niedzielny gracz i tata pięcioletniej Nadii.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *