This file is indexed.

/var/lib/pcp/testsuite/519 is in pcp-testsuite 4.0.1-1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#! /bin/sh
# PCP QA Test No. 519
# exercise new action args (no limit of 2) for pmie ... caused
# pmie to dump core initially
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#
#
# Solaris Note (OpenIndiana specifically)
#
# Need to edit /etc/syslog.conf and add these lines
# # for PCP QA
# daemon.info                     /var/log/syslog
#
# then kill -HUP <pid-for-syslogd>
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

rm -f $seq.out
case $PCP_PLATFORM
in
    linux)
	ln $seq.$PCP_PLATFORM $seq.out || exit 1
	SYSLOG_OPT='"-p daemon.info"'
	;;
    darwin)
	ln $seq.linux $seq.out || exit 1
	SYSLOG_OPT=''
	;;
    solaris)
	ln $seq.linux $seq.out || exit 1
	SYSLOG_OPT='"-p daemon.info"'
	;;
    *)
	_notrun "Need qualified output for $PCP_PLATFORM"
	;;
esac

_filter()
{
    # other syslog timestamp variants ...
    # 2014-09-15T10:44:40.269104+10:00
    sed \
	-e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/TIMESTAMP/' \
	-e 's/[A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/TIMESTAMP/' \
	-e 's/20[0-9][0-9]-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9]*/TIMESTAMP/' \
	-e 's/STAMP[-+][0-1][0-9]:[0-5][0-9]/STAMP/' \
	-e "s/`hostname`/HOST/" \
	-e "s/`hostname | sed -e 's/\..*//'`/HOST/" \
	-e 's/[0-9][A-Z]:HOST/HOST/' \
	-e 's/\(pmie[([]\)[0-9][0-9]*/\1PID/' \
	-e 's/ \[ID [0-9][0-9]* daemon.info]//'
}

status=0	# success is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

PMCD_CONNECT_TIMEOUT=60
PMCD_REQUEST_TIMEOUT=60
export PMCD_CONNECT_TIMEOUT PMCD_REQUEST_TIMEOUT

eval `./getpmcdhosts -n 2 -L | sed -e 's/ / other2=/' -e 's/^/other1=/'`
if [ -z "$other1" ]
then
    _notrun "Cannot find first remote host running pmcd"
fi
if [ -z "$other2" ]
then
    _notrun "Cannot find second remote host running pmcd"
    exit
fi
echo "other1=$other1" >>$here/$seq.full
echo "other2=$other2" >>$here/$seq.full

# real QA test starts here
$sudo rm -f core* $seq.core*

cat <<End-of-File | pmie -T 10sec >$tmp.out 2>$tmp.err
// use hosts not in QA circus
//

hosts = ":'$other1' :'$other2'";

some_host (
  some_inst (
    ( 100 * filesys.used \$hosts / filesys.capacity \$hosts ) > 0 ) )
-> shell 15 "src/show-args -c SYSMON -t PERF_INFO_SYSTEM -m 'file system over half-full" "\n%h:[%i] %v% " "'"
 & syslog 15 $SYSLOG_OPT "PCP QA $seq - please ignore - ..." " %h:[%i] %v% ";

End-of-File

# hostnames $other1 and $other2 may contain domain name components,
# but pmie may just report the hostname
#
o1=`echo $other1 | sed -e 's/\..*//'`
o2=`echo $other2 | sed -e 's/\..*//'`
echo "pmie output ..."
sed <$tmp.out \
    -e "/^$other1:/d" \
    -e "/^$o1:/d" \
    -e "/^$other2:/d" \
    -e "/^$o2:/d" \
#
egrep "^($other1|$o1):" <$tmp.out >/dev/null && echo "... at least one line for other1 host"
egrep "^($other2|$o2)*:" <$tmp.out >/dev/null && echo "... at least one line for other2 host"

echo
echo "pmie stderr ..."
_filter <$tmp.err

# may be using journalctl, and so no syslog in the file system
#
if `which journalctl >/dev/null 2>&1`
then
    echo "Using journalctl ..." >>$seq.full
    have_journalctl=true
else
    have_journalctl=false
    SYSLOG=''
    for f in /var/adm/SYSLOG /var/log/daemon.log /var/log/messages /var/log/syslog /var/log/system.log
    do
	if [ -f $f ]
	then
	    SYSLOG=$f
	    break
	fi
    done
    if [ -z "$SYSLOG" ]
    then
	echo "Arrgh! Cannot find your syslog file"
	exit 1
    fi
fi

echo
echo "SYSLOG ..."

if $have_journalctl
then
    # be careful ... --boot not supported in all versions, -l not
    # supported in all versions
    $sudo journalctl -b --full | tail -100 >$tmp.syslog
else
    $sudo tail -100 $SYSLOG >$tmp.syslog
fi

sed <$tmp.syslog -n '/PCP QA '"$seq"' - please ignore/s/\.\.\..*/.../p' \
| _filter \
| sort -u

echo >>$seq.full
if $have_journalctl
then
    echo "=== tail journalctl -b --full ===" >>$seq.full
else
    echo "=== tail SYSLOG ($SYSLOG) ===" >>$seq.full
fi
echo "`wc -l <$tmp.syslog | sed -e 's/ //g'` lines ... expect 100" >>$seq.full
cat $tmp.syslog >>$seq.full

_check_core

exit