Statistiques
| Révision :

root / bin / create-filesystem @ 41

Historique | Voir | Annoter | Télécharger (3,07 ko)

1 1 kreverch
#!/bin/bash
2 39 ltaulell
# $Id$
3 1 kreverch
4 1 kreverch
function usage {
5 1 kreverch
echo "Syntax :" 1>&2
6 1 kreverch
echo "$0 [options]" 1>&2
7 1 kreverch
echo " -n : filesystem name" 1>&2
8 1 kreverch
echo " -p : pool name" 1>&2
9 41 kreverch
echo " -o : set property list for a  zfs volume. Separate such property by a ','." 1>&2
10 41 kreverch
echo "      Example : -o compression=off,snapdev=visble." 1>&2
11 41 kreverch
echo "      Read the man zfs to get the list of the valid properties" 1>&2
12 41 kreverch
echo " -i : interactive mode" 1>&2
13 41 kreverch
14 1 kreverch
}
15 1 kreverch
16 1 kreverch
function nointeractive {
17 1 kreverch
18 1 kreverch
/sbin/zfs create -o $FS_OPTION $NAME_POOL/$NAME
19 1 kreverch
20 1 kreverch
}
21 1 kreverch
22 1 kreverch
23 1 kreverch
function interactive {
24 1 kreverch
zfs list
25 40 ltaulell
# FIXME: c'est pas clair ta formulation
26 40 ltaulell
echo "*** Choose a pool for the filesystem to create: ***"
27 1 kreverch
28 1 kreverch
while read inputline
29 1 kreverch
do
30 1 kreverch
   if [ "$inputline" != "" ]
31 1 kreverch
   then
32 1 kreverch
      zfs list |grep -i $inputline
33 1 kreverch
      if [ $? -eq 1 ]
34 1 kreverch
      then
35 40 ltaulell
# FIXME: c'est pas clair ta formulation
36 40 ltaulell
         echo "*** Choose a pool for the filesystem to create: ***"
37 1 kreverch
      else
38 1 kreverch
39 40 ltaulell
         echo "*** Are you sure: $inputline ? (y/n) ***"
40 1 kreverch
         while read inputConfirm
41 1 kreverch
         do
42 1 kreverch
            if [ "$inputConfirm" = "y" ]||[ "$inputConfirm" = "n" ]
43 1 kreverch
            then
44 1 kreverch
              break
45 1 kreverch
            fi
46 40 ltaulell
            echo "*** Are you sure: $inputline ? (y/n) ***"
47 1 kreverch
         done
48 1 kreverch
49 1 kreverch
          if [ "$inputConfirm" = "y" ]
50 1 kreverch
          then
51 1 kreverch
             NAME_POOL=$inputline
52 40 ltaulell
             echo "filesystem name: "
53 1 kreverch
             while read inputFS
54 1 kreverch
             do
55 1 kreverch
                if [ "$inputFS" != "" ]
56 1 kreverch
                then
57 1 kreverch
                   zfs list |grep -i "$inputFS "
58 1 kreverch
                   if [ $? -eq 0 ]
59 1 kreverch
                   then
60 37 kreverch
                         echo "Filesystem name already exists"
61 1 kreverch
                         FS_OK=1
62 1 kreverch
                   else
63 1 kreverch
                      FS_OK=0
64 1 kreverch
                   fi
65 1 kreverch
                   if [ $FS_OK -eq 1 ]
66 1 kreverch
                   then
67 40 ltaulell
                      echo "filesystem name: "
68 1 kreverch
                   else
69 1 kreverch
                      NAME_FS=$inputFS
70 1 kreverch
                           zfs create $NAME_POOL/$inputFS
71 1 kreverch
                           if [ $? -eq 0 ]
72 1 kreverch
                           then
73 37 kreverch
                              echo "*** ZFS filesystem Creation [OK] ***"
74 1 kreverch
                              zfs list
75 1 kreverch
                              break
76 1 kreverch
                           else
77 37 kreverch
                              echo "/!\\ ZFS filesystem Creation [ERROR] /!\\"
78 1 kreverch
                           fi
79 1 kreverch
                    fi
80 1 kreverch
                else
81 40 ltaulell
                  echo "filesystem name: "
82 1 kreverch
                fi
83 1 kreverch
             done
84 1 kreverch
             break
85 1 kreverch
          fi
86 1 kreverch
          break
87 1 kreverch
      fi
88 1 kreverch
   else
89 40 ltaulell
# FIXME: c'est pas clair ta formulation
90 40 ltaulell
      echo "*** Choose a pool for the filesystem to create: ***"
91 1 kreverch
   fi
92 1 kreverch
done
93 1 kreverch
}
94 1 kreverch
95 1 kreverch
while getopts "in:p:b:s:o:h" OPTION
96 1 kreverch
do
97 1 kreverch
     case $OPTION in
98 1 kreverch
         h)
99 1 kreverch
             usage
100 1 kreverch
             exit 1
101 1 kreverch
             ;;
102 1 kreverch
         i)
103 1 kreverch
            interactive
104 1 kreverch
            exit 0
105 1 kreverch
            ;;
106 1 kreverch
         n)
107 1 kreverch
           NAME=$OPTARG
108 1 kreverch
           ;;
109 1 kreverch
         p)
110 1 kreverch
           NAME_POOL=$OPTARG
111 1 kreverch
           ;;
112 1 kreverch
         o)
113 1 kreverch
           FS_OPTION=$OPTARG
114 1 kreverch
           FS_OPTION=$(echo $FS_OPTION|sed -e 's/,/ -o /g')
115 1 kreverch
           echo "$FS_OPTION"
116 1 kreverch
           ;;
117 1 kreverch
    esac
118 1 kreverch
done
119 1 kreverch
if [[ -z $NAME_POOL ]] || [[ -z $NAME ]]
120 1 kreverch
then
121 1 kreverch
     usage
122 1 kreverch
     exit 1
123 1 kreverch
fi
124 1 kreverch
125 1 kreverch
nointeractive