diff --git a/151 b/151 index 20891e4..ec60ae7 100755 --- a/151 +++ b/151 @@ -19,7 +19,7 @@ echo "QA output created by $seq" . ./common.filter . ./common.check -# check for new version ... may need -o to force "old style" behaviour +# check for new version ... # $PCP_BINADM_DIR/pmlogger_daily -\? 2>&1 >/tmp/eek if $PCP_BINADM_DIR/pmlogger_daily -\? 2>&1 | grep '^.*-o.*(old style)' >/dev/null @@ -31,21 +31,6 @@ else exit 0 fi -# Because pmlogger_daily is way too clever to use the same criteria -# for deciding which logs to merge and which to cull, we have to have -# QA output in 2 different times of the day - -case "`date +%H`" in -00) - # just after midnight - rm -f $seq.out && ln $seq.out.00-01 $seq.out || exit 1 - ;; -*) - # any other time - rm -f $seq.out && ln $seq.out.01-24 $seq.out || exit 1 - ;; -esac - _filter() { tee -a $seq.full \ @@ -77,27 +62,39 @@ mkdir $tmp mkdir $tmp/foo # real QA test starts here -verbose=-V + echo >$tmp/sed -for day in 0 1 2 3 4 5 +# unmerged archives for these days ... +# +for day in 0 1 2 3 do - fmt=%Y%m%d - for hour in 1 4 16 do [ $day -gt 0 -a $hour -gt 1 ] && continue - - namea=`pmdate -${day}d -${hour}H $fmt.%H.%M` - nameb=`pmdate -${day}d -${hour}H -1M $fmt.%H.%M` - namec=`pmdate -${day}d -${hour}H -2M $fmt.%H.%M` + # aiming for the time to be hour:10, hour:20 and hour:30 on + # each day, even if that is ahead of NOW for today + # + now_hr=`pmdate %H` + hr_set=`expr $hour - $now_hr` + [ "$hr_set" -ge 0 ] && hr_set="+$hr_set" + now_min=`pmdate %M` + min_set10=`expr 10 - $now_min` + [ "$min_set10" -ge 0 ] && min_set10="+$min_set10" + min_set20=`expr 20 - $now_min` + [ "$min_set20" -ge 0 ] && min_set20="+$min_set20" + min_set30=`expr 30 - $now_min` + [ "$min_set30" -ge 0 ] && min_set30="+$min_set30" + namea=`pmdate -${day}d ${hr_set}H ${min_set10}M %Y%m%d.%H.%M` + nameb=`pmdate -${day}d ${hr_set}H ${min_set20}M %Y%m%d.%H.%M` + namec=`pmdate -${day}d ${hr_set}H ${min_set30}M %Y%m%d.%H.%M` stampa=`echo $namea | sed -e 's/\.//g'` stampb=`echo $nameb | sed -e 's/\.//g'` stampc=`echo $namec | sed -e 's/\.//g'` nameb=${namea}-00 namec=${namea}-01 - echo "s/$namea/TODAY-$day.-${hour}H.MM/g" >>$tmp/sed - echo "s/$nameb/TODAY-$day.-${hour}H.MM-00/g" >>$tmp/sed - echo "s/$namec/TODAY-$day.-${hour}H.MM-01/g" >>$tmp/sed + echo "s/$namea/TODAY-$day.${hour}H.MM/g" >>$tmp/sed + echo "s/$nameb/TODAY-$day.${hour}H.MM-00/g" >>$tmp/sed + echo "s/$namec/TODAY-$day.${hour}H.MM-01/g" >>$tmp/sed for ext in 0 index meta do @@ -112,17 +109,36 @@ do touch -t $stampc $tmp/$namec.$ext done done + echo "s/`pmdate -${day}d ${hr_set}H ${min_set10}M %Y%m%d`/TODAY-$day/g" >>$tmp/sed done -( cd $tmp; tar cf - *.0 *.meta *.index ) | ( cd $tmp/foo; tar xpf - ) +# merged archives for these days ... +# +for day in 4 5 6 +do + # aiming for the time to be 00:10 like when cron does its stuff + # + hr_set=-`pmdate %H` + now_min=`pmdate %M` + min_set=`expr 10 - $now_min` + [ "$min_set" -ge 0 ] && min_set="+$min_set" + namea=`pmdate -${day}d ${hr_set}H ${min_set}M %Y%m%d` + stampa=`echo $namea | sed -e 's/\.//g'`0010 + echo "s/$namea/TODAY-$day/g" >>$tmp/sed + + for ext in 0 index meta + do + cp src-oss/arch_a.$ext $tmp/$namea.$ext + touch -t $stampa $tmp/$namea.$ext + done + echo "s/$namea/TODAY-$day/g" >>$tmp/sed +done echo "s/TODAY-0/TODAY/g" >>$tmp/sed echo "s/`pmdate %Y%m%d`/TODAY/g" >>$tmp/sed -echo "s/`pmdate -1d %Y%m%d`/TODAY-1/g" >>$tmp/sed -echo "s/`pmdate -2d %Y%m%d`/TODAY-2/g" >>$tmp/sed -echo "s/`pmdate -3d %Y%m%d`/TODAY-3/g" >>$tmp/sed -echo "s/`pmdate -4d %Y%m%d`/TODAY-4/g" >>$tmp/sed -echo "s/`pmdate -5d %Y%m%d`/TODAY-5/g" >>$tmp/sed + +( cd $tmp; tar cf - *.0 *.meta *.index 2>/dev/null ) \ +| ( cd $tmp/foo; tar xpf - 2>/dev/null ) echo >$tmp/control '$version=1.1 LOCALHOSTNAME n n '"$tmp"' ./config' @@ -130,13 +146,18 @@ LOCALHOSTNAME n n '"$tmp"' ./config' echo echo "Before ..." ls $tmp | sed -f $tmp/sed | LC_COLLATE=POSIX sort | tee $tmp.before +echo "sed ..." >>$seq.full +cat $tmp/sed >>$seq.full +echo "before ..." >>$seq.full ls -l $tmp >>$seq.full # list of culled files is in directory order, hence the cut and sort # complexity at the end of this pipeline # echo -pmlogger_daily -c $tmp/control -k 4 $verbose 2>&1 \ +echo "pmlogger_daily -k 4 -V ..." >>$seq.full +pmlogger_daily -c $tmp/control -k 4 -V 2>&1 \ +| tee -a $tmp.full \ | _filter \ | $PCP_AWK_PROG ' state == 0 { print >"'$tmp.out.0'" @@ -145,17 +166,19 @@ state == 0 { print >"'$tmp.out.0'" } state == 1 && NF == 0 { state = 2 } state == 1 { for (i = 1; i <= NF; i++) print $i >"'$tmp.out.1'" }' -cat $tmp.out.0 -LC_COLLATE=POSIX sort $tmp.out.1 +[ -f $tmp.out.0 ] && cat $tmp.out.0 +[ -f $tmp.out.1 ] && LC_COLLATE=POSIX sort $tmp.out.1 echo "out.0 ..." >>$seq.full -cat $tmp.out.0 >>$seq.full +[ -f $tmp.out.0 ] && cat $tmp.out.0 >>$seq.full echo "out.1 ..." >>$seq.full -cat $tmp.out.1 >>$seq.full +[ -f $tmp.out.1 ] && cat $tmp.out.1 >>$seq.full echo echo "After ..." ls $tmp | sed -f $tmp/sed | LC_COLLATE=POSIX sort | tee $tmp.after +echo "after ..." >>$seq.full +ls -l $tmp >>$seq.full echo echo "Differences ..." diff --git a/183 b/183 index 8bc85a9..8f5e455 100755 --- a/183 +++ b/183 @@ -195,19 +195,18 @@ fi sleep 2 pmnewlog -p $pid $tmp 2>&1 \ +| tee -a $seq.full \ | _filter \ | sed \ -e "/\.save/s/.*/-- ps line removed --/" \ - -e "s/$pid/PID/" \ - -e '/kill/s/: line [0-9][0-9]*:/:/' \ -e '/^kill:.*Not owner/s/Not owner/Operation not permitted/' \ -e '/.*: kill:.*Not owner/s/Not owner/Operation not permitted/' \ + -e 's/.*kill:.*Operation not permitted/KILL: Operation not permitted/' \ -e '/to get logging state/d' \ -e '/errors from talking/d' \ -e '/continuing/d' \ -e '/Reason: Metric not supported by this version/d' \ - -e '/^$/d' \ - -e 's/kill: PID: p/P/' + -e '/^$/d' ./sudo kill -INT $pid diff --git a/183.out.linux b/183.out.linux index 93c96d4..6019411 100644 --- a/183.out.linux +++ b/183.out.linux @@ -70,8 +70,8 @@ Most likely this pmlogger instance is inactive. Sorry, but this is fatal. No new pmlogger instance has been started. === wrong uid to kill pmlogger === -PCP_BINADM_DIR/pmnewlog: kill: (PID) - Operation not permitted -PCP_BINADM_DIR/pmnewlog: kill: (PID) - Operation not permitted -PCP_BINADM_DIR/pmnewlog: kill: (PID) - Operation not permitted +KILL: Operation not permitted +KILL: Operation not permitted +KILL: Operation not permitted failed! Sorry, but this is fatal. No new pmlogger instance has been started. diff --git a/202 b/202 index 878ef6a..4f6465a 100755 --- a/202 +++ b/202 @@ -15,10 +15,13 @@ echo "QA output created by $seq" tmp=/tmp/$$ trap "rm -f $tmp.*; exit" 0 1 2 3 15 +#debug# tmp=`pwd`/tmp +rm -f $tmp.* $seq.full _filter() { pmdumplog $1 \ + | tee -a $seq.full \ | $PCP_AWK_PROG ' /\/ { mark++; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { rec++ } @@ -34,17 +37,23 @@ END { printf "%d records",rec # real QA test starts here rm -f $tmp.A.* -echo "log mandatory on 20 msec sample.milliseconds" \ -| pmlogger -s 4 $tmp.A >/dev/null 2>&1 +echo "log mandatory on 40 msec sample.milliseconds" \ +| pmlogger -s 4 -l $tmp.log $tmp.A >>$seq.full 2>&1 echo echo log.A +cat $tmp.log >>$seq.full +ls -l $tmp.A.* >>$seq.full +pmdumplog -l $tmp.A >>$seq.full _filter $tmp.A rm -f $tmp.B.* -echo "log mandatory on 25 msec sample.milliseconds" \ -| pmlogger -s 6 $tmp.B >/dev/null 2>&1 +echo "log mandatory on 50 msec sample.milliseconds" \ +| pmlogger -s 6 -l $tmp.log $tmp.B >>$seq.full 2>&1 echo echo log.B +cat $tmp.log >>$seq.full +ls -l $tmp.B.* >>$seq.full +pmdumplog -l $tmp.A >>$seq.full _filter $tmp.B rm -f $tmp.C.* @@ -62,7 +71,7 @@ cat $tmp.A.stamp $tmp.B.stamp \ echo echo "pmval [no interpolate] ..." pmval -U $tmp.C sample.milliseconds 2>&1 \ -| tee $seq.full \ +| tee -a $seq.full \ | $PCP_AWK_PROG ' /suspended/ { mark++; next } /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\./ { rec++ } diff --git a/282 b/282 index 820d049..1449856 100755 --- a/282 +++ b/282 @@ -94,6 +94,8 @@ _poke_pmcd() -e 's/\(install the pcp.sw.base\) .*/\1 ... PCP 2.0 or later .../' \ -e 's/.*\(consult PMLOGGER.CHECK(1), else\)/ ... \1/' \ -e '/root.*.PCP_BINADM_DIR.pmcd/s/.*/-- ps output line --/' \ + -e '/^failed (status=1)/d' \ + -e '/^Waiting for PMCD/s/\.\.\.[. ]*$/DOTS/' \ -e '/^$/d' can_wait=5 @@ -167,7 +169,7 @@ _save_setup() { for file in $PCP_PMCDCONF_PATH $SYSPMDA \ $PCP_PMCD_PROG \ - $CHECK $PCP_VAR_DIR/config/pmlogger/control \ + $CHECK $PCP_PMLOGGERCONTROL_PATH \ $PCP_PMLOGGEROPTIONS_PATH do [ -f $file.$$ ] && $sudo rm -f $file.$$ @@ -184,7 +186,7 @@ _cleanup() echo "Restore the state of the universe ..." for file in $PCP_PMCDCONF_PATH $SYSPMDA \ $PCP_PMCD_PROG \ - $CHECK $PCP_VAR_DIR/config/pmlogger/control \ + $CHECK $PCP_PMLOGGERCONTROL_PATH \ $PCP_PMLOGGEROPTIONS_PATH do [ -f $file.$$ ] && $sudo mv $file.$$ $file @@ -289,7 +291,7 @@ End-of-File echo echo "=== expect error: pmlogger/control moved, so no pmlogger ===" - $sudo rm -f $PCP_VAR_DIR/config/pmlogger/control + $sudo rm -f $PCP_PMLOGGERCONTROL_PATH _poke_pmcd_n_logger if [ $PCP_PLATFORM = irix ] @@ -299,20 +301,20 @@ End-of-File # echo echo "=== expect warning: host not in pmlogger/control, so initialize ===" - $sudo rm -f $PCP_VAR_DIR/config/pmlogger/control - sed -e "/LOCALHOSTNAME/d" -e "/`hostname`/d" <$PCP_VAR_DIR/config/pmlogger/control.$$ >$tmp.out - $sudo cp $tmp.out $PCP_VAR_DIR/config/pmlogger/control + $sudo rm -f $PCP_PMLOGGERCONTROL_PATH + sed -e "/LOCALHOSTNAME/d" -e "/`hostname`/d" <$PCP_PMLOGGERCONTROL_PATH.$$ >$tmp.out + $sudo cp $tmp.out $PCP_PMLOGGERCONTROL_PATH sleepy=true _poke_pmcd_n_logger sleepy=false # added by mg - $sudo cp $PCP_VAR_DIR/config/pmlogger/control.$$ $PCP_VAR_DIR/config/pmlogger/control + $sudo cp $PCP_PMLOGGERCONTROL_PATH.$$ $PCP_PMLOGGERCONTROL_PATH echo echo "=== expect pmlogger connect failure: same case, but pmlogger.options is bogus ===" - $sudo rm -f $PCP_VAR_DIR/config/pmlogger/control - sed -e "/LOCALHOSTNAME/d" -e "/`hostname`/d" <$PCP_VAR_DIR/config/pmlogger/control.$$ >$tmp.out - $sudo cp $tmp.out $PCP_VAR_DIR/config/pmlogger/control + $sudo rm -f $PCP_PMLOGGERCONTROL_PATH + sed -e "/LOCALHOSTNAME/d" -e "/`hostname`/d" <$PCP_PMLOGGERCONTROL_PATH.$$ >$tmp.out + $sudo cp $tmp.out $PCP_PMLOGGERCONTROL_PATH echo "-c /no/such/config" >$tmp.tmp $sudo mv $tmp.tmp $PCP_PMLOGGEROPTIONS_PATH _poke_pmcd_n_logger \ @@ -324,7 +326,7 @@ End-of-File -e '/^total /s/.*/.../' \ -e '/missing$/s/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]/CHECK/' $sudo rm -f $PCP_PMLOGGEROPTIONS_PATH - $sudo cp $PCP_VAR_DIR/config/pmlogger/control.$$ $PCP_VAR_DIR/config/pmlogger/control + $sudo cp $PCP_PMLOGGERCONTROL_PATH.$$ $PCP_PMLOGGERCONTROL_PATH fi # no chkconfig verbose for Linux diff --git a/282.out.3 b/282.out.3 index 1f10d04..f7131b3 100644 --- a/282.out.3 +++ b/282.out.3 @@ -1,12 +1,12 @@ QA output created by 282 === expect error: no $PCP_PMCDCONF_PATH === -Waiting for PMCD to terminate ... +Waiting for PMCD to terminate DOTS $PCP_RC_DIR/pcp: -Warning: PMCD control file $PCP_VAR_DIR/config/pmcd/pmcd.conf is missing, cannot identify PMDAs +Warning: PMCD control file $PCP_PMCDCONF_PATH is missing, cannot identify PMDAs to be terminated. $PCP_RC_DIR/pcp: -Error: PMCD control file $PCP_VAR_DIR/config/pmcd/pmcd.conf is missing, cannot start PMCD. +Error: PMCD control file $PCP_PMCDCONF_PATH is missing, cannot start PMCD. === probe pmcd: pmprobe: Cannot connect to PMCD on host "HOST": Connection refused === simple case, no frills, no errors === @@ -20,16 +20,17 @@ $PCP_RC_DIR/pcp: Error: You must be root (uid 0) to start or stop the Performance Co-Pilot PMCD. === probe pmcd: OK === start again === -Waiting for PMCD to terminate ... +Waiting for PMCD to terminate DOTS Performance Co-Pilot starting PMCD (logfile is $PCP_LOG_DIR/pmcd.log) ... Performance Co-Pilot starting archive loggers ... === probe pmcd: OK === probe pmlogger: OK === expect 2 x connect failure: pmcd is true(1), so hard for pmlogger === -Waiting for PMCD to terminate ... +Waiting for PMCD to terminate DOTS Performance Co-Pilot starting PMCD (logfile is $PCP_LOG_DIR/pmcd.log) ... Performance Co-Pilot starting archive loggers ... +$PCP_RC_DIR/pcp: pmcd_wait failed: exit status: 2 === probe pmcd: pmprobe: Cannot connect to PMCD on host "HOST": Connection refused === probe pmlogger: Unable to connect to primary pmlogger at HOST: Connection refused === start again === @@ -38,7 +39,7 @@ Performance Co-Pilot starting archive loggers ... === probe pmcd: OK === probe pmlogger: OK === expect difficulty terminating pmcd ... it has been sent a SIGSTOP === -Waiting for PMCD to terminate ........... +Waiting for PMCD to terminate DOTS Process ... -- ps output line -- $PCP_RC_DIR/pcp: Warning: Forcing PMCD to terminate! @@ -47,7 +48,7 @@ Performance Co-Pilot starting archive loggers ... === probe pmcd: OK === expect warning: PMLOGGER.CHECK moved, so no pmlogger === -Waiting for PMCD to terminate ... +Waiting for PMCD to terminate DOTS Performance Co-Pilot starting PMCD (logfile is $PCP_LOG_DIR/pmcd.log) ... $PCP_RC_DIR/pcp: Warning: Performance Co-Pilot installation is incomplete (at least the @@ -57,11 +58,11 @@ Warning: Performance Co-Pilot installation is incomplete (at least the === probe pmlogger: Unable to connect to primary pmlogger at HOST: Connection refused === expect error: pmlogger/control moved, so no pmlogger === -Waiting for PMCD to terminate ... +Waiting for PMCD to terminate DOTS Performance Co-Pilot starting PMCD (logfile is $PCP_LOG_DIR/pmcd.log) ... Performance Co-Pilot starting archive loggers ... $PCP_RC_DIR/pcp: -Error: PCP archive logger control file $PCP_VAR_DIR/config/pmlogger/control +Error: PCP archive logger control file $PCP_PMLOGGERCONTROL_PATH is missing! Cannot start any Performance Co-Pilot archive logger(s). === probe pmcd: OK === probe pmlogger: Unable to connect to primary pmlogger at HOST: Connection refused diff --git a/338 b/338 index 7a2d063..04a325f 100755 --- a/338 +++ b/338 @@ -56,7 +56,6 @@ END { if ( eatlines ) { -e "s;$tmp;TMP;g" \ -e "s/`hostname`/HOST/g" \ -e "s/`hostname | sed -e 's/\..*//'`/HOST/g" \ - -e '/Possibly a daylight saving change/d' \ -e '/\/var\/adm\/pcplog\/NOTICES/d' \ | $PCP_AWK_PROG ' /-rw-r--r--/ { print $1,"...",$5,"...",$9; next } @@ -94,9 +93,12 @@ do # now_hr=`pmdate %H` hra=`expr 3 - $now_hr` + [ "$hra" -ge 0 ] && hra="+$hra" hrb=`expr 5 - $now_hr` + [ "$hrb" -ge 0 ] && hrb="+$hrb" now_min=`pmdate %M` min=`expr 10 - $now_min` + [ "$min" -ge 0 ] && min="+$min" namea=`pmdate -${day}d ${hra}H ${min}M $fmt.%H.%M` nameb=`pmdate -${day}d ${hrb}H ${min}M $fmt.%H.%M` yesterday=`pmdate -1d ${hrb}H ${min}M $fmt` diff --git a/530 b/530 index 29b651d..73487b6 100755 --- a/530 +++ b/530 @@ -2,8 +2,8 @@ # PCP QA Test No. 530 # $Revision: 1.13 $ # pmlogger_daily ... do you work at all? -# dual of 314 ... this is the PCP 2.1 version # +# OLD VERSION for YYDDMM style naming convention # # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. # @@ -11,25 +11,6 @@ owner=kenmcd seq=`basename $0` -# Because pmlogger_daily is way too clever to use the same criteria -# for deciding which logs to merge and which to cull, we have to have -# QA output in 3 different times of the day - -case "`date +%H`" in -00) - # just after midnight - rm -f $seq.out && ln $seq.out.00-01 $seq.out || exit 1 - ;; -01) - # just after 1am - rm -f $seq.out && ln $seq.out.01-02 $seq.out || exit 1 - ;; -*) - # any other time of the day - rm -f $seq.out && ln $seq.out.02-24 $seq.out || exit 1 - ;; -esac - echo "QA output created by $seq" # check for new version ... may need -o to force "old style" behaviour @@ -74,7 +55,6 @@ END { if ( eatlines ) { -e "s;$tmp;TMP;g" \ -e "s/`hostname`/HOST/g" \ -e "s/`hostname | sed -e 's/\..*//'`/HOST/g" \ - -e '/Possibly a daylight saving change/d' \ -e '/\/var\/adm\/pcplog\/NOTICES/d' \ | $PCP_AWK_PROG ' /-rw-r--r--/ { print $1,"...",$5,"...",$9; next } @@ -103,36 +83,39 @@ do echo >$tmp/sed for day in 0 1 2 3 4 5 do - for fmt in %Y%m%d %y%m%d + fmt=%y%m%d + # aiming for the time to be 03:10 and 05:10 on each day, + # even if that is ahead of NOW for today + # + now_hr=`pmdate %H` + hra=`expr 3 - $now_hr` + [ "$hra" -ge 0 ] && hra="+$hra" + hrb=`expr 5 - $now_hr` + [ "$hrb" -ge 0 ] && hrb="+$hrb" + now_min=`pmdate %M` + min=`expr 10 - $now_min` + [ "$min" -ge 0 ] && min="+$min" + namea=`pmdate -${day}d ${hra}H ${min}M $fmt.%H.%M` + nameb=`pmdate -${day}d ${hrb}H ${min}M $fmt.%H.%M` + yesterday=`pmdate -1d ${hrb}H ${min}M $fmt` + stampa=`echo $namea | sed -e 's/\.//g'` + stampb=`echo $nameb | sed -e 's/\.//g'` + echo "s/$namea/NOW-$day.03.10/g" >>$tmp/sed + echo "s/$nameb/NOW-$day.05.10/g" >>$tmp/sed + + for ext in 0 index meta do - namea=`pmdate -${day}d -1H $fmt.%H.%M` - nameb=`pmdate -${day}d -2H $fmt.%H.%M` - stampa=`echo $namea | sed -e 's/\.//g'` - stampb=`echo $nameb | sed -e 's/\.//g'` - if [ "$fmt" = "%Y%m%d" ] - then - echo "s/$namea/NOW-$day.-1H.MM/g" >>$tmp/sed - echo "s/$nameb/NOW-$day.-2H.MM/g" >>$tmp/sed - else - echo "s/$namea/NOW-$day-old.-1H.MM/g" >>$tmp/sed - echo "s/$nameb/NOW-$day-old.-2H.MM/g" >>$tmp/sed - fi - - for ext in 0 index meta - do - cp src-oss/arch_a.$ext $tmp/$namea.$ext - touch -t $stampa $tmp/$namea.$ext - cp src-oss/arch_b.$ext $tmp/$nameb.$ext - touch -t $stampb $tmp/$nameb.$ext - done + cp src-oss/arch_a.$ext $tmp/$namea.$ext + touch -t $stampa $tmp/$namea.$ext + cp src-oss/arch_b.$ext $tmp/$nameb.$ext + touch -t $stampb $tmp/$nameb.$ext done done ls -lt $tmp >>$seq.full echo "s/NOW-0/TODAY/g" >>$tmp/sed echo "s/NOW-1/YESTERDAY/g" >>$tmp/sed - echo "s/`pmdate %Y%m%d`/TODAY/g" >>$tmp/sed - echo "s/`pmdate -1d %Y%m%d`/YESTERDAY/g" >>$tmp/sed - echo "s/`pmdate -1d %y%m%d`/YESTERDAY-old/g" >>$tmp/sed + echo "s/`pmdate %y%m%d`/TODAY/g" >>$tmp/sed + echo "s/$yesterday/YESTERDAY/g" >>$tmp/sed echo >$tmp/control '$version=1.1 LOCALHOSTNAME n n '"$tmp"' ./config' @@ -140,15 +123,18 @@ LOCALHOSTNAME n n '"$tmp"' ./config' echo echo "=== [${verbose+verbose}] regular show ===" echo "=== [${verbose+verbose}] regular show ===" >>$seq.full - pmlogger_daily $oflag -c $tmp/control -k 2 $verbose 2>&1 \ + pmlogger_daily $oflag -c $tmp/control -k 3 $verbose 2>&1 \ | _filter ls $tmp | sed -f $tmp/sed | LC_COLLATE=POSIX sort echo echo "=== [${verbose+verbose}] nothing to do but cull some more ===" echo "=== [${verbose+verbose}] nothing to do but cull some more ===" >>$seq.full - rm -f $tmp/`pmdate -${day}d %Y%m%d`.* - pmlogger_daily $oflag -c $tmp/control -k 1 $verbose 2>&1 \ + for ext in 0 index meta + do + mv $tmp/$yesterday.$ext $tmp/save.$ext + done + pmlogger_daily $oflag -c $tmp/control -k 2 $verbose 2>&1 \ | _filter ls $tmp | sed -f $tmp/sed | LC_COLLATE=POSIX sort @@ -157,10 +143,10 @@ LOCALHOSTNAME n n '"$tmp"' ./config' echo "=== [${verbose+verbose}] error, output already exists ===" >>$seq.full for ext in 0 index meta do - cp src-oss/arch_a.$ext $tmp/`pmdate -1d %Y%m%d`.17.18.$ext - cp src-oss/arch_b.$ext $tmp/`pmdate -1d %y%m%d`.18.19.$ext + cp src-oss/arch_a.$ext $tmp/$yesterday.17.18.$ext + mv $tmp/save.$ext $tmp/$yesterday.$ext done - pmlogger_daily $oflag -c $tmp/control -k 1 $verbose 2>&1 \ + pmlogger_daily $oflag -c $tmp/control -k 2 $verbose 2>&1 \ | _filter ls $tmp | sed -f $tmp/sed | LC_COLLATE=POSIX sort diff --git a/530.out b/530.out index eadf0c4..4d0ba4d 100644 --- a/530.out +++ b/530.out @@ -3,30 +3,24 @@ QA output created by 530 === [] regular show === PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" [TMP/control:2] ... logging for host "HOST" unchanged -NOW-2-old.-1H.MM.0 -NOW-2-old.-1H.MM.index -NOW-2-old.-1H.MM.meta -NOW-2-old.-2H.MM.0 -NOW-2-old.-2H.MM.index -NOW-2-old.-2H.MM.meta -NOW-2.-1H.MM.0 -NOW-2.-1H.MM.index -NOW-2.-1H.MM.meta -NOW-2.-2H.MM.0 -NOW-2.-2H.MM.index -NOW-2.-2H.MM.meta -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +NOW-3.03.10.0 +NOW-3.03.10.index +NOW-3.03.10.meta +NOW-3.05.10.0 +NOW-3.05.10.index +NOW-3.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta YESTERDAY.0 YESTERDAY.index YESTERDAY.meta @@ -36,22 +30,22 @@ sed === [] nothing to do but cull some more === PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" [TMP/control:2] ... logging for host "HOST" unchanged -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta -YESTERDAY.0 -YESTERDAY.index -YESTERDAY.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta control +save.0 +save.index +save.meta sed === [] error, output already exists === @@ -59,21 +53,18 @@ PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" [TMP/control:2] ... logging for host "HOST" unchanged PMLOGGER.DAILY: Warning: output archive (YESTERDAY) already exists [TMP/control:2] ... skip log merging, culling and compressing for host "HOST" -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY-old.18.19.0 -YESTERDAY-old.18.19.index -YESTERDAY-old.18.19.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta YESTERDAY.0 YESTERDAY.17.18.0 YESTERDAY.17.18.index @@ -91,51 +82,35 @@ PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" [TMP/control:2] ... logging for host "HOST" unchanged Input archives to be merged: - TODAY-old.-2H.MM - TODAY-old.-1H.MM - TODAY.-2H.MM - TODAY.-1H.MM + YESTERDAY.03.10 + YESTERDAY.05.10 Output archive files: --rw-r--r-- ... 537 ... YESTERDAY.meta +-rw-r--r-- ... 455 ... YESTERDAY.meta -rw-r--r-- ... 192 ... YESTERDAY.index --rw-r--r-- ... 1596 ... YESTERDAY.0 +-rw-r--r-- ... 864 ... YESTERDAY.0 Removing input archive files ... done -Archive files older than 2 days being removed ... - NOW-5-old.-2H.MM.0 NOW-5-old.-2H.MM.index NOW-5-old.-2H.MM.meta NOW-5-old.-1H.MM.0 - NOW-5-old.-1H.MM.index NOW-5-old.-1H.MM.meta NOW-4-old.-2H.MM.0 NOW-4-old.-2H.MM.index - NOW-4-old.-2H.MM.meta NOW-4-old.-1H.MM.0 NOW-4-old.-1H.MM.index NOW-4-old.-1H.MM.meta - NOW-3-old.-2H.MM.0 NOW-3-old.-2H.MM.index NOW-3-old.-2H.MM.meta NOW-3-old.-1H.MM.0 - NOW-3-old.-1H.MM.index NOW-3-old.-1H.MM.meta NOW-5.-2H.MM.0 - NOW-5.-2H.MM.index NOW-5.-2H.MM.meta NOW-5.-1H.MM.0 - NOW-5.-1H.MM.index NOW-5.-1H.MM.meta NOW-4.-2H.MM.0 - NOW-4.-2H.MM.index NOW-4.-2H.MM.meta NOW-4.-1H.MM.0 - NOW-4.-1H.MM.index NOW-4.-1H.MM.meta NOW-3.-2H.MM.0 - NOW-3.-2H.MM.index NOW-3.-2H.MM.meta NOW-3.-1H.MM.0 - NOW-3.-1H.MM.index NOW-3.-1H.MM.meta -NOW-2-old.-1H.MM.0 -NOW-2-old.-1H.MM.index -NOW-2-old.-1H.MM.meta -NOW-2-old.-2H.MM.0 -NOW-2-old.-2H.MM.index -NOW-2-old.-2H.MM.meta -NOW-2.-1H.MM.0 -NOW-2.-1H.MM.index -NOW-2.-1H.MM.meta -NOW-2.-2H.MM.0 -NOW-2.-2H.MM.index -NOW-2.-2H.MM.meta -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta +Archive files older than 3 days being removed ... + NOW-5.03.10.0 NOW-5.03.10.index NOW-5.03.10.meta NOW-5.05.10.0 + NOW-5.05.10.index NOW-5.05.10.meta NOW-4.03.10.0 NOW-4.03.10.index + NOW-4.03.10.meta NOW-4.05.10.0 NOW-4.05.10.index NOW-4.05.10.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +NOW-3.03.10.0 +NOW-3.03.10.index +NOW-3.03.10.meta +NOW-3.05.10.0 +NOW-3.05.10.index +NOW-3.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta YESTERDAY.0 YESTERDAY.index YESTERDAY.meta @@ -149,27 +124,26 @@ sed PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" [TMP/control:2] ... logging for host "HOST" unchanged -Archive files older than 1 days being removed ... - NOW-2-old.-2H.MM.0 NOW-2-old.-2H.MM.index NOW-2-old.-2H.MM.meta NOW-2-old.-1H.MM.0 - NOW-2-old.-1H.MM.index NOW-2-old.-1H.MM.meta NOW-2.-2H.MM.0 - NOW-2.-2H.MM.index NOW-2.-2H.MM.meta NOW-2.-1H.MM.0 - NOW-2.-1H.MM.index NOW-2.-1H.MM.meta -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta -YESTERDAY.0 -YESTERDAY.index -YESTERDAY.meta +PMLOGGER.DAILY: Warning: no archives found to merge +Archive files older than 2 days being removed ... + NOW-3.03.10.0 NOW-3.03.10.index NOW-3.03.10.meta NOW-3.05.10.0 + NOW-3.05.10.index NOW-3.05.10.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta control +save.0 +save.index +save.meta sed === [verbose] error, output already exists === @@ -181,21 +155,18 @@ PMLOGGER.DAILY: Error: no pmlogger instance running for host "HOST" PMLOGGER.DAILY: Warning: output archive (YESTERDAY) already exists [TMP/control:2] ... skip log merging, culling and compressing for host "HOST" -YESTERDAY-old.-1H.MM.0 -YESTERDAY-old.-1H.MM.index -YESTERDAY-old.-1H.MM.meta -YESTERDAY-old.-2H.MM.0 -YESTERDAY-old.-2H.MM.index -YESTERDAY-old.-2H.MM.meta -YESTERDAY-old.18.19.0 -YESTERDAY-old.18.19.index -YESTERDAY-old.18.19.meta -YESTERDAY.-1H.MM.0 -YESTERDAY.-1H.MM.index -YESTERDAY.-1H.MM.meta -YESTERDAY.-2H.MM.0 -YESTERDAY.-2H.MM.index -YESTERDAY.-2H.MM.meta +NOW-2.03.10.0 +NOW-2.03.10.index +NOW-2.03.10.meta +NOW-2.05.10.0 +NOW-2.05.10.index +NOW-2.05.10.meta +TODAY.03.10.0 +TODAY.03.10.index +TODAY.03.10.meta +TODAY.05.10.0 +TODAY.05.10.index +TODAY.05.10.meta YESTERDAY.0 YESTERDAY.17.18.0 YESTERDAY.17.18.index diff --git a/532 b/532 index f75b501..0584bc1 100755 --- a/532 +++ b/532 @@ -2,8 +2,7 @@ # PCP QA Test No. 532 # $Revision: 1.16 $ # pmlogger_check with *-xx.* archives and .meta files in subdirs -# (based on 530) -# +# (loosely based on 530 and 338) # # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved. # @@ -11,21 +10,6 @@ owner=kenmcd seq=`basename $0` -# Because pmlogger_daily is way too clever to use the same criteria -# for deciding which logs to merge and which to cull, we have to have -# QA output in 2 different times of the day - -case "`date +%H`" in -00) - # just after midnight - rm -f $seq.out && ln $seq.out.00-01 $seq.out || exit 1 - ;; -*) - # any other time - rm -f $seq.out && ln $seq.out.01-24 $seq.out || exit 1 - ;; -esac - echo "QA output created by $seq" # check for new version ... may need -o to force "old style" behaviour @@ -81,18 +65,31 @@ do for hour in 1 4 16 do [ $day -gt 0 -a $hour -gt 1 ] && continue - - namea=`pmdate -${day}d -${hour}H $fmt.%H.%M` - nameb=`pmdate -${day}d -${hour}H -1M $fmt.%H.%M` - namec=`pmdate -${day}d -${hour}H -2M $fmt.%H.%M` + # aiming for the time to be hour:10, hour:20 and hour:30 on + # each day, even if that is ahead of NOW for today + # + now_hr=`pmdate %H` + hr_set=`expr $hour - $now_hr` + [ "$hr_set" -ge 0 ] && hr_set="+$hr_set" + now_min=`pmdate %M` + min_set10=`expr 10 - $now_min` + [ "$min_set10" -ge 0 ] && min_set10="+$min_set10" + min_set20=`expr 20 - $now_min` + [ "$min_set20" -ge 0 ] && min_set20="+$min_set20" + min_set30=`expr 30 - $now_min` + [ "$min_set30" -ge 0 ] && min_set30="+$min_set30" + namea=`pmdate -${day}d ${hr_set}H ${min_set10}M $fmt.%H.%M` + nameb=`pmdate -${day}d ${hr_set}H ${min_set20}M $fmt.%H.%M` + namec=`pmdate -${day}d ${hr_set}H ${min_set30}M $fmt.%H.%M` + yesterday=`pmdate -1d ${hr_set}H ${min_set10}M $fmt` stampa=`echo $namea | sed -e 's/\.//g'` stampb=`echo $nameb | sed -e 's/\.//g'` stampc=`echo $namec | sed -e 's/\.//g'` nameb=${namea}-00 namec=${namea}-01 - echo "s/$namea/NOW-$day.-${hour}H.MM/g" >>$tmp/sed - echo "s/$nameb/NOW-$day.-${hour}H.MM-00/g" >>$tmp/sed - echo "s/$namec/NOW-$day.-${hour}H.MM-01/g" >>$tmp/sed + echo "s/$namea/NOW-$day.${hour}H.MM/g" >>$tmp/sed + echo "s/$nameb/NOW-$day.${hour}H.MM-00/g" >>$tmp/sed + echo "s/$namec/NOW-$day.${hour}H.MM-01/g" >>$tmp/sed for ext in 0 index meta do @@ -109,12 +106,13 @@ do done done -( cd $tmp; tar cf - *.0 *.meta *.index ) | ( cd $tmp/foo; tar xpf - ) +( cd $tmp; tar cf - *.0 *.meta *.index 2>/dev/null ) \ +| ( cd $tmp/foo; tar xpf - 2>/dev/null ) echo "s/NOW-0/TODAY/g" >>$tmp/sed echo "s/NOW-1/YESTERDAY/g" >>$tmp/sed echo "s/`pmdate %Y%m%d`/TODAY/g" >>$tmp/sed -echo "s/`pmdate -1d %Y%m%d`/YESTERDAY/g" >>$tmp/sed +echo "s/$yesterday/YESTERDAY/g" >>$tmp/sed echo >$tmp/control '$version=1.1 LOCALHOSTNAME n n '"$tmp"' ./config' diff --git a/564 b/564 index 48fa090..41895df 100755 --- a/564 +++ b/564 @@ -58,6 +58,8 @@ cp $tmp.ctl $tmp.relaydir/$FIVEDAYS.meta cp $tmp.ctl $tmp.relaydir/$FIVEDAYS.index cp $tmp.ctl $tmp.relaydir/mumble cp $tmp.ctl $tmp.relaydir/mumble.0 +STAMP=`pmdate -5d %Y%m%d`0010 +touch -t "$STAMP" $tmp.*/$FIVEDAYS.* $tmp.relaydir/mumble* # some archives for five months ago... FIVEMONTHS=`pmdate -5m %Y%m%d.0` @@ -67,6 +69,8 @@ cp $tmp.ctl $tmp.distdir/$FIVEMONTHS.index cp $tmp.ctl $tmp.relaydir/$FIVEMONTHS.0 cp $tmp.ctl $tmp.relaydir/$FIVEMONTHS.meta cp $tmp.ctl $tmp.relaydir/$FIVEMONTHS.index +STAMP=`pmdate -5m %Y%m%d`0010 +touch -t "$STAMP" $tmp.*/$FIVEMONTHS.* # real QA test starts here pmlogger_daily -V -N -x 3 -X bzip2 -c $tmp.ctl | sed \ @@ -74,6 +78,7 @@ pmlogger_daily -V -N -x 3 -X bzip2 -c $tmp.ctl | sed \ -e "s/$FIVEDAYS/FIVEDAYS/g" \ -e "s/$FIVEMONTHS/FIVEMONTHS/g" \ -e "s/$$/PID/g" \ + -e '/Warning: no archives found to merge/d' \ -e "s,/var/tmp,TMP,g" \ -e "s,/tmp,TMP,g" \ diff --git a/check b/check index d612233..4e8ba0c 100755 --- a/check +++ b/check @@ -429,6 +429,7 @@ do continue elif [ ! -f $seq ] then + echo " [not run, missing]" notrun="$notrun $seq" continue else diff --git a/common.filter b/common.filter index 030823c..6eba363 100644 --- a/common.filter +++ b/common.filter @@ -435,6 +435,7 @@ _filter_pcp_start() -e "s;$PCP_RC_DIR/pcp;\$PCP_RC_DIR/pcp;" \ -e "s;$PCP_BINADM_DIR/pmcd;\$PCP_BINADM_DIR/pmcd;" \ -e "s;$PCP_PMCDCONF_PATH;\$PCP_PMCDCONF_PATH;" \ + -e "s;$PCP_PMLOGGERCONTROL_PATH;\$PCP_PMLOGGERCONTROL_PATH;" \ -e "s;$PCP_VAR_DIR/;\$PCP_VAR_DIR/;" \ -e "s;/usr/etc/pmcd;\$PCP_BINADM_DIR/pmcd;" \ -e '/^Starting PCP$/d' \ diff --git a/group b/group index 5ca7870..f1e2144 100644 --- a/group +++ b/group @@ -910,3 +910,4 @@ dmf pcpqa 1234 pmchart local sgi 1236 #935639 pmchart local sgi 1237 pmchart pmgadgets local pmview sgi +338 logutil local pmlogextract local oss diff --git a/owner b/owner index 8dae782..8916e24 100644 --- a/owner +++ b/owner @@ -665,3 +665,4 @@ 1234 pcpqa 1236 pcpqa 1237 pcpqa +338 pcpqa diff --git a/show-me b/show-me index d79b2a0..a1fbd91 100755 --- a/show-me +++ b/show-me @@ -73,10 +73,10 @@ then # local and really me QA_DIR_DEFAULT=`pwd` else - QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST /bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` + QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST "/bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` fi else - QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST /bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` + QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST "/bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` fi if [ "$QA_DIR_DEFAULT" = "" ] then