-
Notifications
You must be signed in to change notification settings - Fork 0
/
zfs_monthly_cleanup
53 lines (29 loc) · 1.25 KB
/
zfs_monthly_cleanup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
!/bin/bash
echo ---------------------------Starting monthly cleaning at `date +%F:%T`------------------------------
current=`date +%Y%m01`
declare -a m_arrray
delpoint=6
current_snapshot=`/sbin/zfs snap -r tank/backup@monthly$current`
numbers_msnaps=`zfs list -t snapshot -r /tank/backup | grep monthly | wc -l`
echo "create a monthly snapshot at $current"
echo -e "current monthly snapshot are:"
for ms in `zfs list -t snapshot -r tank/backup | grep monthly | cut -d " " -f1`;
do
echo $ms
done
if [ $numbers_msnaps -gt $delpoint ];
then
x=0
a=$(($numbers_msnaps - $delpoint))
m_array=(`zfs list -t snapshot -r /tank/backup -o name, -s creation | grep monthly`)
while [ $x -le $(( $a-1 )) ]
do
echo "zfs destroy $[x]"
echo "zfs destroy snapshot" ${m_array[$x]}
x=$(( $x+1 ))
done
else
echo "nothing to do for cleaning"
fi
echo -e ----------------------------Finish monthly cleaning up at `date +%F:%T`-------------------------"\n"
~