Statistiques
| Révision :

root / bin / del-filesystem @ 67

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