mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-27 01:15:34 +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
 | |
| }
 |