blob: 64c21ed123ac3a9184720fa85d60943a7e7d5a68 (
plain)
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
|
#! /bin/sh
# script to trick the build daemons and output something, if there is
# still test/build activity
# $1: primary file to watch. if there is activity on this file, we do nothing
# $2+: files to watch to look for activity despite no output in $1
# if the files are modified or are newly created, then the message
# is printed on stdout.
# if nothing is modified, don't output anything (so the buildd timeout
# hits).
pidfile=logwatch.pid
timeout=3600
message='\nlogwatch still running\n'
usage()
{
echo >&2 "usage: `basename $0` [-p <pidfile>] [-t <timeout>] [-m <message>]"
echo >&2 " <logfile> [<logfile> ...]"
exit 1
}
while [ $# -gt 0 ]; do
case $1 in
-p)
pidfile=$2
shift
shift
;;
-t)
timeout=$2
shift
shift
;;
-m)
message="$2"
shift
shift
;;
-*)
usage
;;
*)
break
esac
done
[ $# -gt 0 ] || usage
logfile="$1"
shift
otherlogs="$@"
cleanup()
{
rm -f $pidfile
exit 0
}
#trap cleanup 0 1 3 15
echo $$ > $pidfile
update()
{
_logvar=$1
_othervar=$2
# logfile may not exist yet
if [ -r $logfile ]; then
_logtail="`tail -10 $logfile | md5sum` $f"
else
_logtail="does not exist: $logfile"
fi
eval $_logvar="'$_logtail'"
_othertails=''
for f in $otherlogs; do
if [ -r $f ]; then
_othertails="$_othertails `tail -10 $f | md5sum` $f"
else
_othertails="$_othertails does not exist: $f"
fi
done
eval $_othervar="'$_othertails'"
}
update logtail othertails
while true; do
sleep $timeout
update newlogtail newothertails
if [ "$logtail" != "$newlogtail" ]; then
# there is still action in the primary logfile. do nothing.
logtail="$newlogtail"
elif [ "$othertails" != "$newothertails" ]; then
# there is still action in the other log files, so print the message
/bin/echo -e $message
othertails="$newothertails"
else
# nothing changed in the other log files. maybe a timeout ...
:
fi
done
|