diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/338 | |
download | pcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/338')
-rwxr-xr-x | qa/338 | 157 |
1 files changed, 157 insertions, 0 deletions
@@ -0,0 +1,157 @@ +#! /bin/sh +# PCP QA Test No. 338 +# pmlogger_daily ... do you work at all? +# +# NEW VERSION for YYYYDDMM style naming convention (see also 530) +# +# NOTE - THIS TEST WILL FAIL IF RUN IN THE FIRST 5 MINUTES AFTER +# MIDNIGHT - c'est la vie, I'm afraid. +# +# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. +# + +seq=`basename $0` +echo "QA output created by $seq" + +# get standard environment, filters and checks +. ./common.product +. ./common.filter +. ./common.check + +_filter() +{ + tee -a $seq.full \ + | $PCP_AWK_PROG ' +/^Archive files older than/ { eatlines=1; longone=" "; print; next; } +eatlines { if ( match ($0, "^ ") ) { + for ( i=1; i <=NF; i++ ) { + longone = sprintf ("%s %s",longone,$i); + } + } else { + print longone | "fmt -76"; + close ("fmt -76"); + longone = ""; eatlines = 0; + print; + } + next; + } +END { if ( eatlines ) { + print longone | "fmt -76"; + close ("fmt -76"); + } + } + { print }' \ + | sed -f $tmp/sed \ + | sed \ + -e "s;$tmp;TMP;g" \ + -e "s/`hostname`/HOST/g" \ + -e "s/localhost/HOST/g" \ + -e "s/local:/HOST/g" \ + -e "s/`hostname | sed -e 's/\..*//'`/HOST/g" \ + -e '/\/var\/adm\/pcplog\/NOTICES/d' \ + -e 's/-rw-r--r--\./-rw-r--r--/' \ + | $PCP_AWK_PROG ' +/-rw-r--r--/ { print $1,"...",$5,"...",$9; next } + { print }' \ + | _filter_cron_scripts +} + +status=1 # failure is the default! +trap "cd $here; $sudo rm -rf $tmp; $sudo mv $PCP_LOG_DIR/NOTICES.$$ $PCP_LOG_DIR/NOTICES; exit \$status" 0 1 2 3 15 +$sudo rm -rf $tmp + +# real QA test starts here + +# take explicit control of the umask +# +umask 022 + +$sudo mv $PCP_LOG_DIR/NOTICES $PCP_LOG_DIR/NOTICES.$$ +rm -f $seq.full +mkdir $tmp + +# real QA test starts here +unset verbose +for loop in 1 2 +do + echo >$tmp/sed + for day in 0 1 2 3 4 5 + do + fmt=%Y%m%d + # aiming for the time to be 00:02 and 00:04 on each day, + # even if that is ahead of NOW for today + # + now_hr=`pmdate %H` + hour=-$now_hr + now_min=`pmdate %M` + min2=`expr 2 - $now_min` + [ "$min2" -ge 0 ] && min2="+$min2" + min4=`expr 4 - $now_min` + [ "$min4" -ge 0 ] && min4="+$min4" + namea=`pmdate -${day}d ${hour}H ${min2}M $fmt.%H.%M` + nameb=`pmdate -${day}d ${hour}H ${min4}M $fmt.%H.%M` + yesterday=`pmdate -1d ${hour}H ${min2}M $fmt` + stampa=`echo $namea | sed -e 's/\.//g'` + stampb=`echo $nameb | sed -e 's/\.//g'` + echo "s/$namea/NOW-$day.00.02/g" >>$tmp/sed + echo "s/$nameb/NOW-$day.00.04/g" >>$tmp/sed + + for ext in 0 index meta + do + cp src/arch_a.$ext $tmp/$namea.$ext + touch -t $stampa $tmp/$namea.$ext + cp src/arch_b.$ext $tmp/$nameb.$ext + touch -t $stampb $tmp/$nameb.$ext + done + done + 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/$yesterday/YESTERDAY/g" >>$tmp/sed + + echo >$tmp/control '$version=1.1 +LOCALHOSTNAME n n '"$tmp"' ./config' + + cat $tmp/sed >>$seq.full + echo >>$seq.full + + echo + echo "=== [${verbose+verbose}] regular show ===" + echo "=== [${verbose+verbose}] regular show ===" >>$seq.full + $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 3 $verbose 2>&1 \ + | _filter + ls -lt $tmp >>$seq.full + ls $tmp | sed -f $tmp/sed | tee -a $seq.full | 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 + for ext in 0 index meta + do + mv $tmp/$yesterday.$ext $tmp/save.$ext + done + $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 2 $verbose 2>&1 \ + | _filter + ls -lt $tmp >>$seq.full + ls $tmp | sed -f $tmp/sed | tee -a $seq.full | LC_COLLATE=POSIX sort + + echo + echo "=== [${verbose+verbose}] error, output already exists ===" + echo "=== [${verbose+verbose}] error, output already exists ===" >>$seq.full + for ext in 0 index meta + do + cp src/arch_a.$ext $tmp/$yesterday.17.18.$ext + mv $tmp/save.$ext $tmp/$yesterday.$ext + done + $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 2 $verbose 2>&1 \ + | _filter + ls -lt $tmp >>$seq.full + ls $tmp | sed -f $tmp/sed | tee -a $seq.full | LC_COLLATE=POSIX sort + + verbose=-V + rm -f $tmp/* +done + +# all done +status=0 +exit |