blob: e5d1f6238982410334dcae9573d9ab8990d9f0c7 (
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
|
#!/bin/sh
## Copyright (C) 1997-2001 by Henry Kilmer.
## All rights reserved.
##
## This software may be freely copied, modified and redistributed without
## fee for non-commerical purposes provided that this copyright notice is
## preserved intact on all copies and modified copies.
##
## There is no warranty or other guarantee of fitness of this software.
## It is provided solely "as is". The author(s) disclaim(s) all
## responsibility and liability with respect to this software's usage
## or its effect upon hardware, computer systems, other software, or
## anything else.
##
# do diffs for each of the diff groups ($LIST_OF_GROUPS) from <BASEDIR>/bin/env
##
ENVFILE="`dirname $0`/env"
. $ENVFILE
TMPDIR=${TMPDIR:=/tmp}; export TMPDIR
if [ $# -ge 1 ] ; then
LIST_OF_GROUPS="$*"; export LIST_OF_GROUPS
elif [ "$LIST_OF_GROUPS" = "" ] ; then
echo "LIST_OF_GROUPS is empty in $ENVFILE"
exit 1
fi
if [ ! -d $BASEDIR/logs ] ; then
mkdir $BASEDIR/logs
fi
for GROUP in $LIST_OF_GROUPS
do
LOCKFILE=$TMPDIR/.$GROUP.run.lock
(
echo starting: `date`
echo
if [ -f $LOCKFILE ]
then
echo hourly config diffs failed: $LOCKFILE exists
ls -l $LOCKFILE
# Send email if the lock file is old.
if [ "X$LOCKTIME" = "X" ] ; then
LOCKTIME=4
fi
@PERLV@ -e "\$t = (stat(\"$LOCKFILE\"))[9]; print \"OLD\\n\" if (time() - \$t >= $LOCKTIME*60*60);" > $TMPDIR/.$GROUP.old
if [ -s $TMPDIR/.$GROUP.old ]
then
(
echo "To: @MAILPLUS@admin-$GROUP"
echo "Subject: rancid hung - $GROUP"
echo "Precedence: bulk"
echo ""
cat <<END
rancid $GROUP hung on `hostname`? Old lockfile still exists:
`ls -l $LOCKFILE`
END
) | sendmail -t
fi
rm -f $TMPDIR/.$GROUP.old
else
trap 'rm -fr $LOCKFILE;exit 1' 1 2 3 6 10 11 15
touch $LOCKFILE
if [ $? -eq 0 ] ; then
control_rancid $GROUP
rm -f $LOCKFILE
fi
trap '' 1 2 3 6 10 11 15
fi
echo
echo ending: `date`
) >$BASEDIR/logs/$GROUP.`date +%Y%m%d.%H%M%S` 2>&1
done
|