Creer Page Wiki

  • Generer une page Wiki des versions TSM par nodes

#!/bin/bash
#
# Composer page wiki VersionClientTsm
#
set -ae

Send_Mail()
{
set -vx

LogGer "Send_Mail"

sendmail -F"${mail_expediteur}" -f "${mail_emetteur}" -t <<ENDMAIL
To: ${mail_to}
Cc: ${mail_cc}
Bcc: ${mail_bcc}
Subject: ${mail_subject}

$( cat ${fic_mail} )

ENDMAIL
}

LogGer()
{
logger -t "[ ${NamePage} - $$ ] " -p user.info "${1}"
}

#------------
#----------- temp et nom de la page wiki sur serveur
#------------
TempPage=/tmp/PageWiki_$$
TempPageCsv=/tmp/PageWiki_$$.csv
fic_mail=/tmp/fic_mail_$$
PageWikiCSV=VersionClientTsm.csv

IdentFile=/home/user/.ssh/id_rsa_sspphr

exec 3> ${TempPage}
exec 4> ${fic_mail}

NamePage=VersionClientTsm

#------------
#------------ Colonnes pour representer # resultats des commandes  a passer
#------------
Columns="Domain Name,Client TSM,Tcp Address,Plateforme,OS Level,TSM Client Level"
#------- commande q event
Ttable=EVENTS
Titre="[ TSM ] Recap TSM Client Level au $(date +%d"/"%m"/"%Y ) à $(date +%Hh%M)"

#------------
#------------ Constituer page wiki
#------------
LogGer "# --------------- DEBUT"

cat << @EOFF >&3
##master-date:Unknown-Date
#format wiki
#language fr
#pragma section-numbers 2

----
= ${Titre} =
----
{{{
Constituée avec script ${0} compte ${USER} machine ${HOSTNAME}
}}}

[[attachment:${PageWikiCSV}]]

<<TableOfContents>>

@EOFF

#----- Recuperer information sur saves a partir des serveurs TSM de Prod
helvite=/opt/tivoli/tsm/client/ba/bin/dsm.opt
zola=/opt/tivoli/tsm/client/ba/bin/dsm_zola.opt
sartre=/opt/tivoli/tsm/client/ba/bin/dsm_sartre.opt

for Serveur in helvite zola sartre
do

eval Sserveur=\$${Serveur}

cat << @EOFF >&3

== TSM Serveur ${Serveur} ==

||<rowstyle="text-align: center;font-weight: bold;background-color: green;"> $( echo ${Columns} | sed "s/,/ || /g;s/$/ ||/")
@EOFF

#------- Commande TSM passee
#- en jaune = Missed
#- en rouge = Failed
# QUERY EVENT  avec EXceptionsonly=yes ===> que les erreurs
test ! -z ${1} && Anos="EXceptionsonly=yes"

LogGer "QUERY EVENT serveur ${Sserveur}"

ssh -i ${IdentFile} root@serveur dsmadmc -optfile=${Sserveur} -id=pass -pa=pass -dataonly=yes -comma "select NODE_NAME,PLATFORM_NAME,CLIENT_VERSION,CLIENT_RELEASE,CLIENT_LEVEL,CLIENT_SUBLEVEL,CLIENT_OS_LEVEL,DOMAIN_NAME,TCP_ADDRESS from NODES order by DOMAIN_NAME | awk -F"," '{ pt="\"\.\"" ; vertsm=\$3pt\$4pt\$5pt\$6 ; if ( \$2 ~ /Win/ || \$2 ~ /Linux/ ) { printf(\"|| %s || %s || %s || %s || %s || %s ||\n\",\$8,\$1,\$9,\$2,\$7,vertsm )} }' " >&3

done

#------------
#========= Copier page sur serveur
#------------
pcurrent="/srv/moin/wikis/intheb/data/pages/user(2f)${NamePage}/current"
current=$( ssh -i ${IdentFile} root@serveur "cat '${pcurrent}'")
LogGer "Recup page courante de serveur ${NamePage} ${current}"

LogGer "Copier new page sur serveur"
pcurrent="/srv/moin/wikis/intheb/data/pages/user(2f)${NamePage}/revisions/${current}"
scp -i ${IdentFile} ${TempPage} root@serveur:"'${pcurrent}'"


#------------- info par mail au groupe
#---------------- sujet pour mail a envoyer
  mail_subject="[TSM] Page Wiki recap Client Level"
#  mail_expediteur="${USER}@${HOSTNAME}"
  mail_emetteur="${USER}@${HOSTNAME}"

  mail_to="....."
#  mail_to=""
  mail_cc=""
  mail_bcc=""

cat << @EOFF >&4

Bonjour,

 Page wiki recapitulant la version du Client TSM identifie a partir des TSM serveur

 http://serveur/moin/wiki/infraheb/user/${NamePage}


Cdt
@EOFF

#---------------------
#--- close fics et del
#---------------------
exec 3<&-
exec 4<&-

#---------------------
#========== Copier sur Serveur Page wiki en csv
#---------------------
grep '||' ${TempPage} | sed "s/||/;/g;s/^;//;s/;$//;s/<rowstyle=\"text-align: center;font-weight: bold;background-color: green;\">//" > ${TempPageCsv}
pcurrent="/srv/moin/wikis/intheb/data/pages/user(2f)${NamePage}/attachments/${PageWikiCSV}"
scp -i ${IdentFile} ${TempPageCsv} root@serveur:"'${pcurrent}'"

#---------------------
# Send_Mail
#---------------------
mail -s"${mail_subject}" ${mail_to} < ${fic_mail}

#---------------------
#-- delete fic tempo
#---------------------
test -f ${TempPage} && rm ${TempPage}
test -f ${TempPageCsv} && rm ${TempPageCsv}
test -f ${fic_mail} && rm ${fic_mail}

LogGer "# --------------- FIN"

Previous page: Cotation Bourse
Page suivante : Résultat Euro Millions et Loto