Statistiques
| Révision :

root / bin / disable-snapshot @ 2

Historique | Voir | Annoter | Télécharger (2,43 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
}
83

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