2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-24 20:52:08 +00:00

63 lines
1.6 KiB
Plaintext

declare -F msgutil_r &>/dev/null || function msgutil_r {
local logserver=$1
local msgtype=$2
local msgstr=$3
local logfile=$4
if [ -z "$msgtype" ]; then
msgtype="debug"
fi
if [ -n "$logserver" ];then
logger -n $logserver -t xcat -p local4.$msgtype "$msgstr"
if [ "$?" != "0" ];then
exec 3<>/dev/udp/$logserver/514 >/dev/null;logger -s -t xcat -p local4.$msgtype "$msgstr" 2>&3
if [ "$?" != "0" ];then
logger -s -t xcat -p local4.$msgtype "$msgstr" 2>&1|nc $logserver 514 >/dev/null 2>&1
if [ "$?" != "0" ];then
logger -t xcat -p local4.$msgtype "$msgstr"
fi
fi
fi
else
logger -t xcat -p local4.$msgtype "$msgstr"
fi
if [ -n "$logfile" ]; then
local logdir="$(dirname $logfile)"
if [ ! -d "$logdir" ]; then
mkdir -p "$logdir"
touch "$logfile"
fi
echo "$msgstr" >> $logfile
fi
}
declare -F msgutil &>/dev/null || function msgutil {
msgutil_r "" "$@"
}
declare -F updateflag &>/dev/null || function updateflag {
awk -v master="$1" -v port="$2" -v flag="$3" 'BEGIN{
ns = "/inet/tcp/0/" master "/" port
while(1) {
if((ns |& getline) > 0)
print $0 | "logger -t xcat -p local4.info"
else {
print "Retrying flag update" | "logger -t xcat -p local4.info"
close(ns)
system("sleep 10")
}
if($0 == "ready")
print flag |& ns
if($0 == "done")
break
}
close(ns)
exit 0
}'
return 0
}