Linux維護工程師面試題

NO IMAGE

Linux維護工程師面試題總結一下

 

一、有檔案file1

 1、查詢file1 裡面空行的所在行號

 awk ‘{if($0~/^$/)print NR}’ file

 or

 grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’

或者用grep -n ^$ /usr/local/httpd/conf/httpd.conf | awk -F: ‘{print $1}’ 即可

 2、查詢file1 以abc 結尾的行

 grep abc$ file1

 3、列印出file1 檔案第1 到第3 行

 sed -n ’1,3p’ file1

 head -3 file1

 二、如何將本地80 埠的請求轉發到8080 埠,當前主機IP 為192.168.2.1

 Iptables -A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT

 –to-destination 10.0.0.18:9000

 三、crontab

 在11 月份內,每天的早上6 點到12 點中,每隔2 小時執行一次/usr/bin/httpd.sh 怎麼

 實現

 0 6-12/2 * 11 * /usr/bin/httpd.sh

 四、編寫個shell 指令碼將/usr/local/test 目錄下大於100K 的檔案轉移到/tmp 目錄下

 #!/bin/bash

 for file in `ls /root`

 do

 if [ -f $file ]; then

 if [ `ls -l $file|awk ‘{print $5}’` -gt 10000 ]; then

 mv $file /tmp/

 fi

 fi

 done

 五、簡述raid0 raid1 raid5 三種工作模式的工作原理及特點。

 RAID 0:連續以位或位元組為單位分割資料,並行讀/寫於多個磁碟上,因此具有很高的資料

 傳輸率,但它沒有資料冗餘,因此並不能算是真正的RAID 結構。RAID 0 只是單純地提高

 效能,並沒有為資料的可靠性提供保證,而且其中的一個磁碟失效將影響到所有資料。因此,

 RAID 0 不能應用於資料安全性要求高的場合。

 RAID 1:它是通過磁碟資料映象實現資料冗餘,在成對的獨立磁碟上產生互為備份的資料。

 當原始資料繁忙時,可直接從映象拷貝中讀取資料,因此RAID 1 可以提高讀取效能。RAID

 1 是磁碟陣列中單位成本最高的,但提供了很高的資料安全性和可用性。當一個磁碟失效時,

 系統可以自動切換到映象磁碟上讀寫 ,而不需要重組失效的資料。簡單來說就是:鏡象結

 構,類似於備份模式,一個資料被複制到兩塊硬碟上。

 RAID10:高可靠性與高效磁碟結構

 一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充。

 主要用於容量不大,但要求速度和差錯控制的資料庫中。

 RAID5:分散式奇偶校驗的獨立磁碟結構,它的奇偶校驗碼存在於所有磁碟上,任何一個

 硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的資料。支援一塊盤掉線後仍然正常

 執行。

 六、oracle 資料庫備份方式

 物理備份:開啟網路監聽,備份資料庫檔案。

 RMAN 備份:通過表空間檔案在RMAN 模式對ORACLE 資料備份。

 七、如何檢視佔用埠8080 的程序

 lsof -i:8080

 八、請寫出apache2.X 版本的兩種工作模式,以及各自工作原理。如何檢視apache 當前

 所支援的模組,並且檢視是工作在哪種模式下?

 答案:

 prefork(多程序,每個程序產生子程序)和worker(多程序,每個程序生成多個執行緒)

 prefork 的工作原理是,控制程序在最初建立“StartServers”個子程序後,為了滿足

 MinSpareServers 設定的需要建立一個程序,等待一秒鐘,繼續建立兩個,再等待一秒鐘,

 繼續建立四個……如此按指數級增加建立的程序數,最多達到每秒32 個,直到滿足

 MinSpareServers 設定的值為止。這就是預派生(prefork)的由來。這種模式可以不必

 在請求到來時再產生新的程序,從而減小了系統開銷以增加效能。

 worker 是2.0 版中全新的支援多執行緒和多程序混合模型的MPM。由於使用執行緒來處

 理,所以可以處理相對海量的請求,而系統資源的開銷要小於基於程序的伺服器。但是,

 worker 也使用了多程序,每個程序又生成多個執行緒,以獲得基於程序伺服器的穩定性。這

 種MPM 的工作方式將是Apache 2.0 的發展趨勢。

 可以通過命令httpd -l 可以檢視apache 當前的模組,如果帶有worker.c 就是工作在

 worker 模式下,如果有prefork.c 就是工作在prefork.c 的模式下。

 九、你使用過監控軟體嗎?說說其特點

 使用nagios 對伺服器進行監控,其特點可實時實現手機簡訊、電子郵件、MSN、飛信報警。

 使用cacti 對流量進行監控。

 十、你對現在運維工程師的理解和以及對其工作的認識

 運維工程師在公司當中責任重大,需要保證時刻為公司及客戶提供最高、最快、最穩定、最

 安全的服務。運維工程師的一個小小的失誤,很有可能會對公司及客戶造成重大損失,因此

 運維工程師的工作需要嚴謹及富有創新精神。

 十一、linux 下常用的DNS服務軟體是什麼,舉出幾種常用的DNS記錄,如果域名abc.com

 配置好了一臺郵件伺服器,IP 地址為202.106.0.20,我該如何做相關的解析?是否瞭解

 bind 的智慧解析,如果瞭解請簡述一下其原理

 答案:

 1)常用的DNS 軟體是bind

 2)A 記錄 地址記錄

 MX 記錄 郵件交換記錄

 CNAME 記錄 別名域記錄

 3)修改abc.com 域名的配置檔案,增加以下記錄

 IN MX 10 mail.abc.com.

 mail IN A 202.106.0.20

 4)bind 根據請求解析客戶端的IP 地址,做出不同的解析,其原理是在配置檔案中,設定了

 view,在每個view 都有客戶端的IP 地址段,bind 伺服器根據請求解析客戶端的IP 地址,

 匹配不同的view,再根據該view 的配置,到相應的配置檔案進行查詢,將結果返回給請求

 的客戶端。

 十二、通過apache 訪問日誌access.log 統計IP 和每個地址訪問的次數,按訪問量列出

 前10 名。

 日誌格式樣例如下

 192.168.1.247 – – [02/Jul/2010:23:44:59 0800] “GET / HTTP/1.1″ 200 19

 答案:

 cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

 //這個別的方法也能統計,但有些命令是必要的 awk , sort,uniq ,主要看是否這些命令都

 使用了。

 十三、如何用mysql 命令進行備份和恢復?以test 庫為例,建立一個備份,並再用此備份

 進行恢復。

 mysqldump -u root -p test > test.sql

 mysql -u root -p test < test.sql

 //主要考對方msqldump > test.sql 和 mysql < test.sql

 十四、你認為在系統調優方面都包括哪些工作,以linux 為例,請簡明闡述,並舉一些引數

 為例。

 答案:

 系統調優包括核心引數優化和應用優化2 個方面,對方只要從這兩方面來說,就可以了,

 儘量能有些經驗的闡述。

 有個檔案如下:

 http://a.domain.com/1.html

 http://b.domain.com/1.html

 http://c.domain.com/1.html

 http://a.domain.com/2.html

 http://b.domain.com/2.html

 http://a.domain.com/3.html

 要求:得到主機名(和域名),並統計哪個網址出現的次數,並排序。可以shell 或C。

 得到的結果應該是:

 3 a.domain.com

 2 b.domain.com

 1 c.domain.com

 [[email protected] ~]# awk ‘BEGIN{FS=”/”}{arr[$3] }END{for(i in arr) print

 arr[i],i}’ list| sort -r 答案

 3 a.domain.com

 2 b.domain.com

 1 c.domain.com

 掛載windows 的共享目錄?

 mount.cifs //IP/SHARE linux 的目錄 –verbose -o user=username <–這個使用者是

 windows 下的使用者–verbose 這個引數可以不加,它是顯示過程的

 例如mount.cifs //10.1.1.246/gongxiang /mnt –verbose -o user=gao

 或者是mount -t cifs

 umount /mnt 或umount.cifs /mnt -l <–取消掛載

 圖形介面:smb://IP

 A B 網路是通的,最少列出五種傳輸檔案的服務

 nfs ,ftp,scp ,rsync,samba,http://

 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 系統執行了多少時間?

 2、監控主機執行: ssh [email protected]被監控主機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、[[email protected] 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

 [[email protected] 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、[[email protected] ~]# awk -v count=6 ‘BEGIN

 {srand();str=”0123456789″;len=length(str);for(i=count;i>0;i–)

 marry[i]=substr(str,int(rand()*len),1);for(i=count;i>0;i–)

 printf(“%c”,marry[i]);printf(“\n”);for

 (i=0;i<=count;i ) printf(“%c”,marry[i]);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

 [[email protected] ~]# 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 [email protected]

 [[email protected] ~]# cd .ssh/

 [[email protected] .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 是公鑰檔案。

 [[email protected] .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 機器

 [[email protected] ~]# cd .ssh/

 [[email protected] .ssh]# cat 192.168.1.6 >> authorized_keys

 然後回到192.168.1.6 機器直接

 [[email protected] .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

 read_num=’1′

 ssh “$remote_user”@”${remote_ip[$ip_num]}” df -h > /tmp/diskcheck_tmp

 gep ‘^/dev1 * * * clear

 94.系統中有使用者user1 和user2,同屬於users 組。在user1 使用者目錄下有一檔案file1,

 它擁有644 的許可權,如果user2 使用者想修改user1 使用者目錄下的file1 檔案,應擁有 B 權

 限。

 A 744

 B 664

 C 646

 D 746

 95.如果想配置一臺匿名ftp 伺服器,應修改 C 檔案。

 A /etc/gateway

 B /etc/ftpservers

 C /etc/ftpusers

 D /etc/inetd.conf

 96.Samba 伺服器的程序由B 兩部分組成 。

 A named 和sendmail

 Bsmbd 和nmbd

 C bootp 和dhcpd

 D httpd 和squid

 97.要配置NFS 伺服器,在伺服器端主要配置 C 檔案。

 A /etc/rc.d/rc.inet1

 B /etc/rc.d/rc.M

 C /etc/exports

 D /etc/rc.d/rc.S

 98.為保證在啟動伺服器時自動啟動DHCP 程序,應對 B 檔案進行編輯。

 A /etc/rc.d/rc.inet2

 B /etc/rc.d/rc.inet1

 C /etc/dhcpd.conf

 D /etc/rc.d/rc.S

 99.在配置代理伺服器時,若設定代理伺服器的工作快取為64MB,配置行應為 D 。

 A cache 64MB

 B cache_dir ufs /usr/local/squid/cache 10000 16 256

 C cache_ mgr 64MB

 Dcache_ mem 64MB

 100.安全管理涉及的問題包括保證網路管理工作可靠進行的安全問題和保護網路使用者及網

 絡管理物件問題。 C 屬於安全管理的內容。

 A 配置裝置的工作引數

  收集與網路效能有關的資料

 C 控制和維護訪問許可權

 D 監測故障

 101.以下命令對中,正確的是: B 。

 A ls 和sl

 B cat 和tac

 C more 和erom

 D exit 和tixe

 cat 是顯示資料夾的命令,這個大家都知道,tac 是cat 的倒寫,意思也和它是相反的。cat

 是從第一行顯示到最後一行,而tac 是從最後一行顯示到第一行,而rev 則是從最後一個

 字元顯示到第一個字元

 102. B 命令是在vi 編輯器中執行存檔退出。

 A :q

 B ZZ

 C :q!

 D :WQ

 103.下列關於/etc/fstab 檔案描述,正確的是 D 。

 A fstab 檔案只能描述屬於linux 的檔案系統

 B CD_ROM 和軟盤必須是自動載入的

 C fstab 檔案中描述的檔案系統不能被解除安裝

 D 啟動時按fstab 檔案描述內容載入檔案系統

 104.通過檔名存取檔案時,檔案系統內部的操作過程是通過 C 。

 A 檔案在目錄中查詢檔案資料存取位置。

 B 檔名直接找到檔案的資料,進行存取操作。

 C 檔名在目錄中查詢對應的I 節點,通過I 節點存取檔案資料。

 D 檔名在中查詢對應的超級塊,在超級塊查詢對應i 節點,通過i 節點存取檔案資料

 105.Linux 將儲存裝置和輸入/輸出裝置均看做檔案來操作, C 不是以檔案的形式出現。

 A 目錄

 B 軟連結

 C i 節點表

 D 網路介面卡

 106.關於i 節點和超級塊,下列論述不正確的是 B 。

 A i 節點是一個長度固定的表

 B 超級塊在檔案系統的個數是唯一的

 C i 節點包含了描述一個檔案所必需的全部資訊

 D 超級塊記錄了i 節點表和空閒塊表資訊在磁碟中存放的位置

 107. D 裝置是字元裝置。

 A hdc

 B fd0

 C hda1

 D tty1(A,B,C 為塊裝置)

 108. B 目錄存放著Linux 的原始碼。

 A /etc

 B /usr/src

 C /usr

 D /home

 109.關於檔案系統的安裝和解除安裝,下面描述正確的是 A 。

 A 如果光碟未經解除安裝,光碟機是打不開的

 B 安裝檔案系統的安裝點只能是/mnt 下

 C 不管光碟機中是否有光碟,系統都可以安裝CD-ROM 裝置

 D mount /dev/fd0 /floppy 此命令中目錄/floppy 是自動生成的

 110. B 不是程序和程式的區別。

 A 程式是一組有序的靜態指令,程序是一次程式的執行過程

 B 程式只能在前臺執行,而程序可以在前臺或後臺執行

 C 程式可以長期儲存,程序是暫時的

 D 程式沒有狀態,而程序是有狀態的

 111.檔案exer1 的訪問許可權為rw-r–r–,現要增加所有使用者的執行許可權和同組使用者的寫

 許可權,下列命令正確的是 A 。

 A chmod a x g w exer1 B chmod 765 exer1

 C chmod o x exer1 D chmod g w exer1

 112.有關歸檔和壓縮命令,下面描述正確的是 C 。

 A 用uncompress 命令解壓縮由compress 命令生成的字尾為.zip 的壓縮檔案

 B unzip 命令和gzip 命令可以解壓縮相同型別的檔案

 C tar 歸檔且壓縮的檔案可以由gzip 命令解壓縮

 D tar 命令歸檔後的檔案也是一種壓縮檔案

 113.不是shell 具有的功能和特點的是 C 。

 A 管道 B 輸入輸出重定向 C 執行後臺程序 D 處理程式命令

 114.下列對shell 變數FRUIT 操作,正確的是: C 。

 A 為變數賦值:$FRUIT=apple

 B 顯示變數的值:fruit=apple

 C 顯示變數的值:echo $FRUIT

 D 判斷變數是否有值:[ -f “$FRUIT” ]

 三.簡答題:

 1.簡述Linux 檔案系統通過i 節點把檔案的邏輯結構和物理結構轉換的工作過程。

 參考答案:

 Linux 通過i 節點表將檔案的邏輯結構和物理結構進行轉換。

 i 節點是一個64 位元組長的表,表中包含了檔案的相關資訊,其中有檔案的大小、檔案所有

 者、檔案的存取許可方式以及檔案的型別等重要資訊。在i 節點表中最重要 的內容是磁碟

 地址表 。在磁碟地址表中有13 個塊號,檔案將以塊號在磁碟地址表中出現的順序依次讀

 取相應的塊。Linux 檔案系統通過把i 節點和檔名進行 連線,當需要讀取該檔案時,文

 件系統在當前目錄表中查詢該檔名對應的項,由此得到該檔案相對應的i 節點號,通過該

 i 節點的磁碟地址表把分散存放的檔案物 理塊連線成檔案的邏輯結構。

 2.簡述程序的啟動、終止的方式以及如何進行程序的檢視。

 參考答案:

 在Linux 中啟動一個程序有手工啟動和排程啟動兩種方式:

 (1)手工啟動

 使用者在輸入端發出命令,直接啟動一個程序的啟動方式。可以分為:

 ①前臺啟動:直接在SHELL 中輸入命令進行啟動。

 ②後臺啟動:啟動一個目前並不緊急的程序,如列印程序。

 (2)排程啟動

 系統管理員根據系統資源和程序佔用資源的情況,事先進行排程安排,指定任務執行的時間

 和場合,到時候系統會自動完成該任務。

 經常使用的程序排程命令為:at、batch、crontab。

 3. 簡述DNS 進行域名解析的過程。

 參考答案:

 首先,客戶端發出DNS 請求翻譯IP 地址或主機名。DNS 伺服器在收到客戶機的請求後:

 (1)檢查DNS 伺服器的快取,若查到請求的地址或名字,即向客戶機發出應答資訊;

 (2)若沒有查到,則在資料庫中查詢,若查到請求的地址或名字,即向客戶機發出應答信

 息;

 (3)若沒有查到,則將請求發給根域DNS 伺服器,並依序從根域查詢頂級域,由頂級查

 找二級域,二級域查詢三級,直至找到要解析的地址或名字,即向客戶機所在網路的DNS

 伺服器發出應答資訊,DNS 伺服器收到應答後現在快取中儲存,然後,將解析結果發給客

 戶機。

 (4)若沒有找到,則返回錯誤資訊。

 4.系統管理員的職責包括那些?管理的物件是什麼?

 參考答案:

 系統管理員的職責是進行系統資源管理、裝置管理、系統效能管理、安全管理和系統效能監

 測。管理的物件是伺服器、使用者、伺服器的程序及系統的各種資源等。

 5.簡述安裝Slackware Linux 系統的過程。

 參考答案:

 (1)對硬碟重新分割槽。 (2)啟動Linux 系統(用光碟、軟盤等)。

 (3)建立Linux 主分割槽和交換分割槽。(4)用setup 命令安裝Linux 系統。

 (5)格式化Linux 主分割槽和交換分割槽(6)安裝Linux 軟體包

 (7)安裝完畢,建立從硬碟啟動Linux 系統的LILO 啟動程式,或者製作一張啟動Linux

 系統的軟盤。重新啟動Linux 系統。

 6.什麼是靜態路由,其特點是什麼?什麼是動態路由,其特點是什麼?

 參考答案:

 靜態路由是由系統管理員設計與構建的路由表規定的路由。適用於閘道器數量有限的場合,且

 網路拓樸結構不經常變化的網路。其缺點是不能動態地適用網路狀況的變化,當網路狀況變

 化後必須由網路管理員修改路由表。

 動態路由是由路由選擇協議而動態構建的,路由協議之間通過交換各自所擁有的路由資訊實

 時更新路由表的內容。動態路由可以自動 學習 網路的拓樸結構,並更新路由表。其缺點是

 路由廣播更新資訊將佔據大量的網路頻寬。

 87.程序的檢視和排程分別使用什麼命令?

 參考答案:

 程序檢視的命令是ps 和top。

 程序排程的命令有at,crontab,batch,kill。

 8.當檔案系統受到破壞時,如何檢查和修復系統?

 參考答案:

 成功修復檔案系統的前提是要有兩個以上的主檔案系統,並保證在修復之前首先解除安裝將被修

 復的檔案系統。

 使用命令fsck 對受到破壞的檔案系統進行修復。fsck 檢查檔案系統分為5 步,每一步檢查

 系統不同部分的連線特性並對上一步進行驗證和修改。在執行 fsck 命令時,檢查首先從超

 級塊開始,然後是分配的磁碟塊、路徑名、目錄的連線性、連結數目以及空閒塊連結串列、i-node。

 9.解釋i 節點在檔案系統中的作用。

 參考答案:

 在linux 檔案系統中,是以塊為單位儲存資訊的,為了找到某一個檔案在儲存空間中存放的

 位置,用i 節點對一個檔案進行索引。I 節點包含了描述一個檔案所必須的全部資訊。所以

 i 節點是檔案系統管理的一個資料結構。

 10.什麼是符號連結,什麼是硬連結?符號連結與硬連結的區別是什麼?

 參考答案:

 連結分硬連結和符號連結。

 符號連結可以建立對於檔案和目錄的連結。符號連結可以跨檔案系統,即可以跨磁碟分割槽。

 符號連結的檔案型別位是l,連結檔案具有新的i 節點。

 硬連結不可以跨檔案系統。它只能建立對檔案的連結,硬連結的檔案型別位是-,且硬連結

 檔案的i 節點同被連結檔案的i 節點相同。

 11.在對linux 系統分割槽進行格式化時需要對磁碟簇(或i 節點密度)的大小進行選擇,請

 說明選擇的原則。

 參考答案:

 磁碟簇(或i 節點密度)是檔案系統排程檔案的基本單元。磁碟簇的大小,直接影響系統調

 度磁碟空間效率。當磁碟分割槽較大時,磁碟簇也應選得大些;當分割槽較小時,磁碟簇應選得

 小些。通常使用經驗值。

 1

 2.簡述網路檔案系統NFS,並說明其作用。

 參考答案:

 網路檔案系統是應用層的一種應用服務,它主要應用於Linux 和Linux 系統、Linux 和Unix

 系統之間的檔案或目錄的共享。對於使用者而言可以通過 NFS 方便的訪問遠地的檔案系統,

 使之成為本地檔案系統的一部分。採用NFS 之後省去了登入的過程,方便了使用者訪問系統

 資源。

 13.某/etc/fstab 檔案中的某行如下:

 /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2

 請解釋其含義。

 參考答案:

 (1)第一列:將被載入的檔案系統名;(2)第二列:該檔案系統的安裝點;

 (3)第三列:檔案系統的型別;(4)第四列:設定引數;

 (5)第五列:供備份程式確定上次備份距現在的天數;

 (6)第六列:在系統引導時檢測檔案系統的順序。

 14.Apache 伺服器的配置檔案httpd.conf 中有很多內容,請解釋如下配置項:

 (1)MaxKeepAliveRequests 200 (2)UserDir public_html

 (3)DefaultType text/plain (4)AddLanguare en.en

 (5)DocumentRoot“/usr/local/httpd/htdocs”

 (6)AddType application/x-httpd-php.php.php.php4

 參考答案:

 (1)允許每次連線的最大請求數目,此為200;(2)設定使用者放置網頁的目錄;

 (3)設定伺服器對於不認識的檔案型別的預設格式;

 (4)設定可傳送語言的檔案給瀏覽器;(5)該目錄為Apache 放置網頁的地方;

 6)伺服器選擇使用php4。

 15.某Linux 主機的/etc/rc.d/rc.inet1 檔案中有如下語句,請修正錯誤,並解釋其內容。

 /etc/rc.d/rc.inet1:

 ……

 ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1

 ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1

 參考答案:

 修正錯誤:

 (1)ROUTE 應改為小寫:route;(2)netmask 255.255.0.0 應改為:netmask

 255.255.255.0;

 (3)預設路由的子網掩碼應改為:netmask 0.0.0.0;

 (4)預設路由必須在最後設定,否則其後的路由將無效。

 解釋內容:

 (1)route:建立靜態路由表的命令;(2)add:增加一條新路由;

 (3)-net 192.168.1.0:到達一個目標網路的網路地址;

 (4)default:建立一條預設路由;(5)gw 192.168.0.101:閘道器地址;

 (6)metric 1:到達目標網路經過的 路由器 數(跳數)。

 6.試解釋apache 伺服器以下配置的含義:

 (1)port 1080 (2)UserDir userdoc

 (3)DocumentRoot “/home/htdocs”

 (4);

 Options Indexes FollowSymLinks

 AllowOverride None

 Order deny,allow

 deny from all

 allow from 192.168.1.5

 ;

 (5)Server Type Standlone

 考答案:

 Apache 伺服器配置行含義如下:

 (1)將apache 伺服器的埠號設定為1080;

 (2)設定使用者網頁目錄為userdoc;

 (3)設定apache 伺服器的網頁根目錄:/home/htdocs;

 (4)在此apache 伺服器上設定一個目錄/home/htdocs/inside,且此目錄只允許IP 地

 址為192.168.1.5 的主機訪問;

 (5)定義apache 伺服器以獨立程序的方式執行。

 17.簡述使用ftp 進行檔案傳輸時的兩種登入方式?它們的區別是什麼?常用的ftp 檔案傳

 輸命令是什麼?

 參考答案:

 (1)ftp 有兩種登入方式:匿名登入和授權登入。使用匿名登入時,使用者名稱為:anonymous,

 密碼為:任何合法email 地址;使用授權登入時,使用者名稱為使用者在遠端系統中的使用者帳號,

 密碼為使用者在遠端系統中的使用者密碼。

 區別:使用匿名登入只能訪問ftp 目錄下的資源,預設配置下只能下載;而授權登入訪問的

 許可權大於匿名登入,且上載、下載均可。

 (2)ftp 檔案傳輸有兩種檔案傳輸模式:ASCII 模式和binary 模式。ASCII 模式用來傳

 輸文字檔案,其他檔案的傳輸使用binary 模式。

 (3)常用的ftp 檔案傳輸命令為:bin、asc、put、get、mput、mget、prompt、bye

 四.程式設計與應用題:

 1.用Shell 程式設計,判斷一檔案是不是字元裝置檔案,如果是將其拷貝到 /dev 目錄下。

 參考程式:

 #!/bin/sh

 FILENAME=

 echo “Input file name:”

 read FILENAME

 if [ -c “$FILENAME” ]

 then

 cp $FILENAME /dev

 fi

 2.請下列shell 程式加註釋,並說明程式的功能和呼叫方法:#!/bin/sh

 #!/bin/sh

 #

 # /etc/rc.d/rc.httpd

 #

 # Start/stop/restart the Apache web server.

 #

 # To make Apache start automatically at boot, make this

 # file executable: chmod 755 /etc/rc.d/rc.httpd

 #

 case “$1” in

 ‘start’)

 /usr/sbin/apachectl start ;;

 ‘stop’)

 /usr/sbin/apachectl stop ;;

 ‘restart’)

 /usr/sbin/apachectl restart ;;

 *)

 echo “usage $0 start|stop|restart” ;;

 esac

 參考答案:

 (1)程式註釋

 #!/bin/sh 定義實用的shell

 #

 # /etc/rc.d/rc.httpd 註釋行,凡是以星號開始的行均為註釋行。

 #

 # Start/stop/restart the Apache web server.

 #

 # To make Apache start automatically at boot, make this

 # file executable: chmod 755 /etc/rc.d/rc.httpd

 #

 case “$1” in #case 結構開始,判斷“位置引數”決定執行的操作。本程式攜帶一個“位置

 引數”,即$1

 ‘start’) #若位置引數為start

 /usr/sbin/apachectl start ;; #啟動httpd 程序

 ‘stop’) #若位置引數為stop

 /usr/sbin/apachectl stop ;; #關閉httpd 程序

 ‘restart’) #若位置引數為stop

 /usr/sbin/apachectl restart ;; #重新啟動httpd 程序

 *) #若位置引數不是start、stop 或restart 時

 echo “usage $0 start|stop|restart” ;; #顯示命令提示資訊:程式的呼叫方法

 esac #case 結構結束

 (2)程式的功能是啟動,停止或重新啟動httpd 程序

 (3)程式的呼叫方式有三種:啟動,停止和重新啟動。

 3.設計一個shell 程式,新增一個新組為class1,然後新增屬於這個組的30 個使用者,用

 戶名的形式為stdxx,其中xx 從01 到30。

 參考答案:

 #!/bin/sh

 i=1

 groupadd class1

 while [ $i -le 30 ]

 do

 if [ $i -le 9 ] ;then

 USERNAME=stu0${i}

 else

 USERNAME=stu${i}

 fi

 useradd $USERNAME

 mkdir /home/$USERNAME

 chown -R $USERNAME /home/$USERNAME

 chgrp -R class1 /home/$USERNAME

 i=$(($i 1))

 done

 4.編寫shell 程式,實現自動刪除50 個賬號的功能。賬號名為stud1 至stud50。

 參考程式:

 #!/bin/sh

 i=1

 while [ $i -le 50 ]

 do

 userdel -r stud${i}

 i=$(($i 1 ))

 done

 5.某系統管理員需每天做一定的重複工作,請按照下列要求,編制一個解決 方案 :

 (1)在下午4 :50 刪除/abc 目錄下的全部子目錄和全部檔案;

 (2)從早8:00~下午6:00 每小時讀取/xyz 目錄下x1 檔案中每行第一個域的全部資料

 加入到/backup 目錄下的bak01.txt 檔案內;

 (3)每逢星期一下午5:50 將/data 目錄下的所有目錄和檔案歸檔並壓縮為檔案:

 backup.tar.gz;

 (4)在下午5:55 將IDE 介面的CD-ROM 解除安裝(假設:CD-ROM 的裝置名為hdc);

 (5)在早晨8:00 前開機後啟動。

 參考答案:

 解決方案:

 (1)用vi 建立編輯一個名為prgx 的crontab 檔案;

 prgx 檔案的內容:

 50 16 * * * rm -r /abc/*

 (2)、0 8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt

 (3)、50 17 * * * tar zcvf backup.tar.gz /data

 (4)、55 17 * * * umount /dev/hdc

 (5)、由超級使用者登入,用crontab 執行 prgx 檔案中的內容:

 [email protected]:#crontab prgx;在每日早晨8:00 之前開機後即可自動啟動crontab。

 ---------------------------------------

 -------

 6.設計一個shell 程式,在每月第一天備份並壓縮/etc 目錄的所有內容,存放在/root/bak

 目錄裡,且檔名為如下形式yymmdd_etc,yy 為年,mm為月,dd 為日。Shell 程式

 fileback 存放在/usr/bin 目錄下。

 參考答案:

 (1)編寫shell 程式fileback:

 #!/bin/sh

 DIRNAME=`ls /root | grep bak`

 if [ -z “$DIRNAME” ] ; then

 mkdir /root/bak

 cd /root/bak

 fi

 YY=`date %y`

 MM=`date %m`

 DD=`date %d`

 BACKETC=$YY$MM$DD_etc.tar.gz

 tar zcvf $BACKETC /etc

 echo “fileback finished!”

 (2)編寫任務定時器:

 echo “0 0 1 * * /bin/sh /usr/bin/fileback” >; /root/etcbakcron

 crontab /root/etcbakcron

 或使用crontab -e 命令新增定時任務:

 0 1 * * * /bin/sh /usr/bin/fileback

 7.有一普通使用者想在每週日凌晨零點零分定期備份/user/backup 到/tmp 目錄下,該用

 戶應如何做?

 參考答案:(1)第一種方法:

 使用者應使用crontab –e 命令建立crontab 檔案。格式如下:

 0 0 * * sun cp –r /user/backup /tmp

 (2)第二種方法:

 使用者先在自己目錄下新建檔案file,檔案內容如下:

 0 * * sun cp –r /user/backup /tmp

 然後執行 crontab file 使生效。

 8.設計一個Shell 程式,在/userdata 目錄下建立50 個目錄,即user1~user50,並設

 置每個目錄的許可權,其中其他使用者的許可權為:讀;檔案所有者的許可權為:讀、寫、執行;文

 件所有者所在組的許可權為:讀、執行。

 參考答案: 建立程式 Pro16 如下:

 #!/bin/sh

 i=1

 while [ i -le 50 ]

 do

 if [ -d /userdata ];then

 mkdir -p -m 754 /userdata/user$i 加上-m 754 就不用寫下面那一句了 -p 是遞迴建

 立目錄

 #chmod 754 /userdata/user$i

 echo “user$i”

 let “i = i 1” (或i=$(($i 1))

 else

 mkdir /userdata

 mkdir -p -m /userdata/user$i

 #chmod 754 /userdata/user$i

 echo “user$i”

 let “i = i 1” (或i=$(($i+1))

 fi

 done

 五、多選題

 1.關於硬連結的描述正確的(BE)。

 A 跨檔案系統

 B 不可以跨檔案系統

 D 可以做目錄的連線

 C 為連結檔案建立新的i 節點 E 連結檔案的i 節點同被連結檔案的i 節點

 2.在網站釋出使用者wang 的個人網頁時,需要建立使用者網頁目錄,假定使用者網頁目錄設定

 為web

 (使用者目錄在/home 目錄下),如下描述正確的是(BCE)

 A 存放使用者網頁的絕對路徑/wang/web

 B 存放使用者網頁的目錄~wang/

 C 存放使用者網頁的絕對路徑/home/wang/web D 存放使用者網頁的絕對路徑/home/web

 E 在本機訪問使用者wang 的個人網頁的URL 地址http://localhost/~wang/

 3.在一臺WWW伺服器上將埠號設定為8000,預設的網頁檔案index.html,伺服器

 網頁的根目錄/www。在本機訪問伺服器時,正確的用法是(BDE)

 A 瀏覽器訪問該伺服器的URL 地址http://localhost/

 B 瀏覽器訪問該伺服器的URL 地址http://localhost:8000/

 C 瀏覽器訪問該伺服器的使用者li 網頁URL 地址http://localhost/~li

 D 瀏覽器訪問該伺服器的使用者li 網頁URL 地址http://localhost:8000/~li

 E 瀏覽器訪問該伺服器的URL 地址localhost:8000/

 4.在shell 程式設計中關於$2 的描述正確的是(CE)

 A 程式後攜帶了兩個位置引數

 B 巨集替換

 C 程式後面攜帶的第二個位置引數

 D 攜帶位置引數的個數 E 用$2 引用第二個位置引數

 5.某檔案的許可權是 – r w x r – – r- -,下面描述正確的是(CD)

 A 檔案的許可權值是755

 B 檔案的所有者對檔案只有讀權 限

 C 檔案的許可權值是 744

 D 其他使用者對檔案只有讀許可權 E 同組使用者對檔案只有寫許可權

 6.關於OpenSSH 的作用的描述正確的是(ACE)

 A 開放原始碼的安全加密程式

 B OpenSSH 常用於為http 協議加密

 C OpenSSH 用於提高遠端登入訪問的安全性

 D 它和telnet 實用同樣的埠號

 E OpenSSH 是免費下載的應程式

 7.關於NFS 伺服器描述正確的是(BC)

 A 網路中實現Windows 系統之間檔案系統共享的應用軟體

 B 網路中實現Linux 系統之間檔案系統共享的應用軟體

 C 網路中實現Unix 系統之間檔案系統共享的應用軟體

 D 網路中實現Windows 系統和Unix 之間檔案系統共享的應用軟體

 E 網路中實現Windows 系統和Linux 之間檔案系統共享的應用軟體

 8.關於sed 描述正確的是(ABD)

 A sed 是Linux 系統中的流編輯器

 B sed 是UNIX 系統中的流編輯器

 C sed 網路檔案系統的型別

 D 利用管道對標準輸入/標準輸入的資料進行編輯和組合

 E sed 是NFS 的應用程式

 9.關於限制磁碟限額,描述正確的是(ABD)

 A 使用edquota 可以監控系統所有使用者使用的磁碟空間,並在接近極限時提示使用者

 B 使用者組的磁碟限額是使用者組內所有使用者予設磁碟空間總和

 C 單個使用者的磁碟限額就是該使用者所在使用者組內所有磁碟限額的總合

 D 在Linux 系統下限制使用者使用的磁碟空間可以使用edquota

 E 使用者組的磁碟限額就是該使用者組內擁有最大磁碟限額值的使用者的磁碟限額

 10.關於建立系統使用者的正確描述是()

 A 在Linux 系統下建立使用者使用adduser 命令

 B 每個系統使用者分別在/etc/passwd 和/etc/shadow 檔案中有一條記錄

 C 訪問每個使用者的工作目錄使用命令“cd /使用者名稱”

 D 每個系統使用者在預設狀態下的工作目錄在/home/使用者名稱

 E 每個系統使用者在/etc/fstab 檔案中有一條記錄

 lspci |grep Ethernet ==檢視機器雙網絡卡

 mii-tool 檢視網線是否接號

 使用者程序、系統程序、IO 程序、空閒的比例” 如果idle 時常處於0,則需要檢查引起大量

 CPU 消耗的原因

 記憶體使用情況 “vmstat:觀察free 值

 top: 觀察memory 項” 低於50 時,值得注意

 交換區使用情況 “vmstat:觀察pi、po 值

 top: 觀察paging/paging space 項 free: 觀察Swap 行的值” 當空閒值低時,值得

 注意

 I/O 情況 “sar -u:觀察io 佔用系統情況

 iostat -d:觀察哪塊盤io 較多

 top:觀察io 最多的程序” IO 值過高的程序將會嚴重影響到整機的效能,要對高IO 的程序

 重點監控,檢查

 系統程序 ps aux 有無多個相同的程序名

 df -h:檢查空間使用達到90%的檔案系統 尤其是使用情況

 系統日誌 last:觀察最近的主機登入情況,檢視var/log/messages 檔案內容, 對不明

 主機進行檢查

 網路狀況 ping:檢視到其他主機的time 值是否小於10ms 無頻繁丟包

 top 查詢 CPU, 記憶體, 系統程序情況 ( CPU 記憶體瓶頸), 某個程序

 cat /etc/redhat-release <—看本機系統是什麼版本的

 smartmontools-5.38-2.el5

 smartctl –all /dev/sda 檢測磁碟有沒有壞塊

 smartctl -i /dev/sda

 vim /etc/smartd.conf

 /dev/sda -a -d sat 把硬碟註冊為sat 57 行

 /dev/sda -d scsi -s L/../../3/18 開啟註釋 65 行

 service smartd restart 磁碟有問題的話,會發郵件給管理員的

 service sendmail restart

 yum istall -y sysstat

 iostat 看當前磁碟讀寫的情況 iostat 2 10 查詢當前狀態 ( 磁碟 i/o )

 sar 2 10 查詢當前狀態 ( service sysstat start )

 sar -r ( 記憶體 )

 sar -u ( cpu )

 sar -P ( cpu ) –> sar -P 0 || sar -P ALL

 sar -b ( i/o )

 sar -n DEV ( 網路裝置 )

 sar -f

 service sysstat on

 checkconfig sysstat on 每十分鐘蒐集一次資訊

 sar -f /var/log/sa/sa13 -s 10:10:00 -e 11:10:00 檢視昨天(今天是14 號)10:

 10:00 到 11:10:00 的系統情況

 針對日誌 /var/log/sa/* 查詢之前的日誌資訊

 sar -n DEV

 tty 看自己的

 mpstat 2 檢視cpu 狀態

 vmstat 2 10

 mpstat 2 10 <- cpu 每二秒顯示一次,共顯示十次

 vmstat 2 10 <- 整體資源

 free ltrace

 pmap 程序號 是看這個程序佔了多少記憶體

 pgrep httpd 查詢這個服務的所有程序號 killall httpd 殺掉所有 <--不怎麼安全

 ps aux | grep mysql |xargs kill -9 殺掉所有前面查出來的所有程序 <--推薦用這個

 pstree ps nice renice 不建議把系統資源的優先順序提高

 ldd /bin/ls 顯示當前這個命令執行時所需要的庫檔案

 yum install strace -y

 strace 服務名稱 分析出當前的命令執行時所找的庫檔案的路徑

 lspci | grep Ethernet 查本機有哪些網絡卡裝置

 dmesg 檢視本機的裝置資訊

 mii-tool 看本機網絡卡是否連線正常

 iptraf 檢視本機當前的流量