Create FS
#!/bin/ksh
function entete
{
echo "|==================================================================================================================|"
printf "| %-50s | %-15s | %-10s%-10s%-10s | %-08s |\n" "File System" "Logical Volume" "" "Allocation" "" " Nbre "
printf "| %-50s | %-15s | %-05s Mo %-05s |%-05s Ko %-05s | %-08s |\n" "" "" "" "" "" "" " de PP "
echo "|==================================================================================================================|"
}
function mess
{
printf "| %-50s | %-15s | %-04s %-10s | %-01s %-10s | %-04s%-04s |\n" $parm01 $lgvol "" "$AllocMo" "" "$AllocKo" "" $parm04
echo "|==================================================================================================================|"
}
function creation_vg
{
cat << @EOF > $fic_result
______________________________
| |
| Demande de Volumetrie Disque |
|______________________________|
NOM DE LA MACHINE CONCERNEE : `hostname | tr [a-z] [A-Z]`
----------------------------
APPLICATION MISE EN PLACE : Securite des applications `echo ${appli} | tr [a-z] [A-Z]`
--------------------------
TYPE D ENVIRONNEMENT : `echo ${envir} | tr [a-z] [A-Z]`
---------------------
NOM DU VOLUME GROUP : ${Volume_G}
--------------------
VOLUMETRIE SOUHAITEE (MIN 5GO) : 5 Go
-------------------------------
ESTIMATION DE L EVOLUTION DE LA VOLUMETRIE : Suffisant sur 6 mois
-------------------------------------------
CET ESPACE DEMANDE T IL UNE PERFORMANCE IMPORTANTE ? NON
---------------------------------------------------
CET ESPACE DOIT IL ETRE MIRRORE ? $mirror
--------------------------------
@EOF
}
#========= parm1=fs a creer
#========= parm2=environnement PROD BETA ...
#========= parm3=application
#========= parm4=nbre de pp
#========= parm5=owner:group
if [ $# -lt 4 ];then
echo " parametre a passer : fsAcreer envir appli nbpp owner:group \"avec autres fs;nbpp\" ou dans un fichier"
exit
fi
parm01=$1
parm02=`echo $2 | tr [A-Z] [a-z]`
parm03=$3
parm04=$4
##################### owner et group
if [ -z "$5" ]; then
owner="xxprod"
group="xxprod"
else
if [ `echo $5 | grep ":" | wc -l` -ne 1 ]; then
echo " parametre a passer : fsAcreer envir appli nbpp owner:group"
exit
fi
owner=`echo $5 | cut -d":" -f1`
group=`echo $5 | cut -d":" -f2`
if [ -z "$owner" -o -z "$group" ]; then
echo " parametre a passer : fsAcreer envir appli nbpp owner:group"
exit
fi
fi
##################### si plusieurs FS
multi=0
if [ ! -z "$6" ]; then
multi=1
fi
export envir=$parm02
export appli=$parm03
if [ -z "$parm04" ]; then $parm04=1 ; fi
AllocMo=`expr $parm04 \* 128`
AllocKo=`expr $AllocMo \* 1024`
mirror="NON"
case $parm02 in
prod|PROD) suff="${appli}pr"
###if [ "X`hostname`" = "Xpluto" ]; then suff="${appli}wh" ; fi
mirror="OUI"
;;
beta|BETA) suff="${appli}va"
if [ "X`hostname`" = "Xpluto" ]; then suff="${appli}wh" ; fi
;;
form|FORM) suff="${appli}fo"
;;
forb|FORB) suff="${appli}fb"
;;
preprod|PREPROD) suff="${appli}pp"
;;
*) suff="${appli}xx"
;;
esac
#============= recherche vg present
VGvol=`lsvg | grep ^v$suff | tail -1`
######### if [ -z "$VGvol" -a "X`hostname`"="Xbill" ]; then VGvol=`lsvg | grep ^$suff` ; fi
#### if [ "X`hostname`" = "Xbill" ]; then VGvol=`lsvg | grep ^$suff | tail -1` ; fi
fic_result="/tmp/creat_fs_$envir_$appli_`date +%d%m%Y%H%M%S"
######### if [ ! -d "`dirname $parm01`" -o -z "$VGvol" ]; then
if [ -z "$VGvol" ]; then
VGFS=VG
echo " creation d un nouveau VG "
Volume_G="v${suff}01"
lgvol="l${suff}0101"
Free_G=5000000
creation_vg
else
VGFS=FS
Volume_G=${VGvol}
##############lgvol=`lsvg -l $VGvol | sort | tail -1`
lgvol=`lsvg -l $VGvol | egrep -vw "$VGvol|LV NAME|N/A" | sort +0 | tail -1`
#=========== cas VG recemment creer sans lv
if [ -z "${lgvol}" ]; then
lgvol="l"`echo ${VGvol} | awk '{ print substr($0,2) }'`"00"
fi
ppsize=`lsvg $VGvol | grep "PP SIZE" | cut -d":" -f3 | cut -d"(" -f1 | sed 's/megabyte//g' | sed 's/ //g'`
AllocMo=`expr $parm04 \* $ppsize`
AllocKo=`expr $AllocMo \* 1024`
AllocMo=`./outils/mise_en_forme_num $AllocMo 3`
AllocKo=`./outils/mise_en_forme_num $AllocKo 3`
if [ "X`hostname`" = "Xbill" -a "`echo $lgvol | awk '{print substr($0,10,2)}'`" = "Xlv" ]; then
lgvol_bis=`echo $lgvol | awk '{print substr($0,7,2)}'`
lgvol_bis=`expr $lgvol_bis + 1`
lgvol_bis=`printf "%02d" $lgvol_bis`
lgvol=`echo $lgvol | awk '{print substr($0,1,6)}'`$lgvol_bis"_lv"
else
lgvol_bis=`echo $lgvol | awk '{print substr($0,8,4)}'`
lgvol_bis=`expr $lgvol_bis + 1`
lgvol_bis=`printf "%04d" $lgvol_bis`
lgvol=`echo $lgvol | awk '{print substr($0,1,7)}'`$lgvol_bis
fi
Free_G=`lsvg $Volume_G | grep FREE | cut -d":" -f3 | cut -d"(" -f2 | sed 's/megabytes)//g'`
Free_G=`expr $Free_G \* 1024`
cat << @EOF > $fic_result
Bonjour,
Repondre a : toto@titi
Merci de creer au plus vite le File system decrit ci dessous :
Noeud : `hostname`
Application : $appli
Environnement : $envir
VG = $Volume_G Espace libre `ksh ./outils/mise_en_forme_num $Free_G 3` ko
Le repertoire `basename $parm01` devra appartenir au compte ${owner}:${group}
soit owner=${owner}, group=${group}
@EOF
entete >> $fic_result
mess >> $fic_result
if [ $multi -gt 0 ]; then
if [ -f "$6" ]; then
fic=`cat "$6"`
else
if [ `echo $6 | grep ";" | wc -l` -eq 0 ]; then
echo " probleme parametre $6 passe "
exit
fi
fic="$6"
fi
for ligne in $fic
do
parm01=`echo $ligne | cut -d";" -f1`
parm04=`echo $ligne | cut -d";" -f2`
lgvol_bis=`echo $lgvol | awk '{print (substr($0,length($0)-3)+1)}'`
lgvol_bis=`printf "%04d" $lgvol_bis`
lgvol=`echo $lgvol | awk '{print substr($0,1,length($0)-4)}'`$lgvol_bis
AllocMo=`expr $parm04 \* $ppsize`
AllocKo=`expr $AllocMo \* 1024`
AllocMo=`./outils/mise_en_forme_num $AllocMo 3`
AllocKo=`./outils/mise_en_forme_num $AllocKo 3`
mess >> $fic_result
done
fi
fi
cat << @EOF >> $fic_result
Cdt
@EOF
cat $fic_result
echo "resultat dans fichier $fic_result"
LOG_DEST=toto@titi
LOG_DEST_New=toto@titi
echo "mail -s \"[URGENT] Demande de creation de $VGFS sur `hostname`\" -c \"$LOG_DEST_New\" $LOG_DEST < ${fic_result} "
exit
Previous page: Droits des fichiers
Page suivante : Create New Lv Fs