Statistiques
| Révision :

root / bin / disable-snapshot @ 40

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

1 1 kreverch
#!/bin/bash
2 39 ltaulell
# $Id$
3 1 kreverch
4 1 kreverch
DIR_CRON="/etc/cron.d/"
5 1 kreverch
DIR_CONF_SNAPSHOT="/opt/gZFS/snapshots/"
6 1 kreverch
BIN_ZFS_SNAPSHOT="/sbin/zfs-snapshot"
7 1 kreverch
8 40 ltaulell
# TODO: traduire les msg
9 1 kreverch
10 1 kreverch
function usage {
11 1 kreverch
  echo "Usage :" 1>&2
12 1 kreverch
  echo "disable-snapshot [OPTIONS]" 1>&2
13 1 kreverch
  echo " -h display this message" 1>&2
14 1 kreverch
  echo " -i interactive mode" 1>&2
15 1 kreverch
  echo " -N Specify the name ZFS Volume/Filesystem" 1>&2
16 1 kreverch
17 1 kreverch
}
18 1 kreverch
19 1 kreverch
function nointeractive {
20 20 ltaulell
FILE_NAME=$(echo "snapshot-"${NAMEZFS//\//-})
21 1 kreverch
   /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
22 1 kreverch
   if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
23 1 kreverch
   then
24 1 kreverch
      echo "Error : cannot delete $DIR_CONF_SNAPSHOT$FILE_NAME.conf"
25 1 kreverch
   fi
26 1 kreverch
27 1 kreverch
   /bin/rm $DIR_CRON$FILE_NAME
28 1 kreverch
   if [ -e $DIR_CRON$FILE_NAME ]
29 1 kreverch
   then
30 1 kreverch
      echo "Error : cannot delete $DIR_CRON$FILE_NAME"
31 1 kreverch
   fi
32 1 kreverch
33 1 kreverch
}
34 1 kreverch
35 1 kreverch
function interactive {
36 1 kreverch
37 1 kreverch
/sbin/zfs list
38 1 kreverch
echo "*** Nom du volume pour desactiver les snapshot :"
39 1 kreverch
while read inputline
40 1 kreverch
do
41 1 kreverch
   if [ "$inputline" != "" ]
42 1 kreverch
   then
43 1 kreverch
       /sbin/zfs list $inputline
44 1 kreverch
      if [ $? -eq 0 ]
45 1 kreverch
      then
46 20 ltaulell
         FILE_NAME=$(echo "snapshot-"${inputline//\//-})
47 1 kreverch
         if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
48 1 kreverch
         then
49 1 kreverch
            /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
50 1 kreverch
            if [ $? -eq 0 ]
51 1 kreverch
            then
52 1 kreverch
               echo "*** Suppression du fichier conf $DIR_CONF_SNAPSHOT$FILE_NAME.conf [OK]"
53 1 kreverch
            else
54 1 kreverch
               echo "/!\\ Suppression du fichier $DIR_CONF_SNAPSHOT$FILE_NAME.conf [ERROR] /!\\"
55 1 kreverch
               exit
56 1 kreverch
            fi
57 1 kreverch
         else
58 1 kreverch
            echo "*** Le fichier de conf $DIR_CONF_SNAPSHOT$FILE_NAME.conf n'existe pas"
59 1 kreverch
         fi
60 1 kreverch
61 1 kreverch
         if [ -e $DIR_CRON$FILE_NAME ]
62 1 kreverch
         then
63 1 kreverch
            /bin/rm $DIR_CRON$FILE_NAME
64 1 kreverch
            if [ $? -eq 0 ]
65 1 kreverch
            then
66 1 kreverch
               echo "*** Suppression du fichier de cron $DIR_CRON$FILE_NAME [OK]"
67 1 kreverch
               break
68 1 kreverch
            else
69 1 kreverch
               echo "/!\\ Suppression du fichier de cron $DIR_CRON$FILE_NAME /!\\"
70 1 kreverch
               exit
71 1 kreverch
            fi
72 1 kreverch
         else
73 1 kreverch
            echo "*** Le fichier cron $DIR_CRON$FILE_NAME n'existe pas"
74 1 kreverch
            break
75 1 kreverch
         fi
76 1 kreverch
      fi
77 1 kreverch
   fi
78 1 kreverch
   echo "*** Nom du volume pour desactiver les snapshot :"
79 1 kreverch
done
80 5 kreverch
exit 0
81 1 kreverch
}
82 1 kreverch
83 1 kreverch
while getopts "iN:h" OPTION
84 1 kreverch
do
85 1 kreverch
     case $OPTION in
86 1 kreverch
         h)
87 1 kreverch
             usage
88 1 kreverch
             exit 1
89 1 kreverch
             ;;
90 1 kreverch
         i)
91 1 kreverch
             interactive
92 1 kreverch
             ;;
93 1 kreverch
         N)
94 1 kreverch
             NAMEZFS=$OPTARG
95 1 kreverch
             ;;
96 1 kreverch
         *)
97 1 kreverch
             usage
98 1 kreverch
             exit 1
99 1 kreverch
             ;;
100 1 kreverch
     esac
101 1 kreverch
done
102 1 kreverch
if [[ -z $NAMEZFS ]]
103 1 kreverch
then
104 1 kreverch
     usage
105 1 kreverch
     exit 1
106 1 kreverch
fi
107 1 kreverch
nointeractive