Statistiques
| Révision :

root / bin / disable-snapshot @ 30

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

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