debamp/src/2sman-client/usr/bin/2sman-client

50 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
CONFIG_PATH=/etc/2sman/client
KEY_FILE=$CONFIG_PATH/key
SERVER_FILE=$CONFIG_PATH/server
SCRIPT_PATH=/usr/share/2sman-client
DEVICES_PATH=$CONFIG_PATH/devices
DAILY_FILE=/var/run/2sman-client-daily
HOURLY_FILE=/var/run/2sman-client-hourly
LASTRUN_FILE=/var/run/2sman-client-lastrun
[ -f $KEY_FILE ] && DEFAULT_KEY=$(cat $KEY_FILE)
[ ! "$KEY" = "" ] && echo ERROR : Key file is empty $KEY_FILE && exit 1
[ -f $SERVER_FILE ] && DEFAULT_SERVER=$(cat $SERVER_FILE)
[ ! "$SERVER" = "" ] && echo ERROR : Server file is empty $KEY_FILE && exit 1
function everytime {
if [ -f $SCRIPT_PATH/$1 ]
then bash $SCRIPT_PATH/$* &
else echo WARNING : script $1 not exist 1>&2
fi
}
function hourly {
elapsedSeconds=$([ -f $HOURLY_FILE ] && echo $(( $(date +%s) - $(date +%s -r $HOURLY_FILE) )) || echo 3601)
if [ $elapsedSeconds -gt 3600 ] ; then
touch $DAILY_FILE
everytime $*
fi
}
function daily {
elapsedSeconds=$([ -f $DAILY_FILE ] && echo $(( $(date +%s) - $(date +%s -r $DAILY_FILE) )) || echo 86401)
if [ $elapsedSeconds -gt 86400 ]; then
touch $DAILY_FILE
everytime $*
fi
}
while true
do
for device_conf in $(find $DEVICES_PATH/ -name *.conf)
do
KEY=$DEFAULT_KEY
SERVER=$DEFAULT_SERVER
devicename=$(basename $device_conf .conf)
. $device_conf | tee $LASTRUN_FILE | curl -s $SERVER/$KEY/$devicename --data-binary @- > /dev/null
done
sleep 300
done