第一套
1.查看Linux系统当前单个共享内存段的最大值(命令)
ipcs -m
ipcs -a
2.用什么命令查询指定IP地址的服务器端口
题意应该是 nmap 和nbtscan 命令来扫吧。
3.crontab中 用什么命令定义某个程序执行的优先级别
nice/renice:进程执行优先级
概念:
进程优先级:系统按进程优先级的不同分配 CPU时间,优先级高的进程会得到更多的CPU使用时间,以提高速度,缩短总的执行时间。
进程优先级范围:-20至19
最高等级:-20
最 低等级:19
系统管理员有权将进程优先级设置为-1至-20,而普通用户只能设置0至19。
进程运行的默认等级为0。
用nice 执行的进程其默认等级为10(即nice <程序名>,不指定等级时)。
格式:
nice <程序名>
nice -<等级> <程序名>
如:(命令后加&表示以后台运行)
vi & 优先等级0,默认等级。
nice vi & 优先等级10,使用nice执行程序时的默认等级。
nice -50 vi & 优先等级19,-号表示选项,等级50超过最低等级19,因此系统以等级19执行。
nice -18 vi & 优先等级18。
nice --50 vi & 优先等级-20,选项值为-50,超过最高等级-20,因此系统以等级-20执行。
nice --18 vi & 优先等级-18。
通过ps -l可查看以上命令的执行情况(注意查看各vi进程NI值的不同)。
重新调整正在执行的进程的优 先级:
调整指定PID进程的等级
renice <等级> <PID>
注意:<等级>是参 数,不是选项,没有前缀-号。
调整指定用户的所有进程的等级
renice <等级> <用户名1> <用户名2> ...
调整指定组的所有用户的所有进程的等级
renice <等级> -g <组名1>
4.如何让history命令显示具体时间
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
expect HISTTIMEFORMAT
重新开机后会还原,可以写/etc/profile
5.查看Linux系统当前 指定用户的邮件队列
mailq 命令
打印两种类型的列表:
mailq 命令列出如下所示的邮件队列:
Mail Queue(1 request)
---QID---- --Size-- -----Q-Time----- ------Sender/Recipient-----
AA02508 3 Thu Dec 17 10:01 root
(User unknown)
bad_user
mailq -v 命令列出如下所示的邮件队列:
Mail Queue (1 request)
---QID---- --Size-- -Priority- ---Q-Time--- --Sender/Recipient--
AA02508 3 1005 Dec 17 10:01 root
(User unknown)
bad_user
6.查看Linux系统当前加载的库文件
lsof
7.Ext3文件系统如何恢复RM命 令删除文件
(1).Ext3文件系统结构的简单介绍
在 Linux所用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有 文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之 后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号 就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
(2).恢复被误删文件的方法
大多数 Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。

首 先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)
mount -r -n -o remount /usr
-r 表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser -v -m /usr
如果没有什么重要的进程,用 以下命令停掉它们:
fuser -k -v -m /usr
然后就可以重新挂载这些文件系统了。
如 果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些 有用的数据。如果机器上有dos/windows,可以写到这些分区上面:
mount -r -n /dev/hda1 /mnt/had
然 后就可以执行debugfs:(假设Linux在 /dev/hda5)
#debugfs /dev/hda5
就会出现debugfs提 示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
…………………………………………………………………………………
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001
debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点 号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我 们要恢复节点是196829的文件:
可以先看看文件数据状态:
debugfs:stat
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38
然后就可以用dump指令恢复文件:
debugfs:dump /mnt/hda/01.sav
这样就把文件恢复出来了。退出debugfs:
debugfs:quit
另一种方法是手工编辑 inode:
debugfs:mi
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
…………………………….
Triple Indirect Block [0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查 /dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。
8.查看当前系统某 一硬件的驱动版本。比如网卡
dmidecode
9.DNS服务器有哪三种类型
主 从 缓存
10.apache目录访问身 份验证的实施步骤(用htpasswd设置)
htpasswd -c /目录 user
alias /目录
11.使用 tcpdump监听主机IP为192.168.1.1,tcp端口为80的数据,写出相应命令
tcpdump tcp port 80 host 192.168.1.1
12.简述IDS作用和实现原理
***检测,设备放在intelnet进来的第一台路由后面。对进入路由的所有的 包进行检测,如果有异常就报警。
13.用sed修改test.txt的23行test为tset;
sed ‘23s/test/tset/g ’ test.txt

第二套

1. 如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:
答:
#iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp –dport 80 -j DNAT –to 192.168.16.1:8080
或者:
#iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
2.什么是 NAT,常见分为那几种,DNAT与SNAT有什么不同,应用事例有那些?
3.包过滤防火墙与代理应用防火墙有什么区别,能列举几种相应的产品 吗?
4.iptables是否支持time时间控制用户行为,如有请写出具体操作步骤
5.说出你知道的几种linux/unix发行版本
6. 列出linux常见打包工具并写相应解压缩参数(至少三种)
7.计划每星期天早8点服务器定时重启,如何实现?
8.列出作为完整邮件系统 的软件,至少二类
9,当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。
答: a.用户输入网址到浏览器
b.浏览器发出 DNS请求信息
c.计算机首先 查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步
d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果,
e. 合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果
f.返回IP结果给浏览器
g.浏览器 根据IP信息,获取页面

10,我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp 协议?为什么要这么设计?
答:这个题需要理解的东西比较的多,分一下几个方面
a,从数据包大小上分:UDP的最大包长度是65507个字 节,响应dns查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这

时名字解释器通常使用TCP从发原来的请求。
b, 从协议本身来分:大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用(

如:TFTP,BOOTP 和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更大

,这就要求 dns客户端需要好的重传和超时算法,这时候使用TCP

11,一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大

小时,只使用了,60%的磁 盘空间,为什么会出现这个情况,说说你的理由。
答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件 的一种文件格式,出现很多小文件时,

容易导致inode耗尽了。
12,我们都知道FTP协议有两种工作模式,说说它们的大概的一 个工作流程?
FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
在主动模式下,FTP客户端随 机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT

N+1命令。
服 务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
在被动模式下,FTP客户端随机开启 一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,

通知服务器自己处于被 动模式。
服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过

N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总 的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
被动模式的 FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之

后主 机,而只允许由防火墙之后的主机发起的连接请求通过。
因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

13. 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下

 
 1. #/bin/sh
   2. #Programm :
   3. # Using for move currently directory to /tmp
   4. for FileName in `ls -l |awk ‘$5>10240 {print $9}’`
   5. do
   6. mv $FileName /tmp
   7. done
   8. ls -al  /tmp
   9. echo “Done! “

复制代码

14.apache有几种工作模式,分别介绍下其特点,并说明 什么情况下采用不同的工作模式?
apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时 候加参数–with-mpm-worker选择工作模式)
prefork的特点是:(预派生)
1.这种模式可以不必在请求到来时再产生新 的进程,从而减小了系统开销
2.可以防止意外的内存泄漏
3.在服务器负载下降的时候会自动减少子进程数(prefork的详细原理可以看 我的博客另外一篇文章apache的性能优化)
worker的特点是:支持混合的多线程多进程的多路处理模块
如果对于一个高流量的 HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。
15.名词解释 HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME 等等
16.编写shell脚本获取本机的网络地址。 比如:本机的ip地址是:192.168.100.2/255.255.255.0,那么它的网络地址是

192.168.100.1/255.255.255.0
方 法一:

   1. #!/bin/bash
   2. #This script print ip and network
   3. file=”/etc/sysconfig/network-scripts/ifcfg-eth0″
   4. if [ -f $file ] ;then
   5. IP=`grep “IPADDR” $file|awk -F”=” ‘{ print $2 }’`
   6. MASK=`grep “NETMASK” $file|awk -F”=” ‘{ print $2 }’`
   7. echo “$IP/$MASK”
   8. exit 1
   9. fi

复制代码

方法二:

   1. #!/bin/bash
   2. #This programm will printf ip/network
   3. #
   4. IP=`ifconfig eth0 |grep ‘inet ‘ |sed ’s/^.*addr://g’|sed ’s/  Bcast.*$//g’`
   5. NETMASK=`ifconfig eth0 |grep ‘inet ‘|sed ’s/^.*Mask://g’`
   6. echo “$IP/$NETMASK”
   7. exit

复制代码

17.在命令行下 发一邮件,发件人: 123@abc.com,收信人: abc@xyz.com
二简述题:
1.linux下如何改IP,主机 名,DNS
2.linux下如何添加路由
3.简述linux下编译内核的意义与步骤
4.简述Linux启动过程
5.简述 DDOS***的原理
6.简述Tcp三次握手的过程
7.简述×××,常见有哪几种?
8.
三:设计题:
1.系统设计
请 考虑以下系统的设计. 您可以翻阅资料,查询任何您有帮助的资料、指南等。
您有的资源:
8台安装Linux (2.6内核) 的双网卡PC服务器以及相关开源软件,交换机
Apache 2.2.x
Tomcat 5.5.X
数据库系统
最多8个 Internet IP地址,请您设计一个系统:
1、使用双apache web server前端;
2、采用AJP连接后段的3台 Tomcat应用服务器,这些tomcat被配置成cluster, 因此需要考虑apache对后端的分配, 分配采用完全平衡的方法

;  配置使用cookie来实现session stickness;
3、1台数据库服务器只有tomcat才需要连接,也不需要对 Internet提供服务。
4、考虑系统的安全性和维护方便性;
5、通过rewrite规则配置把下属URL规则改写成友好的URL
http://server/webapp/getinfo?id=XXXX&name=YYYY –> http://server/getinfo/YYYY/XXXX

您需要提交

1、服务器规划,包括:
*  网络结构图
* 每台机器的IP地址分配
* 每台机器上运行的关键软件
* 您从安全性和维护性方面的考虑
2、 Apache的以下配置文件给我们:
* extra/http-proxy-ajp.conf
*  extra/http-rewrite.conf

2.你可以采取任何设备和不同操作系统服务器设计对两台WWW服务器和两台FTP服务器 做负载均衡,用网络拓扑图表示并加以说明!(方法越多越好)

 这个面试已经过了快一个月了,前段时间没有发上来,今天稍微整理了以下发上 来了。本来是想写感想那,但是从小学开始语文都不好。也不知道从那里写起。呵呵!
 
  这家公司挺大的,听别人说和sina一个级别的。 具体的就在这里不说出来了。我从哪里面试出来之后我就想这是面试的SA,好像不是项目经理吧,外企就是不一样啊!
 
  还有就是他在问了 问题之后,我答完之后就接着下一个,中间没有任何什么其他的话,脸上也没有表情。面试完之后完回到家里靠自己的记忆记下了面试中的16道面试题。发给朋友 看看,他们有的说变态,有的说这好像不是SA面试题吧。
 
  汗……还是自己的能力不行啊。

第三套
 
  1、在同一个网站中,当客户访问的时候,会出现有的页面 访问的速度快而有的慢,系统和服务完全正常、网络带宽正常。这是那里出现问题了那?
 
  2、你以前做过的项目中,单台 服务器的最大并发量是多少?说下 你硬件的配置?
 
  3、你以前在工作中遇到的,一个困难的技术问题是什么,最后怎么解决的 ?
 
  4、你说下你技术 的强项和不足?
 
  5、在一个系统架构中,我们为了避免单点故障,会怎么做?
 
  6、apache2.x版本中两个 不同的运行模式是什么,有什么不同?
 
  7、如果给你很多台 服务器,你该怎么去管理?
 
   8、如果给你一个100人的团队你怎么带好他们?
 
  8、如何优化 linux系统,说出命令和相应的 回值?
 
  9、怎么查看一个服务器运行正常?
 
  10、为什么有些公司会把自己的系统项目外包出去,而自己不招自己 系统工程师,说说自己 的看法?
 
  11、如果一个web服务器出现问题,你会怎么做?
 
  12、如何添加一个 apache的rewirte模块,rewirte模块的原理是什么?
 
  13、你以前所在的公司接到项目的时候,人员是如何人分配 的?
     14、你们给客户所做的项目,怎么保证客户系统的 安全
 
   15、你们为客户提供什么样的后期服务?
 
  16、相对web服务来说,你们怎么知道当时客户的系统已经不能满足需求,当不能满足需 求的时候,你们就用什么解决?
 
  以上就是我能记得的面试题了,还有几个记不起来了。真是一个比一个各色。面对这么各色的面试题,你能 答出来多少?
 
  看完这个之后希望大家能把自己能打答出来的写下来!

第四套

1,编写shell脚本获取本机的网络地址。比如:本机的ip地址 是:192.168.100.2/255.255.255.0,那么它的网络地址是192.168.100.1/255.255.255.0
2, 当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。
3,我们都知道,dns既采用了tcp 协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp协议?为什么要这么设计?
4,一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。
5,我们都知道FTP协议有两种工作模式,说说它们 的大概的一个工作流程?
1,#!/bin/sh
     LAN=eth0
     LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`
     LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '`
     LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK
2,a. 用户输入网址到浏览器
     b.浏览器发出DNS请求信息
     c. 计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步
     d.计 算机按照本地DNS的顺序,向合法dns服务器查询IP结果,
     e.合法dns返回dns结果 给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果
     f.返回IP结果 给浏览器
     g.浏览器根据IP信息,获取页面
3,这个题需要理解的东西比较的多,分一 下几个方面
     a,从数据包大小上分:UDP的最大包长度是65507个字节,响应dns查询的 时候数据包长度超过512个字节,而返回的只要前512个字节,这时名字解释器通常使用TCP从发原来的请求。
     b, 从协议本身来分:大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用 (如:TFTP,BOOTP和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更 大,这就要求dns客户端需要好的重传和超时算法,这时候使用TCP
4,两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适 合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode耗尽了。
5,FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后 开放N+1号端口进行监听,并向服务器发出PORT N+1命令。
服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指 定的端口N+1,进行数据传输。
在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号 端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。
服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总的来 说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
被动模式的FTP通 常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后 的主机发起的连接请求通过。
因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

第五套

1.假设Apache产生的日志 文件名为 access_log,在apache正在运行时,执行 命令mv
access_log access_log.bak,执行完后,请问新的apache的日志会打印到哪里,为什么?
1、新的日志会打印在 access_log.bak中,因为apache启动时会找到access_log文件,随时准备向文件中加入日志信息,
   虽 然此时文件被改名,但是由于服务正在运行,因为它的inode节点的位置没有变,程序打开的fd仍然会指向原来那个inode,
   不 会因为文件名的改变而改变。apache会继续向已改名的文件中追加日志,但是若重启apache服务, 系统会检查 access_log
   文件是否存在,若不存在则创建。
2.在Shell环境下,如何查看远程 Linux系统运行了多少 时间?
2、 监控主机执行: ssh user@被监控主机ip "uptime"
   这样得到了被监控主机的uptime
3. 处理以下文件内容,将域名取出并进行计数排序,如处理:
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
得 到如下结果:
域名的出现的次数 域名
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com
可 以使用bash/perl/php/c任意一种
3、[root@localhost shell]# cat file | sed -e ' s/http:\/\///' -e ' s/\/.*//' | sort | uniq -c | sort -rn
      3 www.baidu.com
      2 post.baidu.com
      1 mp3.baidu.com
[root@codfei4 shell]# awk -F/ '{print $3}' file |sort -r|uniq -c|awk '{print $1"\t",$2}'
3         www.baidu.com
2        post.baidu.com
1        mp3.baidu.com

4. 如果得到随机的字串,长度和字串中出现的字符表可定义,并将字串倒序显示,如
把0123456789作为基准的字串字符表,产生一个6位的字串 642031,打印出的字串为
130246,可使用bash/perl/php/c任意一种.
4、 [root@localhost ~]#  awk -v count=6 'BEGIN {srand();str="0123456789";len=length(str);for(i=count;i>0;i--) marry=substr(str,int(rand()*len),1);for(i=count;i>0;i--) printf("%c",marry);printf("\n");for

(i=0;i<=count;i++) printf("%c",marry);printf("\n")}'
838705
507838
5.如何查看当前 Linux系统的状态,如CPU使用,内存使用,负载情况等.
5、Linux系统中“/proc”是个伪文件目录,不占用系统空间,及时的反应出 内存现在使用的进程情况......其中许多文件都保存系统运行状态和相关信息
对于“/proc” 中文件可使 用文件查看命令浏览其内容,文件中包含系统特定信息:
cpuinfo          主机CPU信息
filesystems       文件系统信息
meninfo          主机内存信息
version           Linux内存版本信息
diskstatus        磁 盘负载情况
另外top命令可以动态的显示当前系统进程 用户的使用 情况,而且是动态的显示出来,尤其是在该命令显示出来的对上方对系统的情况进行汇总.
free命令呢可以查看真实使用的内存  一 般用free -m
使用lsof 、ps -aux 可以查看详细的每个进程的使用状况
dmesg 也是常用来查看系统性能的命令
#######################################################################################################################################################################
# 题目:有10台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/分区适用率大于80%,就发邮件报警放到crontab里面, 每10分钟检查一次
#测试机器:虚拟机Linux as 4
#1.首先建立 服务器间 的信任关系。拿两台机器做测试
本机ip:192.168.1.6
[root@codfei ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y (以为我是第2次建立关系所以此处覆盖原来的文件)
Enter passphrase (empty for no passphrase):(直接回车无须输入密钥)
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
04:37:13:2a:4b:10:af:c1:2b:03:3f:6b:27:ce:b9:62 root@codfei
[root@codfei ~]# cd .ssh/
[root@codfei .ssh]# ll
-rw-------  1 root root 883 Apr 25 17:51 id_rsa
-rw-r--r--  1 root root 221 Apr 25 17:51 id_rsa.pub
-rw-r--r--  1 root root 442 Apr 25 17:37 known_hosts
id_rsa是密钥文件,id_rsa.pub是公钥文件。
[root@codfei .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6
root@192.168.1.4's password:
id_rsa.pub                                    100%  221     0.2KB/s   00:00
这里把公钥文件取名为本机的ip 地址就是为 了以后和更多的机器建立信任关系不发生混淆。
现在登陆到192.168.1.4机器
[root@codfei ~]# cd .ssh/
[root@codfei .ssh]# cat 192.168.1.6 >> authorized_keys
然后回到192.168.1.6机器直接
[root@codfei .ssh]# ssh 192.168.1.4
Last login: Wed Aug  8 12:14:42 2007 from 192.168.1.6
这样就可以了,里面偶尔涉及到权限问题。一般./ssh文件夹是755 authorized_keys为600或者644


####脚本如下#######################

#!/bin/bash            
#SCRIPT:df_check.sh           
#Writeen by codfei Mon Sep  3 07:25:28 CST 2007        
#PURPOSE:This script is used to monitor for full filesystems.      
#######################Begining########################################
FSMAX="80"
remote_user='root'  ##### 完全可以不用root
remote_ip=(192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14  )
###这里填写你要监控的主机ip
ip_num='0'
while [ "$ip_num" -le "$(expr ${#remote_ip[@]} - 1)" ]
do