第一套
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