Statistiques
| Révision :

root / bin / disable-replica

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

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