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