Statistiques
| Révision :

root / bin / zfs-clone @ 64

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

1
#!/bin/bash
2
# $Id: zfs-clone 51 2013-10-10 11:20:37Z ltaulell $
3
# Copyright (C) 2013 Kevin Reverchon, Loïs Taulelle
4
# This file/program is part of gZFS free software
5
# See COPYING file for details
6
#
7

    
8
BINZFS="/sbin/zfs"
9
BINZPOOL="/sbin/zpool"
10

    
11
function usage {
12
echo "Syntax :"
13
echo "$0 -n snapshot name to clone"
14
echo "$0 -i for a interactive use"
15

    
16
}
17

    
18

    
19
function nointeractive {
20

    
21
TODAY=$(date +%Y%m%d%H%M%S)
22

    
23
clone_name=$(echo "$volfs2clone" |sed -e "s/@.*$//g")
24
$BINZFS clone $volfs2clone $clone_name-$TODAY-clone
25
if [ "$?" == "0" ]
26
then
27
echo "name:$clone_name-$TODAY-clone"
28
exit 0
29
fi
30
}
31

    
32
function interactive {
33

    
34
$BINZFS list -t snapshot
35
echo "*** Select Volume or Filesystem to Clone : ***" 
36
while read inputline
37
do
38
   NAMEVOLFS=$inputline 
39
   echo "*** Are you sur ? : $inputline ? (y/n) ***"
40
   
41
   while read inputConfirm
42
   do
43
      if [ "$inputConfirm" = "y" ]||[ "$inputConfirm" = "n" ]
44
      then
45
         break
46
      fi
47
      echo "*** Are you sur ? : $inputline ? (y/n) ***" 
48
   done
49

    
50
   if [ "$inputConfirm" = "y" ]
51
   then
52
     volfs2clone=$inputline
53
     nointeractive
54
   fi
55
   if [ "$inputConfirm" != "y" ]
56
   then
57
      $BINZFS list -t snapshot
58
      echo "*** Select Volume or Filesystem to Clone : ***" 
59
   fi
60
done
61

    
62
}
63

    
64
while getopts "in:h" OPTION
65
do
66
     case $OPTION in
67
         h)
68
             usage
69
             exit 1
70
             ;;
71
         n)
72
            volfs2clone=$OPTARG
73
            ;;
74
         i)
75
            interactive
76
            exit 0
77
            ;;
78
     esac
79
done
80
if [[ -z $volfs2clone ]]
81
then
82
     usage
83
     exit 1
84
fi
85
nointeractive
86