piątek, 15 czerwca 2007

Automatyczne wersjonowanie systemow plikow.

Mowa oczywiscie o solarisie i snapshotach ZFS.
Napisalem kiedys maly skrypcik, tworzacy snapshoty wszystkich partycji ZFS w systemie. W nazwie snapshotu jest bierzaca data i godzina.
Oto i on:

==================================================================
#! /bin/sh

CUR_DATE=`date '+%y%m%d_%H:%M:%S'`

for FS in `zfs list | awk '{ print $1 }' | grep "/" | sed '/@/d'`
do
echo "Creating snapshot: ${FS}@backup_${CUR_DATE}"
zfs snapshot ${FS}@backup_${CUR_DATE}
done

# EOF
==================================================================


Mozna dodac go do zadan systemowych crona.
Aby wyedytowac zadania systemowe wpisujemy:

# crontab -e

Dodajemy np taki wpis:


30 4 * * * /sciezka/do/skryptu/tworzacego/snapshoty/skrypt.sh



W tym przypadku cron bedzie uruchamiac zadanie codziennie o 4:30 w nocy.
Aby zobaczyc czy zadanie jest zapisane, wpisujemy:

# crontab -l


Polecam dodac takie cos do crona, poniewaz daje nam wiecej czasu na inne, ciekawsze rzeczy,
jak np kerberos ... ale o tym moze innym razem ;)

1 komentarz:

Michal Pryc pisze...

Troszke uproszcze ten skrypt:

1. Jesli znamy nazwe puli:
zfs snapshot -r nazwa@backup_`date +%y%m%d_%H:%M:%S`

2. Jesli nie znamy nazwy puli:
==============================
#! /bin/sh
CUR_DATE=`date '+%y%m%d_%H:%M:%S'`
for FS in `zpool list -H -o name`
do
zfs snapshot -r ${FS}@backup_`date +%y%m%d_%H:%M:%S`
done
==============================

P.S. zfs ulatwia zycie tworzac skrypty, nie trzeba bawic sie w awk, tak wiec:
zfs list | awk '{ print $1 }'| grep "/"

mozna z powodzeniem zastapic:

zfs list -H -o name

--
pozdrawiam
Migi