66 lines
1.5 KiB
Bash
Executable File
66 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
|
|
ScriptDir=/usr/local/bin/monithor-server.d/
|
|
SondeFile=/etc/monithor-server/sonde.cfg
|
|
source /etc/monithor-server/service.cfg
|
|
|
|
Exit () {
|
|
|
|
[[ "$1" == "root" ]] && echo "You have to be root ..."
|
|
[[ "$1" == "Config" ]] && echo "Ip configuration will failed"
|
|
|
|
exit
|
|
}
|
|
|
|
if [[ $(id -u) != "0" ]]
|
|
then
|
|
Exit root
|
|
fi
|
|
|
|
[[ -z $(ifconfig | grep inet | awk '{print $2}' | grep $LocalIp) ]] && Exit Config
|
|
|
|
|
|
|
|
[[ "${Crypted}" == "yes" ]] && NcCmd="cryptcat -k ${LocalPassword} -l ${LocalIp} -p ${LocalPort} " || NcCmd="nc -l ${LocalIp} ${LocalPort}"
|
|
|
|
if [[ "${1}" == "start" ]]
|
|
then
|
|
while true
|
|
do
|
|
#coproc cryptcat -k ${LocalPassword} -l ${LocalIp} -p ${LocalPort}
|
|
coproc eval ${NcCmd}
|
|
while read -r cmd; do
|
|
logger "Running $cmd"
|
|
cpt=0
|
|
while read DATA
|
|
do
|
|
Sonde=$(echo ${DATA}| cut -d"#" -f1)
|
|
Exec=$(echo ${DATA}| cut -d"#" -f2)
|
|
RealCmd=$(echo ${cmd} | cut -d"#" -f1)
|
|
ArgCmd=$(echo ${cmd} | cut -d"#" -f2)
|
|
if [[ "${RealCmd}" == "$Sonde" ]]
|
|
then
|
|
logger "Exec $Exec $Arg $cpt"
|
|
[ "$1" == '-d' ] && echo "############ Exec $Exec $Arg $cpt" 1>&2
|
|
bash ${ScriptDir}/${Exec} $ArgCmd
|
|
cpt=$((cpt+1))
|
|
break
|
|
fi
|
|
done < ${SondeFile}
|
|
[[ "${cpt}" -eq 0 ]] && logger "You Failed $Sonde $Exec $Arg"
|
|
|
|
done <&"${COPROC[0]}" >&"${COPROC[1]}"
|
|
done &
|
|
fi
|
|
|
|
if [[ "${1}" == "stop" ]]
|
|
then
|
|
|
|
for Pid in $(ps axf| grep -E 'nc -l|monithor-server' | grep -v grep | awk '{print $1}' | sort )
|
|
do
|
|
kill ${Pid}
|
|
done
|
|
fi
|
|
|