czwartek, 16 kwietnia 2009

Skrypt do tworzenia snapshotow ZFS

Prosty skrypt do crontaba.
Wrzucam to tutaj, aby nie pisac go ciagle od zera..

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/opt/csw/bin:/usr/sfw/bin:/usr/sbin
export PATH
CUR_DATE=`date '+%y%m%d_%H-%M-%S'`

for FS in `zfs list -t filesystem,volume -H -o name | sed '/dump/d' | sed '/swap/d'`
do
echo "Creating snapshot: ${FS}@backup_${CUR_DATE}"
zfs snapshot ${FS}@backup_${CUR_DATE}
done

# EOF

5 komentarzy:

khanyooh pisze...

jako ciekawą, odrobinę bogatszą alternatywę, polecam skrypty Tima Fostera:

http://blogs.sun.com/timf/entry/zfs_automatic_snapshots_0_10
(http://mediacast.sun.com/users/timsf/media/zfs-auto-snapshot-0.10.tar.gz)

wersja 0.10 jest sprawna pod Solarisem 10,
wersja 0.11 została zaimplementowana w OpenSolaris b100<

estibi pisze...

Problem z time sliderem jest taki, iz rekurencyjnie tworzy snapshoty i czasami ma problemy jesli jest wiele srodowisk uruchomieniowych.

ptecza pisze...

Przydałoby się sprawdzanie czy jest jeszcze wolne miejsce oraz ewentualne kasowanie starych snapshotów, gdy miejsca zaczyna już brakować.

devnull pisze...

Nie lepiej zainteresować się oryginalnym automatem?


zfs set com.sun:auto-snapshot:weekly=true rpool/exportWięcej na ten temat:

How to Manage the Automatic ZFS Snapshot Service

Tomasz Lasota pisze...

Dodam jeszcze

frequent snapshots every 15 mins, keeping 4 snapshots
hourly snapshots every hour, keeping 24 snapshots
daily snapshots every day, keeping 31 snapshots
weekly snapshots every week, keeping 4 snapshots
monthly snapshots every month, keeping 12 snapshots