#!/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