#!/usr/bin/ksh
#
# mksysb.ksh verifies that current mksysb images are being maintained by the two mksysb (NIM) hosts,
# one in the DC1 and anohter in the DC2. The program reads the available mksysb images
# from both hosts along with the date they were created. Converts the creation time into
# a quasi-julian calendar format for comparision the current date. Any mksysb image less
# than three days old is considered "current". Older images are considered "stale". Any
# system belonging to the Unix Operation team from which a mksysb can not be found is
# considered "missing".
#
# while true; do # end-less loop - can be removed in favor of a cron entry
Month=`date|cut -c5-7` # break current date - "Wed Sep 23 16:33:34 EDT 2015"
Day=`date|cut -c9-10` # into Month(Mmm), Day(##) & Year(##)
Year=`date|cut -c27-28`
Rom2Jul() { case $Month in Feb) Day=$(( $Day+31 ));;
Mar) Day=$(( $Day+59 ));;
Apr) Day=$(( $Day+90 ));;
May) Day=$(( $Day+120 ));;
Jun) Day=$(( $Day+151 ));;
Jul) Day=$(( $Day+181 ));;
Aug) Day=$(( $Day+212 ));;
Sep) Day=$(( $Day+243 ));;
Oct) Day=$(( $Day+273 ));;
Nov) Day=$(( $Day+304 ));;
Dec) Day=$(( $Day+334 ));; esac }
Rom2Jul
Current=$(( $Year*365+$Day-2 )) # current ddddd less 3 days to allow for delayed backups & leap year
Path=/tmp/mksysb # for testing ONLY!
BackupInput=$Path/mksysbChk.input
ContactNIM=/usr/local/admin/bin/remote.pl
$ContactNIM --host=NIM1 --command=/bin/'ls -al /nim/dr/mksysb/\*'|grep -e _dr -e .tgz|cut -c37-90|cut -d" " -f2-8|cut -d_ -f1 > $BackupInput # place DC1 clients into the list
$ContactNIM --host=NIM2 --command=/bin/'ls -al /nim/dr/mksysb/\*'|grep -e _dr -e .tgz|cut -c37-90|cut -d" " -f2-8|cut -d_ -f1 >> $BackupInput # append DC2 clients into the list
BackupMsg=$Path/mksysbChk.msg # setup mail strings
BackupTitle='mksysb Status Report'
BackupAdm='xxxxx@xxxx.com'
if [[ ! -s $BackupInput ]] then BackupMsg='ERROR - unable to communicate with the NIM servers and verify mksysb status - NO notifications sent'
mail -s "$BackupTitle" $BackupAdm < $BackupMsg; exit; fi # connection to NIM servers lost, aborting!!!
BackupOutput=$Path/mksysbChk.output
if [[ -e $BackupOutput ]] then rm $BackupOutput; fi
PrevHostname=''
PrevBackup=0
while read input # eliminate duplicate mksysbChk.files & convert raw dates into yy x 365 + ddd format
do Month=${input:0:3}
Day=${input:4:2}
Hostname=${input:13:12}
Rom2Jul
if [[ ${input:9:1} = ':' ]] then Year=`date|cut -c27-28`; else Year=${input:10:2}; fi
Backup=$(( $Year*365+$Day ))
if [[ $PrevHostname = '' ]] then PrevHostname=$Hostname; PrevBackup=$Backup
else if [[ $PrevHostname != $Hostname ]] then echo $PrevBackup $PrevHostname >> $BackupOutput
PrevHostname=$Hostname; PrevBackup=$Backup
else if (( $Backup > $PrevBackup )) then PrevBackup=$Backup; fi; fi; fi; done < $BackupInput
echo $PrevBackup $PrevHostname >> $BackupOutput # write out final record
if [[ -e $BackupMsg ]] then rm $BackupMsg; fi
SupportedHosts=/tmp/aix.lst # daily extract of the supported hostnames
while read Hostname # match supported hostnames with mksysbChk.files & determine status (current/stale/missing)
do Backup=`grep $Hostname $BackupOutput|cut -c1-5` # actual match
if [[ $Backup == '' ]] then echo "$Hostname\tMissing\tmksysb" >> $BackupMsg
else if [[ $Backup < $Current ]] then echo "$Hostname\tStale\tmksysb" >> $BackupMsg; fi; fi; done < $SupportedHosts
mail -s "$BackupTitle" $BackupAdm < $BackupMsg # for testing ONLY!
We use a UNIX-based system (Lawson) at work and I was given this command to request a data extract from the db admin. The only thing I really understand is the last line as it appears to be joining the files created from the first three lines into one. Is there anyone who can help me breakdown the... (4 Replies)
# sub: find block (in cols), return line-numbers (begin-end) or 0 if notfound
sub findb{
my ($exp1,$col1,$exp2,$col2)= @_; # $exp = expression to find, $col - column to search in
my $cnt=0;
my ($val1,$val2);
my ($beg,$end);
for($cnt=1;$cnt<=65536;$cnt++){
$val1 =... (3 Replies)
i am analyzing a query written by another developer ,need to understand part of script
am looking at a code ..and it converts comma files to pipe delimited and also takes away quotes from any columns,
source field format: 2510,"Debbie",NewYork
changes to
target: 2510|Debbie|NewYork
... (1 Reply)
Can someone explain what is happening line by line in this script, particularly after the do statement. The script works, it renames all the files in my directory that has a date in the file name. But I would like to know more about it.
#!/bin/bash
newdate=12-10-1995
for file in *--*
do
... (6 Replies)
i am trying to understand this script example. the text does not explain it. can someone tell me briefly what each of the functions do. any help will be appreciated.
#!/bin/bash
killtree() {
local _pid=$1
local _sig=${2-TERM}
for _child in $(ps -o pid --no-headers --ppid... (1 Reply)
Hi Guys,
I am new to scripting , I am trying to rebuild a script based on an old script. Can someone help me figure out what the script is doing? This is only a part of the script.
I am looking to interpret these two points in the scripts:-
1)
test=`echo $?`
while
I do not... (3 Replies)
Hi,
New to this forum, as well as to unix scripting..need help to understand below script ...
sendNotice_sp()
{
ATTACH=${LNXLOG:-}
if ; then
if ; then
mail -s "$ERR_MSG" $ERR_EMAIL_TO < $ATTACH
fi
else
mail -s "$ERR_MSG" $ERR_EMAIL_TO < /dev/null
fi
}
afaik this is sm kind of... (6 Replies)
Below script is called as Reducer, I am not sure how it work, can some expert explain me what this script does as i am a beginner.
inputfile:
hi hi how are are you
code:
#!/bin/bash
lastkey=""; -- what does this mean, because i saw in debug mode it is taking value as hi
count=0;... (13 Replies)
Hello,
How come the following script adds each numeric value to a total sum ?
x=$1
func()
{
for i in $1 $2 $3; do
let x= $x+$i
done }
func "8 8 8" 9 9
echo $x
A.How the program sums the string "8 8 8" if it`s only the first field value ($1)?
B.If we define x to be $1... (3 Replies)