scripts/run-cron-zabbix
changeset 40 8c421321123d
equal deleted inserted replaced
39:a0015fe2009a 40:8c421321123d
       
     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