netconsole 可以将内核的 printk 消息通过 udp 发送到远程主机上,而且还可以将消息发送到远程主机的syslogd里.
内核配置
CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y
REMOTE_IP=1.1.1.1 DEVNAME=`ip r |grep default |cut -d' ' -f5` REMOTE_PORT=514 LOCAL_IP=`ifconfig $DEVNAME |grep "inet addr"|cut -f2 -d':'|cut -d' ' -f1` LOCAL_PORT=${LOCAL_IP##*.} VIA=`ip r |grep default |awk '{print $3}'` VIAHW=`ping -c 1 $VIA > /dev/null 2>&1; /sbin/arp -an |grep $VIA | awk '{print $4}'` insmod netconsole.ko netconsole=$LOCAL_PORT@$LOCAL_IP/$DEVNAME,$REMOTE_PORT@$REMOTE_IP/$VIAHW
$ModLoad imudp $UDPServerRun 514重新启动服务/etc/init.d/rsyslog restart.
SYSLOGD_OPTIONS="-r -m 0"重新启动服务 /etc/init.d/syslog restart
'nc -u -l -p <port>' / 'nc -u -l <port>' or 'netcat -u -l -p <port>' / 'netcat -u -l <port>' 'socat udp-recv:<port> -'