50 lines
1.4 KiB
Bash
Executable File
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
|