Statistiques
| Révision :

root / bin / del-filesystem @ 40

Historique | Voir | Annoter | Télécharger (1,63 ko)

1 1 kreverch
#!/bin/bash
2 39 ltaulell
# $Id$
3 1 kreverch
4 1 kreverch
function usage {
5 1 kreverch
  echo "Description : destroy a ZFS FileSystem." 1>&2
6 1 kreverch
  echo "Usage :" 1>&2
7 1 kreverch
  echo "$0 [OPTIONS]" 1>&2
8 1 kreverch
  echo " -h display this message" 1>&2
9 1 kreverch
  echo " -i interactive mode" 1>&2
10 1 kreverch
  echo " -n ZFS Volume Name" 1>&2
11 1 kreverch
12 1 kreverch
}
13 1 kreverch
14 1 kreverch
function nointeractive {
15 1 kreverch
16 1 kreverch
MOUNTED=$(zfs get -H mounted $FS_NAME|awk '{ print $3}')
17 1 kreverch
18 1 kreverch
if [ "$MOUNTED" == "no" ]
19 1 kreverch
then
20 8 kreverch
   is_pool=$(zpool list $FS_NAME)
21 8 kreverch
   if [ $? == 1 ]
22 8 kreverch
   then
23 8 kreverch
      zfs destroy -r $FS_NAME
24 8 kreverch
   else
25 8 kreverch
      echo "$FS_NAME is a zpool, cannot remove recursively this filesystem" 1>&2
26 8 kreverch
      exit 1;
27 8 kreverch
   fi
28 1 kreverch
29 1 kreverch
else
30 1 kreverch
   echo "ZFS FileSystem $FS_NAME mounted" 1>&2
31 1 kreverch
   exit 1;
32 1 kreverch
fi
33 1 kreverch
}
34 1 kreverch
35 1 kreverch
36 1 kreverch
function interactive {
37 1 kreverch
38 1 kreverch
zfs list
39 40 ltaulell
echo "*** Enter ZFS FileSystem Name: ***"
40 1 kreverch
while read inputline
41 1 kreverch
do
42 1 kreverch
   NAME_VOL=$inputline
43 40 ltaulell
   echo "*** Do you really want to remove this ZFS FileSystem: $inputline ? (y/n) ***"
44 1 kreverch
   while read inputConfirm
45 1 kreverch
   do
46 1 kreverch
      if [ "$inputConfirm" = "y" ]||[ "$inputConfirm" = "n" ]
47 1 kreverch
      then
48 1 kreverch
         break
49 1 kreverch
      fi
50 40 ltaulell
      echo "*** Do you really want to remove this ZFS FileSystem: $inputline ? (y/n) ***"
51 1 kreverch
   done
52 1 kreverch
53 1 kreverch
54 1 kreverch
   if [ "$inputConfirm" = "y" ]
55 1 kreverch
   then
56 1 kreverch
      break
57 1 kreverch
   fi
58 1 kreverch
   if [ "$inputConfirm" != "y" ]
59 1 kreverch
   then
60 40 ltaulell
      echo "*** Enter ZFS Volume FileSystem: ***"
61 1 kreverch
   fi
62 1 kreverch
done
63 1 kreverch
nointeractive
64 1 kreverch
}
65 1 kreverch
66 1 kreverch
while getopts "in:h" OPTION
67 1 kreverch
do
68 1 kreverch
     case $OPTION in
69 1 kreverch
         h)
70 1 kreverch
             usage
71 1 kreverch
             exit 1
72 1 kreverch
             ;;
73 1 kreverch
         i)
74 1 kreverch
             interactive
75 1 kreverch
             ;;
76 1 kreverch
         n)
77 1 kreverch
             FS_NAME=$OPTARG
78 1 kreverch
             ;;
79 6 kreverch
         r)
80 6 kreverch
             ;;
81 1 kreverch
         *)
82 1 kreverch
             usage
83 1 kreverch
             exit 1
84 1 kreverch
             ;;
85 1 kreverch
     esac
86 1 kreverch
done
87 1 kreverch
88 1 kreverch
if [[ -z $FS_NAME ]]
89 1 kreverch
then
90 1 kreverch
     usage
91 1 kreverch
     exit 1
92 1 kreverch
fi
93 1 kreverch
nointeractive
94 1 kreverch