linux四套面試題

第一套
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.在命令行下 發一郵件,發件人:[email protected],收信人:[email protected]
二簡述題:
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}'
      www.baidu.com
      post.baidu.com
      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
[email protected]'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   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章