meta data for this page
  •  

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
shell:riportok:napi_riport [2019/11/28 12:09] adminshell:riportok:napi_riport [2024/03/14 11:18] (aktuális) admin
Sor 10: Sor 10:
 ################################################################ ################################################################
 #                                                              # #                                                              #
-#  TSM napi riport - tsm_napi_riport.sh v4.6.3 (2019.11.28.)   #+#  TSM napi riport - tsm_napi_riport.sh v4.(2024.01.09.)     #
 #  Keszitette: Agoston Peter                                   # #  Keszitette: Agoston Peter                                   #
 #  Web: http://agostonpeter.com/tsm-turi                       # #  Web: http://agostonpeter.com/tsm-turi                       #
 #                                                              # #                                                              #
 ################################################################ ################################################################
-SCRIPT_VER="v4.6.3 (2019.11.28.)"+SCRIPT_VER="v4.(2024.01.09.)"
 # Riport cimzett(ek) # Riport cimzett(ek)
 # Milyen email cim(ek)re menjen a riport # Milyen email cim(ek)re menjen a riport
Sor 62: Sor 62:
 # Konfig resz vege #########################################################################################################################  # Konfig resz vege ######################################################################################################################### 
 # Hasznalt SQL selectek TSM-hez  # Hasznalt SQL selectek TSM-hez 
 +SQL_LICENSZ_HASZNALATOK='select cast(FRONTEND_CAP/1024/1024 as decimal (8,2)) as "Front-End TB",substr(FRONTEND_CAP_DATE,1,19) as "Front-End Date",FRONTEND_CLIENT_COUNT as "Front-End client count",cast(TOTALSUROCC_TB as decimal (8,2)) as "SUR TB",substr(SUROCC_DATE,1,19) as "SUR occupancy date" from status'
 +#SQL_LICENSZ_HASZNALATOK='select cast(FRONTEND_CAP/1024/1024 as decimal (8,2)) as "Front-End TB",substr(FRONTEND_CAP_DATE,1,19) as "Front-End Date",FRONTEND_CLIENT_COUNT as "Front-End client count",cast(TOTALSUROCC_TB as decimal (8,2)) as "SUR TB",cast(TOTALSURRETOCC_TB as decimal(8,2)) as "SUR retain TB",SUROCC_DATE as "SUR occupancy date" from status'
 SQL_UTOLSO24H_ADATMOZGASAI="select nn.domain_name,summary.activity, sum(cast(summary.bytes/1024/1024/1024 as decimal(6,2))) as GB from nodes as nn, summary where (end_time between current_timestamp - 24 hours and current_timestamp) and (activity='BACKUP' or activity='RESTORE' or activity='ARCHIVE' or activity='RETRIEVE') and ((nn.node_name=summary.entity)) group by domain_name,summary.activity order by activity,domain_name asc" SQL_UTOLSO24H_ADATMOZGASAI="select nn.domain_name,summary.activity, sum(cast(summary.bytes/1024/1024/1024 as decimal(6,2))) as GB from nodes as nn, summary where (end_time between current_timestamp - 24 hours and current_timestamp) and (activity='BACKUP' or activity='RESTORE' or activity='ARCHIVE' or activity='RETRIEVE') and ((nn.node_name=summary.entity)) group by domain_name,summary.activity order by activity,domain_name asc"
 SQL_UTOLSO24H_AKTIVITASAI="SELECT activity, cast(float(sum(bytes))/1024/1024/1024 as dec(8,2)) as \"GB\" FROM summary WHERE end_time>current_timestamp-24 hours and activity<>'EXPIRATION' and bytes>0 GROUP BY activity" SQL_UTOLSO24H_AKTIVITASAI="SELECT activity, cast(float(sum(bytes))/1024/1024/1024 as dec(8,2)) as \"GB\" FROM summary WHERE end_time>current_timestamp-24 hours and activity<>'EXPIRATION' and bytes>0 GROUP BY activity"
Sor 77: Sor 79:
 SQL_OFFLINE_PATHOK="select count(*) from paths where not online='YES'" SQL_OFFLINE_PATHOK="select count(*) from paths where not online='YES'"
 SQL_OFFLINE_DRIVEOK="select count(*) from drives where not online='YES'" SQL_OFFLINE_DRIVEOK="select count(*) from drives where not online='YES'"
-SQL_TEVES_PRIV_SZALAGOK="SELECT volume_name, library_name FROM libvolumes WHERE status='Private' AND last_use IS NULL AND volume_name NOT IN (SELECT volume_name FROM volumes) and owner=(select server_name from status)"+SQL_TEVES_PRIV_SZALAGOK="SELECT volume_name, library_name FROM libvolumes WHERE status='Private' AND last_use IS NULL AND volume_name NOT IN (SELECT volume_name FROM volumes) and (owner=(select server_name from status) or owner IS NULL)"
 SQL_PROBLEMAS_VOLUMEOK="select count(*) from volumes where (access!='READWRITE' AND access!='OFFSITE')" SQL_PROBLEMAS_VOLUMEOK="select count(*) from volumes where (access!='READWRITE' AND access!='OFFSITE')"
 SQL_DEAD_NODES="select node_name, (days(current_timestamp)-days(lastacc_time)) as \"LAST ACCESS\" from nodes where locked='NO' and (days(current_timestamp)-days(lastacc_time))>$DEAD_NODE_AGE" SQL_DEAD_NODES="select node_name, (days(current_timestamp)-days(lastacc_time)) as \"LAST ACCESS\" from nodes where locked='NO' and (days(current_timestamp)-days(lastacc_time))>$DEAD_NODE_AGE"
Sor 86: Sor 88:
 SQL_ACTLOG_ERRORS="SELECT substr(char(date_time),1,19) || ' ' || message as MSG from actlog WHERE severity in ('E','S') and msgno not in(2034,1930,1931,0944) and message not like 'ANE%' and date_time>current_timestamp-24 hours ORDER BY msg ASC" SQL_ACTLOG_ERRORS="SELECT substr(char(date_time),1,19) || ' ' || message as MSG from actlog WHERE severity in ('E','S') and msgno not in(2034,1930,1931,0944) and message not like 'ANE%' and date_time>current_timestamp-24 hours ORDER BY msg ASC"
 SQL_REORG_MESSAGES="SELECT substr(date_time,1,19) || ' ' || message as MSG from actlog WHERE msgno in(0293,0294,0317,0318,0336,0337) and date_time>current_timestamp-24 hours ORDER BY date_time ASC" SQL_REORG_MESSAGES="SELECT substr(date_time,1,19) || ' ' || message as MSG from actlog WHERE msgno in(0293,0294,0317,0318,0336,0337) and date_time>current_timestamp-24 hours ORDER BY date_time ASC"
 +SQL_HWERR_MESSAGES="SELECT substr(date_time,1,19) || ' ' || message as MSG from actlog WHERE msgno in(8943,8944,8359,8949,8311,8873,8471,8381,8300) and date_time>current_timestamp-24 hours ORDER BY date_time ASC"
 SQL_COMPARE_PRIMARY_COPY_POOLS="SELECT pooltype,CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(12,2)) as total_data_gb,((SELECT CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(18,2)) FROM stgpools WHERE pooltype='PRIMARY') - (SELECT CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(18,2)) FROM stgpools WHERE pooltype='COPY')) as pending_copy_gb FROM stgpools where pooltype!='ACTIVEDATA' GROUP BY pooltype" SQL_COMPARE_PRIMARY_COPY_POOLS="SELECT pooltype,CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(12,2)) as total_data_gb,((SELECT CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(18,2)) FROM stgpools WHERE pooltype='PRIMARY') - (SELECT CAST(FLOAT(sum((est_capacity_mb/1024) * pct_utilized / 100)) AS DEC(18,2)) FROM stgpools WHERE pooltype='COPY')) as pending_copy_gb FROM stgpools where pooltype!='ACTIVEDATA' GROUP BY pooltype"
 SQL_CLIENTO_MESSAGES="SELECT substr(date_time,1,19) || ' ' || message as MSG from actlog WHERE msgno in(2050,2053,2297) and date_time>current_timestamp-24 hours ORDER BY date_time ASC" SQL_CLIENTO_MESSAGES="SELECT substr(date_time,1,19) || ' ' || message as MSG from actlog WHERE msgno in(2050,2053,2297) and date_time>current_timestamp-24 hours ORDER BY date_time ASC"
Sor 95: Sor 98:
 # Fuggvenyek, egyeb valtozok # Fuggvenyek, egyeb valtozok
 SSH_OPT="-o BatchMode=yes -o ConnectTimeout=5 -i $SSH_KEY_FILE" SSH_OPT="-o BatchMode=yes -o ConnectTimeout=5 -i $SSH_KEY_FILE"
 +export LANG=en_US
  
 read -r -d '' JS_CODE << EOF read -r -d '' JS_CODE << EOF
Sor 153: Sor 157:
 # Program torzs # Program torzs
 declare -A TSM_SZERVERNEVEK declare -A TSM_SZERVERNEVEK
 +declare -A TSM_SZERVERNEV
 STARTTIME=`date "+%s"` STARTTIME=`date "+%s"`
 >$TMP_FILE >$TMP_FILE
Sor 166: Sor 171:
 for TSM_SZERVER in $TSM_SZERVEREK; do for TSM_SZERVER in $TSM_SZERVEREK; do
         VER=$((`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e 's/Server Version \([0-9]\),.*/\1/p' -e 's/[\t\s]*//g'`))         VER=$((`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e 's/Server Version \([0-9]\),.*/\1/p' -e 's/[\t\s]*//g'`))
-        LONG_VER=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e  's/Server Version \([0-9]\), Release \([0-9]\), Level \([0-9]\)\.\([0-9]\).*/\1.\2.\3.\4/p' | sed -e 's/^[^0-9]*//g')+        LONG_VER=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e  's/Server Version \([0-9]\), Release \([0-9]\), Level \([0-9]\+\)\.\([0-9]\+\).*/\1.\2.\3.\4/p' | sed -e 's/^[^0-9]*//g')
         TSM_SZERVERNEV[$TSM_SZERVER]=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e 's/Session established with server \([^:]*\):.*/\1/p')         TSM_SZERVERNEV[$TSM_SZERVER]=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=$TSM_SZERVER q opt | sed -n -e 's/Session established with server \([^:]*\):.*/\1/p')
         if [ "$VER" != "0" ]; then         if [ "$VER" != "0" ]; then
Sor 204: Sor 209:
                 7) USED=`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -tabdel -displ=tabl q db f=d | head -n1 | awk '{ print $3 }' | sed 's/,//g'`                 7) USED=`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -tabdel -displ=tabl q db f=d | head -n1 | awk '{ print $3 }' | sed 's/,//g'`
                    #LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "q db f=d" | awk '{print $19" "$20}');;                    #LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "q db f=d" | awk '{print $19" "$20}');;
-                   LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "SELECT TO_CHAR(CHAR(end_time),'MM/DD/YYYY HH24:MI:SS'as END_TIME FROM summary WHERE activity='FULL_DBBACKUP' and successful='YES' ORDER BY end_time DESC FETCH FIRST 1 ROWS ONLY");;+                   LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "select TO_CHAR(LAST_BACKUP_DATE,'MM/DD/YYYY HH24:MI:SS'from db");;
                 8) USED=`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -tabdel -displ=tabl q db f=d | head -n1 | awk '{ print $3 }' | sed 's/,//g'`                 8) USED=`dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -tabdel -displ=tabl q db f=d | head -n1 | awk '{ print $3 }' | sed 's/,//g'`
                    #LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "q db f=d" | awk '{print $14" "$15}');;                    #LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "q db f=d" | awk '{print $14" "$15}');;
-                   LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "SELECT TO_CHAR(CHAR(end_time),'MM/DD/YYYY HH24:MI:SS'as END_TIME FROM summary WHERE activity='FULL_DBBACKUP' and successful='YES' ORDER BY end_time DESC LIMIT 1");;+                   LASTDBB=$(dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -displ=table -tabdel "select TO_CHAR(LAST_BACKUP_DATE,'MM/DD/YYYY HH24:MI:SS'from db");;
         esac         esac
         [[ $(datediff "$LASTDBB" "$(date '+%m/%d/%Y %H:%M:%S' )") -lt -1 ]] && WARNING=$WARN         [[ $(datediff "$LASTDBB" "$(date '+%m/%d/%Y %H:%M:%S' )") -lt -1 ]] && WARNING=$WARN
         echo 'Kihasznaltsag: '`echo "scale=2; 100 * $USED / $TOTAL" | bc`"  (Utolso sikeres DB mentes : ${LASTDBB}) ${WARNING}" | tee -a $TMP_HTML_FILE | sed 's/<img .*>//' >> $TMP_FILE;         echo 'Kihasznaltsag: '`echo "scale=2; 100 * $USED / $TOTAL" | bc`"  (Utolso sikeres DB mentes : ${LASTDBB}) ${WARNING}" | tee -a $TMP_HTML_FILE | sed 's/<img .*>//' >> $TMP_FILE;
 +done
 +echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE
 +
 +#_________________________________________________________________________________________________________________________________________________________________
 +fejlec "Licensz hasznalat"
 +for TSM_SZERVER in $TSM_SZERVEREK; do
 +        if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi
 +        echo ' Front-End GB     Front-End Date            Front-End client count  |       SUR TB     SUR occupancy date' | tee -a $TMP_HTML_FILE >> $TMP_FILE
 +        echo '-------------     --------------------     -----------------------  |  -----------     --------------------' | tee -a $TMP_HTML_FILE >> $TMP_FILE
 +        dsmadmc  -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -tabdel -displ=tabl "$SQL_LICENSZ_HASZNALATOK" | egrep -v '(ANR|ANS)' | awk -F' ' '{printf "%13s     %-22s     %21s  |  %11d     %-20s\n", $1, $2, $3, $4, $5}' | tee -a $TMP_HTML_FILE >> $TMP_FILE
 done done
 echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE
Sor 261: Sor 276:
  case `szerverver $TSM_SZERVER` in  case `szerverver $TSM_SZERVER` in
                 5) dsmadmc -pa=$TSM_JELSZO -id=$TSM_FELH -dataonly=y -se=${TSM_SZERVER} -commadel -displ=list "${SQL_QUERY_PROC_V5}" | egrep -v '(ANR|ANS)' | awk -F',' '{printf "%-11s   %-20s   %-19s   %2dd %2dh %2dm   %11s %17s\n", $1, $2, $3, $4, $5, $6, $7, $8 ,$9}' | tee -a $TMP_HTML_FILE >> $TMP_FILE;;                 5) dsmadmc -pa=$TSM_JELSZO -id=$TSM_FELH -dataonly=y -se=${TSM_SZERVER} -commadel -displ=list "${SQL_QUERY_PROC_V5}" | egrep -v '(ANR|ANS)' | awk -F',' '{printf "%-11s   %-20s   %-19s   %2dd %2dh %2dm   %11s %17s\n", $1, $2, $3, $4, $5, $6, $7, $8 ,$9}' | tee -a $TMP_HTML_FILE >> $TMP_FILE;;
-                [6-7]) dsmadmc -pa=$TSM_JELSZO -id=$TSM_FELH -dataonly=y -se=${TSM_SZERVER} -commadel -displ=list "${SQL_QUERY_PROC_V6}" | egrep -v '(ANR|ANS)' | awk -F',' '{printf "%-11s   %-20s   %-19s   %2dd %2dh %2dm   %11s %17s\n", $1, $2, $3, $4, $5, $6, $7, $8 ,$9}' | tee -a $TMP_HTML_FILE >> $TMP_FILE;;+                [6-9]) dsmadmc -pa=$TSM_JELSZO -id=$TSM_FELH -dataonly=y -se=${TSM_SZERVER} -commadel -displ=list "${SQL_QUERY_PROC_V6}" | egrep -v '(ANR|ANS)' | awk -F',' '{printf "%-11s   %-20s   %-19s   %2dd %2dh %2dm   %11s %17s\n", $1, $2, $3, $4, $5, $6, $7, $8 ,$9}' | tee -a $TMP_HTML_FILE >> $TMP_FILE;;
  esac  esac
  echo | tee -a $TMP_HTML_FILE >> $TMP_FILE  echo | tee -a $TMP_HTML_FILE >> $TMP_FILE
Sor 625: Sor 640:
 for TSM_SZERVER in $TSM_SZERVEREK; do for TSM_SZERVER in $TSM_SZERVEREK; do
         if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi         if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi
-        dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -commadel "$SQL_REFUSED_NODES" | egrep -v '(ANR2034|ANS8001)' | tee -a $TMP_HTML_FILE >> $TMP_FILE+        dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y "$SQL_REFUSED_NODES" | egrep -v '(ANR2034|ANS8001)' | awk '{print $7" "$8}' | sed 's/([0-9]\+)//' | sort | uniq -c | awk '{printf "%4dx  %-30s %-17s\n",$1,$2,$3}' | tee -a $TMP_HTML_FILE >> $TMP_FILE
  
 done done
Sor 707: Sor 722:
         if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi         if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi
         dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -commadel "$SQL_REORG_MESSAGES" | egrep -v '(ANR2034|ANS8001)' | tee -a $TMP_HTML_FILE >> $TMP_FILE         dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -commadel "$SQL_REORG_MESSAGES" | egrep -v '(ANR2034|ANS8001)' | tee -a $TMP_HTML_FILE >> $TMP_FILE
 +done
 +echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE
 +
 +#_________________________________________________________________________________________________________________________________________________________________
 +fejlec "Tape hiba uzenetek (utolso 24h)"
 +for TSM_SZERVER in $TSM_SZERVEREK; do
 +        if [ $(echo $TSM_SZERVEREK | wc -w) -gt 1 ]; then echo "> @${TSM_SZERVERNEV[$TSM_SZERVER]}:" | tee -a $TMP_HTML_FILE >> $TMP_FILE; fi
 +        dsmadmc -id=$TSM_FELH -pa=$TSM_JELSZO -se=${TSM_SZERVER} -dataonly=y -commadel "$SQL_HWERR_MESSAGES" | egrep -v '(ANR2034|ANS8001)' | tee -a $TMP_HTML_FILE >> $TMP_FILE
 done done
 echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE echo "$HTML_MODUL_LABLEC" >> $TMP_HTML_FILE