Statistiques
| Révision :

root / bin / disable-snapshot @ 67

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

1 1 kreverch
#!/bin/bash
2 39 ltaulell
# $Id$
3 51 ltaulell
# Copyright (C) 2013 Kevin Reverchon, Loïs Taulelle
4 51 ltaulell
# This file/program is part of gZFS free software
5 51 ltaulell
# See COPYING file for details
6 51 ltaulell
#
7 1 kreverch
8 1 kreverch
DIR_CRON="/etc/cron.d/"
9 1 kreverch
DIR_CONF_SNAPSHOT="/opt/gZFS/snapshots/"
10 1 kreverch
BIN_ZFS_SNAPSHOT="/sbin/zfs-snapshot"
11 49 kreverch
BINZFS="/sbin/zfs"
12 49 kreverch
BINZPOOL="/sbin/zpool"
13 1 kreverch
14 1 kreverch
15 1 kreverch
function usage {
16 1 kreverch
  echo "Usage :" 1>&2
17 1 kreverch
  echo "disable-snapshot [OPTIONS]" 1>&2
18 1 kreverch
  echo " -h display this message" 1>&2
19 1 kreverch
  echo " -i interactive mode" 1>&2
20 1 kreverch
  echo " -N Specify the name ZFS Volume/Filesystem" 1>&2
21 1 kreverch
22 1 kreverch
}
23 1 kreverch
24 1 kreverch
function nointeractive {
25 20 ltaulell
FILE_NAME=$(echo "snapshot-"${NAMEZFS//\//-})
26 1 kreverch
   /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
27 1 kreverch
   if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
28 1 kreverch
   then
29 1 kreverch
      echo "Error : cannot delete $DIR_CONF_SNAPSHOT$FILE_NAME.conf"
30 1 kreverch
   fi
31 1 kreverch
32 1 kreverch
   /bin/rm $DIR_CRON$FILE_NAME
33 1 kreverch
   if [ -e $DIR_CRON$FILE_NAME ]
34 1 kreverch
   then
35 1 kreverch
      echo "Error : cannot delete $DIR_CRON$FILE_NAME"
36 1 kreverch
   fi
37 1 kreverch
38 1 kreverch
}
39 1 kreverch
40 1 kreverch
function interactive {
41 1 kreverch
42 49 kreverch
$BINZFS list
43 55 kreverch
echo "*** Enter a ZFS volume/filesystem name :"
44 1 kreverch
while read inputline
45 1 kreverch
do
46 1 kreverch
   if [ "$inputline" != "" ]
47 1 kreverch
   then
48 49 kreverch
       $BINZFS list $inputline
49 1 kreverch
      if [ $? -eq 0 ]
50 1 kreverch
      then
51 20 ltaulell
         FILE_NAME=$(echo "snapshot-"${inputline//\//-})
52 1 kreverch
         if [ -e $DIR_CONF_SNAPSHOT$FILE_NAME.conf ]
53 1 kreverch
         then
54 1 kreverch
            /bin/rm -f $DIR_CONF_SNAPSHOT$FILE_NAME.conf
55 1 kreverch
            if [ $? -eq 0 ]
56 1 kreverch
            then
57 55 kreverch
               echo "*** Remove the configuration file $DIR_CONF_SNAPSHOT$FILE_NAME.conf [OK]"
58 1 kreverch
            else
59 55 kreverch
               echo "/!\\ Remove the configuration file  $DIR_CONF_SNAPSHOT$FILE_NAME.conf [ERROR] /!\\"
60 1 kreverch
               exit
61 1 kreverch
            fi
62 1 kreverch
         else
63 55 kreverch
            echo "*** The configuration file $DIR_CONF_SNAPSHOT$FILE_NAME.conf does not exist"
64 1 kreverch
         fi
65 1 kreverch
66 1 kreverch
         if [ -e $DIR_CRON$FILE_NAME ]
67 1 kreverch
         then
68 1 kreverch
            /bin/rm $DIR_CRON$FILE_NAME
69 1 kreverch
            if [ $? -eq 0 ]
70 1 kreverch
            then
71 55 kreverch
               echo "*** Remove cron file $DIR_CRON$FILE_NAME [OK]"
72 1 kreverch
               break
73 1 kreverch
            else
74 55 kreverch
               echo "/!\\ Remove cron file $DIR_CRON$FILE_NAME [ERROR] /!\\"
75 1 kreverch
               exit
76 1 kreverch
            fi
77 1 kreverch
         else
78 55 kreverch
            echo "*** The cron file $DIR_CRON$FILE_NAME does not exist"
79 1 kreverch
            break
80 1 kreverch
         fi
81 1 kreverch
      fi
82 1 kreverch
   fi
83 55 kreverch
   echo "*** Enter a ZFS volume/filesystem name :"
84 1 kreverch
done
85 5 kreverch
exit 0
86 1 kreverch
}
87 1 kreverch
88 1 kreverch
while getopts "iN:h" OPTION
89 1 kreverch
do
90 1 kreverch
     case $OPTION in
91 1 kreverch
         h)
92 1 kreverch
             usage
93 1 kreverch
             exit 1
94 1 kreverch
             ;;
95 1 kreverch
         i)
96 1 kreverch
             interactive
97 1 kreverch
             ;;
98 1 kreverch
         N)
99 1 kreverch
             NAMEZFS=$OPTARG
100 1 kreverch
             ;;
101 1 kreverch
         *)
102 1 kreverch
             usage
103 1 kreverch
             exit 1
104 1 kreverch
             ;;
105 1 kreverch
     esac
106 1 kreverch
done
107 1 kreverch
if [[ -z $NAMEZFS ]]
108 1 kreverch
then
109 1 kreverch
     usage
110 1 kreverch
     exit 1
111 1 kreverch
fi
112 1 kreverch
nointeractive