1. 程式人生 > >找工作絕對沒有問題的linux運維面試題(3)

找工作絕對沒有問題的linux運維面試題(3)

知識 連接服務器 定時重啟 pin 客戶端連接 原來 acc 運營 fdisk

shell腳本編程部分:

1.從 a.log 文件中提取包含“WARNING”或”FATAL”,同時不包含“IGNOR”的行,然後,提取以“:”分割的第五個字段?
grep -E ‘WARNING|FATAL’ a.log | grep-v’IGNOR’ | awk -F : ’{print $5 }’
2.添加一個新組為class01,然後,添加屬於這個組的30個用戶,用戶名的形式為stdXX,其中,XX從 01到 30?

#!/bin/bash
groupadd class01
for((i=1;i<=9;i++))
do
useradd std0$i -G class01
done
for((i=10;i<=30;i++))
do
useradd std$i -G class01
done

3.在每個月的第一天備份並壓縮/etc目錄下的所有內容,存放在/root/backup目錄裏,且文件名為如下形式yymmdd_etc,yy為年,mm為月,dd為日。shell程序 fileback存放在/usr/bin 目錄下?
tar -zcf /root/backup/date+%y%m%d_etc /etc
4.用shell編程,判斷一文件是不是字符設備文件,如果是將其拷貝到/dev目錄下?

#!/bin/bash
if test$# -ne1
then
echo ”ERROR”
exit 1
fi
if test -c $1
then
/bin/cp -a $1 /dev/
exit0
fi
exit 1

5.某系統管理員需要每天做一定的重復工作,編制一個解決方案:

(1).從下午 4:50 刪除/abc 目錄下的全部子目錄和全部文件;
(2).從早上 8:00~下午 6:00每小時讀取/xyz目錄下x1 文件中每行第一個域的全部數據加入到/backup目錄下的 back01.txt文件內;
(3).每逢周一下午 5:50 將/data目錄下的所有目錄和文件歸檔並壓縮為文件backup.tar.gz;
(4).在下午 5:55 將IDE接口的CD-ROM缷載(假設CD-ROM的設備名為 hdc);
(5).在早上 8:00 開機後啟動。
使用計劃任務來完成:
crontab-e
———————–

50 16 * * * rm-rf/abc/*
00 08-18 * * * awk ‘{print$1 }’ /xyz/x1 >> /backup/back01.txt
50 17 * * 01 tar-zcf/backup/backup.tar.gz /data
55 17 * * * umount/dev/hdc

———————–
設定BIOS每日上午 08:00開機

---------------------------------------------------------
1、簡述Apache兩種工作模式,以及它們之間的區別。

答案:最主要的兩種模式是prefork模式與worker模式。prefork每個子進程只有一個線程,效率高但消耗內存大,是unix下默認的模式;worker模式每個子進程有多個線程,內存消耗低,但一個線程崩潰會牽連其它同子進程的線程。

2、用iptables添加一個規則允許192.168.0.123訪問本機3306端口
iptables -I INPUT 1 -p tcp -m tcp --dport 3306 -s 192.168.0.123 -j ACCEPT

3、如何對一臺Linux服務器進行系統性能調優,列舉出參數。

4、DNS服務器的工作原理。

5、修改第一塊網卡的路徑是什麽。
/etc/sysconfig/network-scripts/ifcfg-eth0

7、使用shell,建立class1用戶組,再批量建立stu1--stu30的用戶,並指定用戶組為class1。
vi autoaddusr

#!/usr/bin/php -q
<?php
exec("groupadd class1");
for($i=1; $i<=30; $i++){
    exec("useradd -G class1 stu".$i);
}
?>
chmod +x autoaddusr
./autoaddusr

8、個人對該工作的未來如何規劃,需要加強哪些能力。

首先,我有一顆真誠的心,遇事沈著冷靜,不急不躁;
其次,我有相應的專業知識和工作經驗。一年多的系統管理經歷鍛煉了我在這個行業的業務能力,並對行業前景和發展動態有相應的了解;
最後,我會用踏實的作風在今後的工作中證明我自己的能力!

9、日常監控都需要監控哪些?
1)硬件:
CPU:/proc/cpuinfo
內存:/proc/meminfo
硬盤:fdisk -l
2)系統:
負載:/proc/loadavg
uptime查看實時load average、swap
虛擬內存:vmstat(參數-s;2 4)
SUID,用戶,進程
系統日誌:tail -f /var/log/messages
logwatch --print --range Today --service SSHD --service pam_unix
3)網絡:Host_Alive,Ping,端口,連接

----------------------------------------------------
.如何將本地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有什麽不同,應用事例有那些?
SNAT,DNAT,MASQUERADE都是NAT。
MASQUERADE是SNAT的一個特例。
SNAT是指在數據包從網卡發送出去的時候,把數據包中的源地址部分替換為指定的IP,這樣,接收方就認為數據包的來源是被替換的那個IP的主機。
MASQUERADE是用發送數據的網卡上的IP來替換源IP,因此,對於那些IP不固定的場合,比如撥號網絡或者通過dhcp分配IP的情況下,就得用MASQUERADE。
DNAT,就是指數據包從網卡發送出去的時候,修改數據包中的目的IP,表現為如果你想訪問A,可是因為網關做了DNAT,把所有訪問A的數據包的目的IP全部修改為B,那麽,你實際上訪問的是B
因為,路由是按照目的地址來選擇的,因此,DNAT是在PREROUTING鏈上來進行的,而SNAT是在數據包發送出去的時候才進行,因此是在POSTROUTING鏈上進行的。
3.包過濾防火墻與代理應用防火墻有什麽區別,能列舉幾種相應的產品嗎?
包過濾防火墻是根據包頭進行的過濾,並且是處於網絡層的,根據包的源ip地址,目標ip地址,協議類型,端口號,進行過濾;代理應用防火墻工作在應用層,他使用代理服務器技術,將內網對外網的訪問,變為防火墻對外網的訪問,可以對包的內容進行分辨,從而過濾。
代理應用防火墻:天融信GFW4000
包過濾防火墻:華為 NE 16E
4.iptables是否支持time時間控制用戶行為,如有請寫出具體操作步驟。
支持。需要增加相關支持的內核補丁,並且要重新編譯內核。
或者使用crontab配合iptables,首先:vi /deny.bat 輸入/sbin/iptables -A OUTPUT -p tcp -s 192.168.1.0/24 --dport 80 -j DROP 保存退出
打開crontab -e
輸入:00 21 * * * /bin/sh /deny.bat
5.說出你知道的幾種linux/unix發行版本。
Redhat、CentOS、Fedora、SuSE、Slackware、Gentoo、Debian、Ubuntu、FreeBSD、Solaris、SCO、AIX、HP…
6.列出linux常見打包工具並寫相應解壓縮參數(至少三種)
Tar gz bz
Tar -xvzf gzip -d bzip2 -d
7.計劃每星期天早8點服務器定時重啟,如何實現?
Crontab -e
00 08 7 /sbin/init 6
8.列出作為完整郵件系統的軟件,至少二類。
Sendmail,postfix,qmail
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目錄下
Q:主要是考察awk 這些的用法

#/bin/sh
#Programm :
# Using for move currently directory to /tmp
for FileName in `ls -l |awk ‘$5>10240 {print $9}’`
do
mv $FileName /tmp
done
ls -la     /tmp
echo “Done! ”

14.apache有幾種工作模式,分別介紹下其特點,並說明什麽情況下采用不同的工作模式?
apache主要有兩種工作模式:prefork(apache的默認安裝模式)和worker(可以在編譯的時候加參數–with-mpm- worker選擇工作模式)
prefork的特點是:(預派生)
1.這種模式可以不必在請求到來時再產生新的進程,從而減小了系統開銷
2.可以防止意外的內存泄漏
3.在服務器負載下降的時候會自動減少子進程數
worker的特點是:支持混合的多線程多進程的多路處理模塊
如果對於一個高流量的HTTP服務器,worker MPM是一個比較好的選擇,因為worker MPM占用的內存要比prefork要小。
15.名詞解釋 HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME 等等。
HDLC:高級鏈路控制;VTP:vlan 傳輸協議;OSPF:開放最短路徑優先;RIP:路由信息協議;DDOS:分布式拒絕服務***;system V:UNIX版本V;GNU:非UNIX,開放源碼軟件工程;netscreen:國際著名防火墻廠家之一,04年後被juniper收購,變為其防火墻的一個系列;ssh:安全外殼,防止中間人***的一種連接方式;smartd:硬盤檢測工具s.m.a.r.t的進程;Apache:web服務器軟件;WAIT_TIME:netstat命令顯示的參數,客戶端正在等待。
16.編寫shell腳本獲取本機的網絡地址。比如:本機的ip地址是:192.168.100.2/255.255.255.0,那麽它的網絡地址是
192.168.100.1/255.255.255.0
方法一:

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

fi
方法二:

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

17.在命令行下發一郵件,發件人:[email protected], 收信人:[email protected]
Mail -s "hello"
二、簡述題:
1.linux下如何改IP,主機名,DNS
Setup
2.linux下如何添加路由
Route add -net 10.1.1.0/24 eth1
3.簡述linux下編譯內核的意義與步驟
編譯內核的意義在於讓硬件設備更穩定的發揮其應有的效能;
4.簡述Linux啟動過程
Bios引導--》啟動引導工具grub--》核心初始化--》載入初始程序init--》init初始化--》從inittab中讀取數據,決定啟動級別--》系統運行
5.簡述DDOS***的原理
***劫持大量傀儡主機,對目標服務器進行合理的資源請求,導致服務器資源耗盡而不能進行正常的服務。
6.簡述Tcp三次握手的過程
第一次握手,建立連接,客戶端發送SYN包到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手,服務器收到SYN,同時自己也發送一個SYN包和一個ACK包來確認客戶端的SYN,並進入SYN_RECV;
第三次握手,客戶端收到服務器發來的SYN+ACK後,回復服務器端一個ACK確認,發送完畢後,雙方進入ESTABLISHED狀態。
三次握手成功後,開始傳輸數據。
7.簡述×××,常見有哪幾種?
×××是指在公共的網絡上建立專用網絡的技術,但是兩個節點間並沒有物理上的專用的端到端鏈路,而是通過廣域網或者運營商提供的網絡平臺之上的邏輯網絡,用戶數據在邏輯鏈路中傳輸,它可以有效的節省一般需要達到DDN專線所能達到的同樣的目的,而且×××采用身份驗證和加密技術,充分保證了安全性。常見的×××有:ipsec ***、PPTP ***、L2TP ***、SSL ***
三、設計題:
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服務器做負載均衡,用網絡拓撲圖表示並加以說明!(方法越多越好)
第一種方法: DNS輪巡
www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
ftp1 IN A 192.1.1.4
ftp2 IN A 192.1.1.5
ftp3 IN A 192.1.1.6
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
ftp IN CNAME ftp1
ftp IN CNAME ftp2
ftp IN CNAME ftp3

找工作絕對沒有問題的linux運維面試題(3)