equal
deleted
inserted
replaced
|
1 #!/bin/sh |
|
2 |
|
3 # Generic run-cron script with output to be piped to zabbix_sender(1) |
|
4 # Invocation: |
|
5 # run-cron name zabbix-prefix prog |
|
6 # |
|
7 # where name is run name (logs, status etc.) |
|
8 # zabbix-prefix is zabbix key prefix |
|
9 # and prog is the script which will be invoked. |
|
10 |
|
11 name=$1 |
|
12 zbx=$2 |
|
13 shift |
|
14 shift |
|
15 script="$@" |
|
16 start=$(date +%s) |
|
17 |
|
18 logdir=`dirname $name` |
|
19 mkdir -p $logdir |
|
20 [ $? -eq 0 ] || exit 1 |
|
21 |
|
22 l=$name-`date +%FT%T` |
|
23 |
|
24 $script >$l.out 2>$l.err |
|
25 status=$? |
|
26 echo $status > $l.status |
|
27 |
|
28 eta=$(expr $(date +%s) - $start) |
|
29 out_sz=$(stat -f %z $l.out) |
|
30 err_sz=$(stat -f %z $l.err) |
|
31 |
|
32 [ -L $name-last.out ] && mv $name-last.out $name-prev.out |
|
33 [ -L $name-last.err ] && mv $name-last.err $name-prev.err |
|
34 [ -L $name-last.status ] && mv $name-last.status $name-prev.status |
|
35 |
|
36 ln -sf $l.out $name-last.out |
|
37 ln -sf $l.err $name-last.err |
|
38 ln -sf $l.status $name-last.status |
|
39 |
|
40 cat <<EOF |
|
41 - $zbx.eta $eta |
|
42 - $zbx.status $status |
|
43 - $zbx.stdout $out_sz |
|
44 - $zbx.stderr $err_sz |
|
45 EOF |
|
46 |