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