中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Linux > Linux综合
利用netconsole将linux的内核printk消息发送到远程主机的udp端口
作者:未知 时间:2005-09-13 22:05 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:利用netconsole将linux的内核printk消息发送到远程主机的udp端口
netconsole真是好东东!通过它可以将kernel的printk消息通过udp发送到远程主机的syslogd。

linux 内核里的 netconsole 可以将内核的 printk 消息通过 udp 发送到远程主机上,而且还可以将
这样的消息发送到远程主机的syslogd里。

netconsole的用法:
如果 netconsole 被编译成模块,可以用下面的命令启用 netconsole

=============================================================================
2.4内核语法:
modprobe netconsole [dev=srcdev] [source_port=srcport] [target_port=dstport] target_ip=<hex mode of dst ip addr> [\
     target_eth_byte0=<dst mac addr hex byte 0> \
     target_eth_byte1=<dst mac addr hex byte 1> \
     target_eth_byte2=<dst mac addr hex byte 2> \
     target_eth_byte3=<dst mac addr hex byte 3> \
     target_eth_byte4=<dst mac addr hex byte 4> \
     target_eth_byte5=<dst mac addr hex byte 5> ]

srcdev: 网络接口
srcport: udp 源端口 (缺省为6665)

dstport: udp 目标端口 (缺省为6666)
hex mode of dst ip addr: 十六进制表示的目标 ip 地址
dst mac addr hex byte [0-6]:  十六进制表示的目标 mac 地址的第一到六位

#modprobe netconsole dev=eth0 target_port=514 target_ip=0xc0a86b01 \
      target_eth_byte0=0x00 \
      target_eth_byte1=0x0D \
      target_eth_byte3=0x60 \
      target_eth_byte4=0x2C \
      target_eth_byte0=0x05 \
      target_eth_byte0=0xB2
上面这条命令会将本机的 kernel printk msg 发送到主机 192.168.107.1 的 udp 端口 514 (syslogd 缺省监听的端口),
发送给 mac 地址为00:0D:60:2C:05:B2的接口。

=============================================================================
2.6内核语法:
modprobe netconsole netconsole=[srcport]@[srcip]/[srcdev],[dstport]@dstip/[dstmac]
srcport: udp 源端口 (缺省为6665)
srcip: 源ip地址 (缺省为接口地址)
srcdev: 网络接口

dstport: udp 目标端口 (缺省为6666)
dstip: 目标ip地址
dstmac: 目标主机接口的 MAC 地址

#modprobe netconsole netconsole=@/,514@192.168.107.1/00:0D:60:2C:05:B2
上面这条命令会将本机的 kernel printk msg 发送到主机 192.168.107.1 的 udp 端口 514 (syslogd 缺省监听的端口),
发送给 mac 地址为00:0D:60:2C:05:B2的接口。


如果那台主机的 syslogd 配置成为接收远程的 syslog 消息,来自 netconsole 的消息就可以记录在那台主机的系统日志里。

在没有syslogd在运行的主机上可以用命令接收来自远程主机的消息:
# netcat -u -l -p

参见:
1. /usr/src/linux/Documentation/networking/netconsole.txt
2. man 8 syslogd
3. man 1 netcat


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有