script-gammu_receive_sms/gammu_receive_sms.sh

71 lines
2.0 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
SECRETKEY=''
PHONENUM=''
PATH_UNLOCK_FILE="/tmp/gammu_unlock_file"
2017-11-23 22:34:43 +01:00
DATE=`date --date="2 minute ago" +'%Y-%m-%d %H:%M:%S'`
OTP=`oathtool -w 4 --now="$DATE" --totp -b $SECRETKEY`
OTPFROMCLIENT=`echo $SMS_1_TEXT | awk '{print $NF}'`
CMD=`echo $SMS_1_TEXT | awk '{print tolower($1)}'``
MATCH=`echo $OTP | grep $OTPFROMCLIENT`
UNLOCKDATE=`cat $PATH_UNLOCK_FILE`
CURRENTDATE=`date +%s`
DIFFDATE=$(($CURRENTDATE-$UNLOCKDATE))
if [[ "$DIFFDATE" -lt "1800" ]];then
TEXT=`echo $SMS_1_TEXT | awk 'BEGIN {ORS=" "} {for (i=2; i<=NF; i++) print $i " "}'`
else
TEXT=`echo $SMS_1_TEXT | awk 'BEGIN {ORS=" "} {for (i=2; i<NF; i++) print $i " "}'`
fi
if [[ $SMS_1_NUMBER -eq $PHONENUM ]]; then
if [ -n "$MATCH" ] || [ "$DIFFDATE" -lt "1800" ] ; then
2018-01-29 15:36:35 +01:00
case $CMD in
allo)
REPLY="A l'huile"
;;
help)
REPLY="PING \$HOST - ping un host; UNLOCK - déverrouille pendant 30 le mode OTP; LOCK - verrouille le mode unlock; REBOOT \$HOST - redémarre l'host distant; CMD \$HOST \$COMMAND - exécute une commande sur l'host distant; PXY \$NUM \$MESSAGE - Envoie un SMS avec le module"
;;
ping)
REPLY=`ping -n -c 2 $TEXT`
;;
unlock)
date +%s > $PATH_UNLOCK_FILE
REPLY="Système débloqué pour 30 min"
;;
lock)
echo "0" > $PATH_UNLOCK_FILE
REPLY="Système re-verouillé"
;;
reboot)
ssh root@"$TEXT" 'sudo reboot'
REPLY="Signal reboot envoyé"
;;
cmd)
HOST=`echo $TEXT | awk '{print $1}'`
COMMAND=`echo $TEXT | awk 'BEGIN {ORS=" "} {for (i=2; i<=NF; i++) print $i " "}'`
REPLY=`ssh -oStrictHostKeyChecking=no root@$HOST $COMMAND`
;;
pxy)
PHONENUM=`echo $TEXT | awk '{print $1}'`
REPLY=`echo $TEXT | awk 'BEGIN {ORS=" "} {for (i=2; i<=NF; i++) print $i " "}'`
;;
*)
REPLY="Commande inconnu"
;;
esac
else
REPLY="Mauvais OTP"
fi
else
2018-01-29 15:36:35 +01:00
REPLY="FROM: $SMS_1_NUMBER TEXT: $SMS_1_TEXT"
fi
2017-11-23 22:34:43 +01:00
/usr/bin/sudo /usr/bin/gammu-smsd-inject TEXT $PHONENUM -len 999 -textutf8 "$REPLY"
echo "[$DATE] $PHONENUM - $REPLY" >> /var/log/gammu_receive.log