52 lines
952 B
Bash
Executable File
52 lines
952 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# check_forensic <forensic log file>
|
|
|
|
# check the forensic log for requests that did not complete
|
|
# output the request log for each one
|
|
|
|
F=$1
|
|
|
|
temp_create_method=file
|
|
if test -f `which mktemp`; then
|
|
temp_create_method=mktemp
|
|
elif test -f `which tempfile`; then
|
|
temp_create_method=tempfile
|
|
fi
|
|
|
|
create_temp()
|
|
{
|
|
prefix=$1
|
|
case "$temp_create_method" in
|
|
file)
|
|
name="/tmp/$1.$$"
|
|
;;
|
|
mktemp)
|
|
name=`mktemp -t $1.XXXXXX`
|
|
;;
|
|
tempfile)
|
|
name=`tempfile --prefix=$1`
|
|
;;
|
|
*)
|
|
echo "$0: Cannot create temporary file"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
create_temp fcall
|
|
all=$name
|
|
create_temp fcin
|
|
in=$name
|
|
create_temp fcout
|
|
out=$name
|
|
trap "rm -f -- \"$all\" \"$in\" \"$out\";" 0 1 2 3 13 15
|
|
|
|
cut -f 1 -d '|' $F > $all
|
|
grep ^+ < $all | cut -c2- | sort > $in
|
|
grep -- ^- < $all | cut -c2- | sort > $out
|
|
|
|
# use -i instead of -I for GNU xargs
|
|
join -v 1 $in $out | xargs -I xx egrep "^\\+xx" $F
|
|
exit 0
|