meta data for this page
  •  

TSM kliens log gyűjtő

Ez a szkript azoknak a TSM üzemeltetőknek lehet hasznos, akik ő maguk nem rendelkeznek hozzáféréssel a kliens hosztokra (node-okra). Az kliens hoszt üzemeltetője sok esetben nem rendelkezik kellő TSM-es ismerettel ahhoz, hogy egy esetleges TSM-es kliens oldali problémát kivizsgáljon. (Nem tudja milyen logokat, hol kell nézni, mit kell nézni bennük, stb.) Ilyen környezetben elég egy ehhez hasonló szkriptet elhelyezni egy publikus share-en, és csak megkérni az üzemeltetőt, hogy ezt futtassa le, s ez majd szépen összegyűjt nekünk mindenféle hasznos kliens oldali TSM-mel kapcsolatos információt és elküldi nekünk emailben. Ez a szkript az általunk megadott log, konfig fájlokat, 'dsmc q systeminfo' kimenetet, futó dsm-es processzek listáját küldi el, adott email cím(ek)re. Ha a terminál engedi, szép színes-szagos. Természetesen bármilyen egy számunkra hasznos adat begyűjtésével ki lehet egészíteni (tape device-ok listája, erőforrások kihasználtsága, stb.)

Állítható paraméterek:

  • $LOGFAJLOK: gyűjtendő logok listája teljes útvonallal, szóközzel elválasztva
  • $CFGFAJLOK: gyűjtendő konfig fájlok listája teljes útvonallal, szóközzel elválasztva
  • $ADMINMAIL: az email címek vesszővel elválasztva, ahová a tömörített fájlt küldje
  • $HOSTNAME: A levél fejlécébe írt hosztnév

A levél elküldéséhez mailx parancsot használ, tehát értelemszerűen bekonfigurált mailx szükséges. Továbbá tar, gzip, uuencode programok.

tsm_log_collect.sh
#!/bin/sh
HOSTNAME=`hostname`
ADMINMAIL="tsmadmin@szolgaltatom.hu"
LOGFAJLOK="/var/adm/dsmsched.log /var/adm/dsmerror.log /var/adm/dsmwebcl.log /var/adm/tsm/dsmsched.log /var/adm/tsm/dsmerror.log /var/adm/tsm/dsmwebcl.log /var/adm/sysback.log"
CFGFAJLOK="/usr/tivoli/tsm/client/api/bin64/dsm.sys /usr/tivoli/tsm/client/api/bin64/dsm.opt /usr/tivoli/tsm/client/ba/bin64/dsm.sys /usr/tivoli/tsm/client/ba/bin64/dsm.opt /opt/tivoli/tsm/client/ba/bin64/dsm.sys /opt/tivoli/tsm/client/ba/bin64/dsm.opt"
VERSION="v1.3 (20130403)"
 
RED='\033[0;31m'
GREEN='\033[0;32m'
LIGHT_GREEN='\033[1;32m'
DEFAULT=$(tput sgr0) #'\033[0m'
WHITE=$(tput bold;tput setaf 7)
BEIGE=$(tput setaf 3)
echo
FAJLOK_="$LOGFAJLOK $CFGFAJLOK /tmp/dsminfo.txt"
LOGMERET=`ls -la $LOGFAJLOK 2>/dev/null | awk '{ sum+=$5} END {print sum}'`
if [[ `uname` = 'Linux' ]]; then e='-e'; else e=''; fi # Az echo parancs -e parametere csak Linux alatt ertelmezett
 
echo $e "${WHITE}#################################################################################${DEFAULT}"
echo $e "${WHITE}### TSM kliens log gyujto szkript ${VERSION}   - keszitette: Agoston Peter ###${DEFAULT}"
echo $e "${WHITE}#################################################################################${DEFAULT}"
 
echo $e "- Futo TSM-es processzek:${BEIGE}"
ps -ef | grep '[d]sm'
DSMPROCESSZEK=`ps -ef | grep '[d]sm'`
echo
 
printf "${DEFAULT}- A 'mailx' ellenorzese a level kuldeshez... "
if [[ `which mailx 2>/dev/null | wc -l | sed 's/[^0-9]//g'` -gt 0 ]]; then
        echo $e "${BEIGE}OK.$DEFAULT"
else
        echo $e "${RED}Nincs!$DEFAULT"
        exit 1
fi
echo $e "- Szabad terulet vizsgalata a /tmp/-ben..."
#Ha a /tmp/-ben a logok osszmeretenek 10%-anyi hely van, az eleg kell, hogy legyen
if [[ `df | grep '/tmp' | awk '{printf "%.0f",$3 * 512 }'` -lt $((LOGMERET / 10))  ]]; then
        echo $e "${RED}Nincs eleg hely a /tmp/-ben a .tar.gz letrehozasahoz.${DEFAULT}"
        echo $e "${WHITE}#################################################################################${DEFAULT}"
        exit 1
fi
 
echo $e "- A 'dsmc q systeminfo' lekerdezese ide: ${BEIGE}/tmp/dsminfo.txt"
dsmc q systeminfo DSMOPTFILE DSMSYSFILE ENV INCLEXCL OSINFO POLICY OPTIONS -filename=/tmp/dsminfo.txt | grep 'dsminfo.txt'
if [[ $? -gt 0 ]]; then
        echo $e "${RED}Hat, ez nem futott le. Biztos be van konfiguralva a TSM kliens?${DEFAULT}"
        exit 1
fi
 
echo $e "${DEFAULT}- TSM logok keresese..."
for I in $( ls $FAJLOK_ 2>/dev/null ); do
        if [[ -e $I ]]; then
                FAJLOK="$FAJLOK $I"
        fi
done
echo $e "- Talalt TSM logok: ${BEIGE}${FAJLOK}${DEFAULT}"
 
echo $e "- Tomoritem es kuldom tar.gz-ben a TSM adminoknak a logokat...${BEIGE}"
if [[ `uname` = 'Linux' ]]; then v='-v'; else v='-e'; fi # Az rm parancs verbose parametere Linux alatt -v, AIX alatt -e
if [[ `uname` = 'Linux' ]]; then P='P'; else P=''; fi # A tar parancs -P parametere csak Linux alatt ertelmezett
tar cvf${P} - $FAJLOK | gzip -c9 > /tmp/${HOSTNAME}_tsm_logs.tar.gz && ( ( echo "$DSMPROCESSZEK"; uuencode /tmp/${HOSTNAME}_tsm_logs.tar.gz /tmp/${HOSTNAME}_tsm_logs.tar.gz ) | mailx -s "${HOSTNAME} TSM logs" ${ADMINMAIL} )
if [[ $? -eq 0 ]]; then
        echo $e "${DEFAULT}- Ideiglenes fajlok torlese..."
        rm $v /tmp/${HOSTNAME}_tsm_logs.tar.gz
        rm $v /tmp/dsminfo.txt
        echo $e "${DEFAULT}Latszolag minden sikerult.";
else
        echo $e "${DEFAULT}Ugy tunik valami problema akadt. Kezi munkara lesz szukseg. Az alabbi ideiglenes fajlok sem kerultek torlesre:"
        echo $e "${BEIGE}/tmp/${HOSTNAME}_tsm_logs.tar.gz"
        echo $e "${BEIGE}/tmp/dsminfo.txt"
fi
echo $e "${DEFAULT}Ezt a levelet a $HOSTNAME-n futtatott /home/nfs/apr/scriptek/tsm_log_sender.sh kuldte."
echo $e "${WHITE}#################################################################################${DEFAULT}"
echo

Ágoston Péter 2013/04/11 10:35