红联Linux门户
Linux帮助

SUSE FAQ 系列

发布时间:2009-07-30 09:17:24来源:红联作者:iephor
SUSE FAQ 系列 -- 查看 CPU,内存,网络流量和磁盘 I/O
在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?

Q: 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
A: 在命令行方式下,
1. 查看CPU使用情况的命令
""每5秒刷新一次,最右侧有CPU的占用率的数据
$ vmstat 5
""top 然后按Shift+P,按照进程处理器占用率排序
$ top

2. 查看内存使用情况的命令
""用free命令查看内存占用情况
$ free
""top 然后按Shift+M, 按照进程内存占用率排序
$ top

3. 查看网络流量
""可以用工具iptraf工具
$ iptraf -g
""针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得
$ date; ifconfig eth1
$ date; ifconfig eth1

4. 查看磁盘i/o
""用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
$ iostat -d -x /dev/sdc3 2
""用vmstat查看io部分的信息
$ vmstat 2
SUSE FAQ 系列 -- 日志查看
操作系统的日志文件是哪些文件?操作系统故障信息(包括软硬件的故障)存放在哪些文件中?
Q: 操作系统的日志文件是哪些文件?操作系统故障信息(包括软硬件的故障)存放在哪些文件中?
A: Linux的系统日志放在/var/log目录下,对于出错或警告信息存放在/var/log/warn文件中,
其它的信息主要保存在/var/log/messages文件中。这些日志文件通过syslog守护进程进行管理。内核的message buffer可以用命令dmesg查看。
SUSE FAQ 系列 -- 设置 NAT

如何通过DNAT和SNAT的设置,令内网的机器能访问外网,并能被外网访问
Q: 如何通过DNAT和SNAT的设置,令内网的机器能访问外网,并能被外网访问
A: 对于这个需求,需要有一个作为网关机器,这台机器有外网的网络接口,可以用这个外网接口
添加新的外网IP地址并用这个地址作为内网机器对外的服务地址;在网关主机上需要作相应的
DNAT和SNAT转换;网关主机有内网接口,这个内网接口的IP地址作为内网主机的缺省网关;
在内网主机上需要将缺省路由设置到网关主机的内网地址。

如下图:

Client CIP: 10.70.109.154
|
|
Internet
|
|
| public Interface: eth0 IP 10.71.101.220/24
Gateway alias: eth0:0 IP 10.71.101.230/24
| private Interface: eth1 IP 172.17.0.1/24
|
|
InnerPC Interface: eth0 IP 172.17.0.10/24
GW: 172.17.0.1


在Gateway上需作的配置
# ifconfig eth0 10.71.101.220 netmask 255.255.255.0 broadcast 10.71.101.255
# ifconfig eth0:0 10.71.101.230 netmask 255.255.255.0 broadcast 10.71.101.255

# ifconfig eth1 172.17.0.1 netmask 255.255.255.0 broadcast 172.17.0.255

# iptables -t nat -F PREROUTING
# iptables -t nat -F POSTROUTING
# iptables -t nat -A PREROUTING -d 10.71.101.230 -j DNAT --to-destination 172.17.0.10
# iptables -t nat -A POSTROUTING -s 172.17.0.10 -j SNAT --to-source 10.71.101.230

在Inner PC上需要作的配置
# ifconfig eth0 172.17.0.10 netmask 255.255.255.0 broadcast 172.17.0.255
# route add default gw 172.17.0.1

这样设置之后,Client(10.71.109.154)就可以通过10.71.101.230访问Inner PC上的服务了

SUSE FAQ 系列 -- 新硬件识别
如果主机上插入新的硬件(例如阵列卡,网卡,硬盘,内存,CPU等),如何使系统识别新加入的硬件
Q: 如果主机上插入新的硬件(例如阵列卡,网卡,硬盘,内存,CPU等),如何使系统识别新加入的
硬件
A: Linux对外部设备的支持离不开内核所提供的驱动的支持. 内核对硬件的支持一部分是通过builtin的部分
提供的, 另外一部分是通过可加载模块提供的.

Linux内核内置提供的硬件例如CPU, 内存等.
1. 用户如果添加了新的内存是不需要重新编译内核的, 查看变更后的信息可以参见命令的输出
#cat /proc/meminfo.

2. 用户如果新增加一颗新的处理器, 需要根据原来安装的内核类型作相应处理:
如果系统原来安装的是单处理器内核, 需要安装新的多处理器内核来使用多处理器特性.
""以SLES8 SP3的内核为例
# mount /dev/cdrom /media/cdrom
# rpm -Uvh /media/cdrom/UnitedLinux/i586/k_smp-2.4.21-138.i586.rpm

如果系统原来就是多处理器内核, 我们不需要做额外的配置
查看变更后的信息可以参见
# cat /proc/cpuinfo

3. 用户对新增的硬盘使用要通过上层的SCSI Controller的驱动, Raid Controller的驱动或
IDE Controller的驱动才能被用户使用,所以应归类到SCSI Controller, Raild Controller
和IDE Controller的支持上。

Linux下通过可加载的内核模块提供支持的硬件
4. 阵列卡, SCSI控制器和IDE控制器等
这些控制器的支持一般通过内核模块的形式提供支持。首先要确认要添加的设备的类型,
其次要找到在内核里支持此设备的驱动,如果存储对应的文件系统在系统最初启动时就要加载,
要把驱动加到/etc/sysconfig/kernel文件中INITRD_MODULES对应的列表的适当位置.

下面举一个例子:
系统上原有一块Symbios 53c1010的SCSI控制器, 根文件系统在这块卡下的磁盘分区/dev/sda1上
系统上添加了一个Qlogic 2300的Fiber Channel Controller用于连接磁盘阵列柜在阵列柜上划分了
两个逻辑盘,我们计划先加载Symbios卡的驱动,后加载Qlogic卡的驱动,这样就能保证根文件系统
所在存储控制卡的驱动先被加载.
修改/etc/sysconfig/kernel文件的行:
INITRD_MODULES="reiserfs mptbase mptscsih"

INITRD_MODULES="reiserfs mptbase mptscsih qla2300"

然后重新声成initrd
# mkinitrd

上面配置中的模块列表是在内核启动的时候,加载initrd时按照从左至右的顺序加载的.我们希望
先加载Symbios的驱动mptbase和mptscsih,后加载Qlogic的驱动qla2300。如果需要将加载顺序
改变,只要改变这个文件中的驱动的顺序重作initrd,再下一次启动的时候内核对SCSI磁盘的
识别顺序就会改变过来。

新增的磁盘设备可以用yast2 disk或fdisk进行分区,然后就可以使用了。

5. 添加网卡的过程和上面添加存储控制卡的过程类似,首先要确认要添加的设备的类型,
其次要找到在内核里支持此设备的驱动。由于网卡驱动不是系统启动必不可少的部分,所以
不用把网卡驱动加到initrd里面。

手工把网卡的驱动配置添加到/etc/modules.conf文件中
例如:系统上原有两块BroadCom 5700网卡,在/etc/modules.conf文件中
这两块网卡对应的驱动配置为:
alias eth0 bcm5700
alias eth1 bcm5700

我们新加了两块Intel 1000M网卡,在linux下的驱动是e1000, 在配置文件里添加行:
alias eth2 e1000
alias eth3 e1000

然后运行yast2 network按照先按照显示顺序配置两块BroadCom网卡,然后按照显示
顺序配置两块Intel网卡。

SUSE FAQ 系列 -- 文件系统修复
常用的文件系统修复的方法及注意事项
Q: 常用的文件系统修复的方法及注意事项
A: 在SLES8/9上, 系统安装时默认的文件系统是reiserfs, 其他的文件系统如: ext3, jfs, xfs等都是
日志文件系统. 这些日志文件系统在系统启动时会做检查/etc/fstab里面记录的文件系统, 并作出
自动修复. 通常情况下不需要用户的交互.

如果用户因为变更/etc/fstab加入了无效的文件系统记录, 系统自动检测会失败, 会进入管理员模式
, 让管理员进行维护. 管理员首先应该根据console上记录的出错判断fsck返回错误的文件系统是哪
个文件系统. 然后作相应的处理.

一旦发生文件系统失败, 可以由管理员手工执行fsck, 在作fsck之前, 首先要根据数据的重要性,对
文件系统所在的分区作备份!!!!
例如: /dev/sdc1上的文件系统保存业务系统的重要数据, 在系统正常工作时加载在/opt/serv_data
目录下, 首先需要对/dev/sdc1作备份, 然后进行手工修复
""首先将/重新用defaults属性加载
# mount -o remount,defaults /
""备份/dev/sdc1到/archives目录下的sdc1.dat文件, 确保目的文件系统有足够大的空间
# dd if=/dev/sdc1 of=/archives/sdc1.dat
""假设/dev/sdc1文件系统类型为ext3
# fsck.ext3 /dev/sdc1
""假设/dev/sdc1文件系统类型为reiserfs
# fsck.reiserfs /dev/sdc1
关于fsck.ext3和fsck.reiserfs的详细帮助,请参见man e2fsck(8)和man reiserfsck(8)
文章评论

共有 1 条评论

  1. tianpengchen 于 2009-07-30 18:30:48发表:

    蛮复杂的啊