第一套
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地址,请您设计一个系统:
一、使用双apache web server前端;
二、采用AJP链接后段的3台Tomcat应用服务器,这些tomcat被配置成cluster, 所以须要考虑apache对后端的分配, 分配采用彻底平衡的方法
; 配置使用cookie来实现session stickness;
三、1台数据库服务器只有tomcat才须要链接,也不须要对Internet提供服务。
四、考虑系统的安全性和维护方便性;
五、经过rewrite规则配置把下属URL规则改写成友好的URL
http://server/webapp/getinfo?id=XXXX&name=YYYY –> http://server/getinfo/YYYY/XXXX
您须要提交
一、服务器规划,包括:
* 网络结构图
* 每台机器的IP地址分配
* 每台机器上运行的关键软件
* 您从安全性和维护性方面的考虑
二、Apache的如下配置文件给咱们:
* extra/http-proxy-ajp.conf
* extra/http-rewrite.conf
2.你能够采起任何设备和不一样操做系统服务器设计对两台WWW服务器和两台FTP服务器作负载均衡,用网络拓扑图表示并加以说明!(方法越多越好)
这个面试已通过了快一个月了,前段时间没有发上来,今天稍微整理了如下发上来了。原本是想写感想那,可是从小学开始语文都很差。也不知道从那里写起。呵呵!
这家公司挺大的,听别人说和sina一个级别的。具体的就在这里不说出来了。我从哪里面试出来以后我就想这是面试的SA,好像不是项目经理吧,外企就是不同啊!
还有就是他在问了问题以后,我答完以后就接着下一个,中间没有任何什么其余的话,脸上也没有表情。面试完以后完回到家里靠本身的记忆记下了面试中的16道面试题。发给朋友看看,他们有的说变态,有的说这好像不是SA面试题吧。
汗……仍是本身的能力不行啊。
第三套
一、在同一个网站中,当客户访问的时候,会出现有的页面访问的速度快而有的慢,系统和服务彻底正常、网络带宽正常。这是那里出现问题了那?
二、你之前作过的项目中,单台
服务器的最大并发量是多少?说下你硬件的配置?
三、你之前在工做中遇到的,一个困难的技术问题是什么,最后怎么解决的 ?
四、你说下你技术的强项和不足?
五、在一个系统架构中,咱们为了不单点故障,会怎么作?
六、apache2.x版本中两个不一样的运行模式是什么,有什么不一样?
七、若是给你不少台
服务器,你该怎么去管理?
八、若是给你一个100人的团队你怎么带好他们?
八、如何优化
linux系统,说出命令和相应的回值?
九、怎么查看一个服务器运行正常?
十、为何有些公司会把本身的系统项目外包出去,而本身不招本身系统工程师,说说本身 的见解?
十一、若是一个web服务器出现问题,你会怎么作?
十二、如何添加一个apache的rewirte模块,rewirte模块的原理是什么?
1三、你之前所在的公司接到项目的时候,人员是如何人分配的?
1四、大家给客户所作的项目,怎么保证客户系统的
安全?
1五、大家为客户提供什么样的后期服务?
1六、相对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的日志会打印到哪里,为何?
一、新的日志会打印在access_log.bak中,由于apache启动时会找到access_log文件,随时准备向文件中加入日志信息,
虽然此时文件被更名,可是因为服务正在运行,由于它的inode节点的位置没有变,程序打开的fd仍然会指向原来那个inode,
不会由于文件名的改变而改变。apache会继续向已更名的文件中追加日志,可是若重启apache服务,
系统会检查access_log
文件是否存在,若不存在则建立。
2.在Shell环境下,如何查看远程
Linux系统运行了多少
时间?
二、监控主机执行: 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任意一种
三、[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任意一种.
四、 [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使用,内存使用,负载状况等.
五、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