mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-24 20:52:08 +00:00
63 lines
1.6 KiB
Plaintext
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
|
|
}
|