Statistiques
| Révision :

root / bin / disable-snapshot @ 20

Historique | Voir | Annoter | Télécharger (2,44 ko)

1
#!/bin/bash
2

    
3
DIR_CRON="/etc/cron.d/"
4
DIR_CONF_SNAPSHOT="/opt/gZFS/snapshots/"
5
BIN_ZFS_SNAPSHOT="/sbin/zfs-snapshot"
6

    
7

    
8

    
9

    
10

    
11

    
12
function usage {
13
  echo "Usage :" 1>&2
14
  echo "disable-snapshot [OPTIONS]" 1>&2
15
  echo " -h display this message" 1>&2
16
  echo " -i interactive mode" 1>&2
17
  echo " -N Specify the name ZFS Volume/Filesystem" 1>&2
18

    
19
}
20

    
21
function nointeractive {
22
FILE_NAME=$(echo "snapshot-"${NAMEZFS//\//-})
23
   /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
24
   if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
25
   then
26
      echo "Error : cannot delete $DIR_CONF_SNAPSHOT$FILE_NAME.conf"    
27
   fi
28

    
29
   /bin/rm $DIR_CRON$FILE_NAME
30
   if [ -e $DIR_CRON$FILE_NAME ]
31
   then
32
      echo "Error : cannot delete $DIR_CRON$FILE_NAME"
33
   fi
34

    
35
}
36

    
37
function interactive {
38

    
39
/sbin/zfs list
40
echo "*** Nom du volume pour desactiver les snapshot :"
41
while read inputline
42
do
43
   if [ "$inputline" != "" ]
44
   then  
45
       /sbin/zfs list $inputline
46
      if [ $? -eq 0 ]
47
      then
48
         FILE_NAME=$(echo "snapshot-"${inputline//\//-})
49
         if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
50
         then
51
            /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
52
            if [ $? -eq 0 ]
53
            then
54
               echo "*** Suppression du fichier conf $DIR_CONF_SNAPSHOT$FILE_NAME.conf [OK]"
55
            else
56
               echo "/!\\ Suppression du fichier $DIR_CONF_SNAPSHOT$FILE_NAME.conf [ERROR] /!\\"
57
               exit
58
            fi
59
         else
60
            echo "*** Le fichier de conf $DIR_CONF_SNAPSHOT$FILE_NAME.conf n'existe pas"
61
         fi
62

    
63
         if [ -e $DIR_CRON$FILE_NAME ]
64
         then
65
            /bin/rm $DIR_CRON$FILE_NAME
66
            if [ $? -eq 0 ]
67
            then
68
               echo "*** Suppression du fichier de cron $DIR_CRON$FILE_NAME [OK]"
69
               break
70
            else
71
               echo "/!\\ Suppression du fichier de cron $DIR_CRON$FILE_NAME /!\\"
72
               exit
73
            fi
74
         else
75
            echo "*** Le fichier cron $DIR_CRON$FILE_NAME n'existe pas"
76
            break
77
         fi
78
      fi
79
   fi
80
   echo "*** Nom du volume pour desactiver les snapshot :"
81
done
82
exit 0
83
}
84

    
85
while getopts "iN:h" OPTION
86
do
87
     case $OPTION in
88
         h)
89
             usage
90
             exit 1
91
             ;;
92
         i)
93
             interactive
94
             ;;
95
         N)
96
             NAMEZFS=$OPTARG
97
             ;;
98
         *)
99
             usage
100
             exit 1
101
             ;;
102
     esac
103
done
104
if [[ -z $NAMEZFS ]]
105
then
106
     usage
107
     exit 1
108
fi
109
nointeractive