




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第10章Linux系統(tǒng)管理
10.1系統(tǒng)管理概述10.2啟動與關閉系統(tǒng)10.3用戶管理10.4文件系統(tǒng)維護10.5系統(tǒng)備份10.6系統(tǒng)監(jiān)控10.7軟件安裝習題
10.1系統(tǒng)管理概述
系統(tǒng)管理是指針對系統(tǒng)進行的一些日常管理和維護性工作,以保證系統(tǒng)安全、可靠地運行,保證用戶能夠合理、有效地使用系統(tǒng)資源來完成任務。10.1.1系統(tǒng)管理工作的內(nèi)容
Linux的系統(tǒng)管理工作大致可分為基本系統(tǒng)管理、網(wǎng)絡管理和應用管理3部分。對于大型系統(tǒng),每部分都設置專門的管理員,如系統(tǒng)管理員、網(wǎng)絡管理員、數(shù)據(jù)庫管理員、應用系統(tǒng)(WEB系統(tǒng)、郵件系統(tǒng))管理員等。小型系統(tǒng)則往往由一人負責全部管理工作。
本章只介紹基本系統(tǒng)管理,主要包括以下幾項內(nèi)容:
●啟動與關閉系統(tǒng);
●用戶管理;
●文件系統(tǒng)維護;
●系統(tǒng)備份;
●系統(tǒng)監(jiān)視與控制;
●軟件安裝。10.1.2系統(tǒng)管理工具
系統(tǒng)管理員通常使用以下3種方法來管理和維護系統(tǒng):
(1)直接編輯系統(tǒng)配置文件和腳本文件。Linux系統(tǒng)的所有配置文件都是純文本文件,大多數(shù)系統(tǒng)配置文件位于/etc和/usr/etc目錄下,可以用vi等編輯器直接修改。這是最基本的,有時也是唯一可用的手段。
(2)使用Shell命令。Linux系統(tǒng)提供了豐富的系統(tǒng)管理命令,大多數(shù)管理命令位于/sbin和/usr/sbin目錄下。這些命令是最安全、最有效,也是最靈活的系統(tǒng)管理工具。
(3)使用圖形化管理工具。Linux的各個發(fā)行版都提供了一些圖形界面的系統(tǒng)管理工具。這類工具使用起來簡單方便,能完成大部分管理工作。
應當指出的是,圖形化的系統(tǒng)管理工具雖然非常易用,但不能完全替代命令方式的操作。這是因為:第一,這些工具依賴于發(fā)行版本,缺乏一致性;第二,它們受圖形界面操作方式的限制,無法獲得命令所具有的高效率、高靈活性和自動化的特性;第三,當系統(tǒng)發(fā)生故障時,圖形化工具對于診斷和修正問題沒有太大的幫助。所以,作為Linux系統(tǒng)管理員,掌握前兩種方式,尤其是命令方式是非常必要的。10.1.3root的權威性與危險性
與Windows系統(tǒng)的Administrator賬號相比,Linux賦予root更多的權限。root幾乎可以對系統(tǒng)做任何事情,他擁有對系統(tǒng)內(nèi)所有用戶的管理權,對所有文件和進程的處置權,以及對所有服務的使用權。Linux系統(tǒng)總是假設root知道自己在干什么,而不會加以限制。這種信任對于熟練的系統(tǒng)管理員來說是權威和自由,而對于初學者來說則可能是潛在的災難。因為一旦某個操作失誤,就有可能給系統(tǒng)造成重大損失以至崩潰。
由于root賬號的權威性,系統(tǒng)管理員要嚴格保護root口令,防止口令泄露??诹顟銐驈碗s、足夠長,并經(jīng)常更換。此外,系統(tǒng)管理員還應具有一個普通用戶的賬號,登錄時(尤其是遠程登錄時)應以普通用戶身份進入系統(tǒng),只在必要時變換成root。
10.2啟動與關閉系統(tǒng)
10.2.1系統(tǒng)的運行級別
Linux系統(tǒng)用運行級別(runlevel)來刻畫系統(tǒng)的運行狀態(tài)。在不同的狀態(tài)下,系統(tǒng)啟動的程序不同,提供的服務功能也就不同。Linux系統(tǒng)設有7個運行級別,見表10-1。系統(tǒng)通常工作在1~5級,每一級都是在上一級的基礎上增加啟動了某些特定的服務。比如,2級比1級增加了多用戶支持,3級又增加了網(wǎng)絡支持,5級又增加了圖形界面的支持。
系統(tǒng)啟動時的默認級別在文件/etc/inittab中指定,桌面系統(tǒng)的默認啟動級別通常是5,服務器系統(tǒng)的默認啟動級別通常是3。root可以通過修改此文件來改變系統(tǒng)默認的運行級別。系統(tǒng)啟動后root也可以用init(也就是telinit)命令改變系統(tǒng)的運行級別。
init命令的格式是:init運行級別
例如:init0為關機;init5為啟動X系統(tǒng);init3為停止X系統(tǒng);init6為重新啟動。10.2.2系統(tǒng)的啟動
系統(tǒng)的啟動過程是:系統(tǒng)加電后,計算機硬件BIOS進行開機自檢,然后,從引導盤(通常是硬盤)的第1個扇區(qū)中加載一小段引導代碼到內(nèi)存。引導代碼隨后開始運行,負責將操作系統(tǒng)的內(nèi)核裝入內(nèi)存。內(nèi)核加載完畢后,引導代碼將控制交給內(nèi)核。
Linux內(nèi)核開始運行,首先進行硬件和設備的初始化,掛裝root文件系統(tǒng),然后啟動init進程(/sbin/init程序)運行。init是系統(tǒng)內(nèi)核啟動的第一個用戶級進程,其進程號為1。該進程在系統(tǒng)運行期間始終存在,在系統(tǒng)的啟動和關閉時起著重要的作用。在啟動階段,init進程負責完成系統(tǒng)的初始化,包括掛裝各文件系統(tǒng)和啟動一系列后臺進程,將系統(tǒng)一級一級地引導到默認的運行級別。初始化過程完成后,在各控制臺上的login登錄進程都已啟動運行,守侯用戶登錄。
系統(tǒng)管理員對系統(tǒng)啟動的過程不能直接干預,但可以通過編輯系統(tǒng)啟動腳本/etc/inittab文件來改變系統(tǒng)的啟動配置。10.2.3系統(tǒng)的關閉與重啟
1.關閉系統(tǒng)
關閉Linux系統(tǒng)不應直接切斷電源,而應使用系統(tǒng)關機命令。這主要是因為Linux利用磁盤緩沖區(qū)緩存了要寫入磁盤的數(shù)據(jù),若遇系統(tǒng)掉電,這些數(shù)據(jù)可能還未寫入磁盤,有可能會造成文件系統(tǒng)數(shù)據(jù)丟失或不一致。在關機命令執(zhí)行的過程中,系統(tǒng)要將緩沖區(qū)中的數(shù)據(jù)寫進硬盤,以保持文件數(shù)據(jù)的同步。此外,在多用戶工作的環(huán)境下,妥善的關機過程可以提醒用戶及時保存文件和退出,避免因意外中斷而造成損失。在多用戶模式下最安全的關機方法是用shutdown命令關閉系統(tǒng)。命令首先向各登錄用戶的終端發(fā)送信息,通知他們退出,并凍結login進程。在給定期限到達后,向init進程發(fā)信號,請求其改變運行級別。init進程向各個進程發(fā)送SIGTERM信號,要它們終止運行,將磁盤緩沖區(qū)內(nèi)容寫入磁盤,然后拆卸文件系統(tǒng),進入單用戶或關機模式。注意:對于普通用戶來說,系統(tǒng)進入單用戶模式運行就等同于關機。
shutdown命令
【功能】關閉系統(tǒng),缺省是進入單用戶模式。
【格式】shutdown[選項]時間[警示消息]
【選項】
-h 關閉系統(tǒng)(0級);
-r 重新啟動系統(tǒng)(6級);
【參數(shù)】時間可以是關機的絕對時間,格式為hh:mm;也可以是關機的延時時間,即以分鐘為單位的延時數(shù)字;還可以是now,表示立即關機。警示消息指定向登錄用戶發(fā)出的關機警示信息。
例10.110分鐘后進入單用戶模式:
#shutdown10“It’stimeforroutinemaintenance,pleaselogoutnow.”
此時,所有登錄用戶的屏幕上都會出現(xiàn)root發(fā)出的關機警示以及系統(tǒng)的關機提示信息:
Broadcastmessagefromroot(tty1)(TueMar1821:37:492008):
It’stimeforroutinemaintenance,pleaselogoutnow.
ThesystemisgoingDOWNtomaintenancemodein10minutes!
以上信息將每分鐘出現(xiàn)一次,以倒記時的方式提示距關機時刻的分鐘數(shù)。10分鐘后系統(tǒng)降為單用戶級別運行,此時只有root可以進行系統(tǒng)維護操作。
在沒有多個用戶登錄的情況下,root可以使用其他更簡單的關機命令,如用halt、init0或init1命令來關機。
2.重啟系統(tǒng)
當添加了新的硬件或現(xiàn)有硬件出現(xiàn)問題不能復位時,通常需要重新啟動系統(tǒng)。如果修改了某些與內(nèi)核相關的配置文件,為使修改生效,也需要重啟系統(tǒng)。系統(tǒng)重啟過程是系統(tǒng)關閉然后再啟動的過程。
重新啟動系統(tǒng)的命令是shutdown-r命令。簡單的重啟可以使用reboot或init6命令。
應當注意的是,Linux系統(tǒng)中的很多部分可以單獨地對待,比如XWindow系統(tǒng)及網(wǎng)絡。因為它們沒有與內(nèi)核捆綁,因而可以獨立地啟動、關閉或重啟。系統(tǒng)管理員應盡量針對某個軟件進行停止或重啟操作,在非必要時避免系統(tǒng)級的關機或重啟操作。
10.3用戶管理
Linux是一個多用戶系統(tǒng),通常會擁有少至幾個多至幾百個的可登錄用戶。為確保系統(tǒng)的安全性和有效性,必須對用戶進行妥善的管理和控制,這是系統(tǒng)管理的一項重要工作。
10.3.1用戶管理概述
用戶管理就是對用戶賬號進行管理。用戶賬號是用戶在系統(tǒng)中的標識,用以鑒別用戶身份,限制用戶的權限,防止用戶非法或越權使用系統(tǒng)資源。
用戶管理的工作包括建立、刪除用戶和用戶組,以及管理用戶的登錄口令等。
1.用戶
系統(tǒng)中每個用戶擁有一個唯一的用戶名(loginname)和用戶標識符(UID)。用戶名供用戶登錄系統(tǒng)使用,而系統(tǒng)則通過UID來識別用戶、定義文件和進程的歸屬關系。
系統(tǒng)將用戶分為以下3類:
(1)超級用戶:每個系統(tǒng)都有一個超級用戶賬號,在安裝系統(tǒng)時建立。超級用戶的用戶名為root,UID是0。
(2)普通用戶:普通用戶是指除root外的可登錄的用戶,由root建立。普通用戶的UID大于或等于500。
(3)特殊用戶:?特殊用戶是系統(tǒng)內(nèi)部使用的賬號,不能登錄使用。特殊用戶的賬號有bin、sys、nobody、daemon等,UID為1~499。通常這些賬號只能被系統(tǒng)守護進程使用,用來訪問具有特殊UID的文件。
系統(tǒng)中每個用戶都對應一個用戶賬戶(保存在passwd文件中)和口令(保存在shadow文件中)。root和普通用戶還擁有自己的主目錄和郵箱。
用戶登錄后可以用su命令改變身份,常用于系統(tǒng)管理員在必要時從普通用戶改變到root。
su命令
【功能】轉(zhuǎn)變?yōu)榱硪粋€用戶。
【格式】su[-][用戶名]
【說明】不指定用戶名時,轉(zhuǎn)換到root;指定“-”選項時,同時變換環(huán)境。普通用戶執(zhí)行su時,須輸入要轉(zhuǎn)變?yōu)榈挠脩艨诹睢?/p>
例10.2
轉(zhuǎn)變?yōu)閞oot:
$su- #轉(zhuǎn)變?yōu)閞oot
password:(輸入root的口令)
#(轉(zhuǎn)換為root賬號,環(huán)境也變?yōu)閞oot的環(huán)境)
...
#exit
$
(回到原來用戶賬號)
2.用戶組
用戶組是可共享文件和其他系統(tǒng)資源的用戶集合。分組的原則可以是按工作關系或用戶性質(zhì)來劃分。例如,參與同一個項目的用戶可以形成一個組。一個組中可以包含多個用戶,同組用戶具有相同的組權限。一個用戶也可以歸屬于多個組。每個用戶組有一個組賬戶(保存在group文件中),用唯一的組名和組標識符GID標識。
3.用戶權限
Linux使用屬主和屬組概念來描述文件和進程的歸屬關系,在此基礎上定義對文件的訪問權限。關于文件的歸屬關系及權限定義在第2.3.1小節(jié)中已經(jīng)介紹了,這里需要介紹的是進程的歸屬關系和權限定義。進程的屬主通常是啟動該進程的用戶,進程的屬組就是該用戶所在的用戶組。進程的屬主與屬組屬性限制了它對文件的訪問權限:文件的屬主進程對它有絕對的控制權;同屬組的進程對其享有共同的組權限;其他進程只具有其他用戶的權限。屬主為root的進程可以超越任何權限限制來訪問文件。例10.3
顯示進程的屬主、屬組、PID和命令:
$ps-ouser,group,pid,args
USER GROUP PID
COMMAND
cherry faculty 1978
bash
cherry faculty 3600
ps-ouser,group,pid,args
$10.3.2用戶管理的相關文件
1.?passwd文件
用戶賬號文件/etc/passwd存放用戶賬戶的基本信息。每個用戶賬戶占一行,每行由7個域組成,用冒號分隔各個域,格式如下:
登錄名:密碼:用戶標識符UID:組標識符GID:用戶信息:主目錄:登錄Shell
passwd文件的屬主為root,權限為644,即任何人可讀,root可讀/寫。例10.4
一個passwd文件的部分內(nèi)容:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
…
cheng:x:500:500:cic:/home/cheng:/bin/bash
cherry:x:501:501::/home/cherry:/bin/bash密碼域用于放置用戶登錄口令。但由于passwd文件未加密,且所有人可讀,故通常的做法是將加密后的口令放在只有root可讀的shadow文件中。出于習慣,在密碼域中通常只放一個“x”字符,其他符號也可以。
用戶信息域中存放用戶相關的信息,如真實姓名、辦公室地址、電話等。這些信息也可以通過usermod命令或chfn命令修改(見man手冊頁),用finger命令查看(見11.2.2小節(jié))。此域可以不填寫。主目錄域標明用戶的主目錄。當用戶登錄時,Shell自動將主目錄作為它的當前目錄。普通用戶的主目錄一般放在/home下,也可以指定其他位置。
登錄Shell域指定用戶登錄時運行的程序,通常是某個版本的Shell程序,但也可以是其他某個程序。若未指定則默認啟動/bin/sh(對于Linux系統(tǒng)來說,sh就是bash)。
2.?shadow文件
現(xiàn)在的Linux系統(tǒng)都使用了shadow技術,即將加密后的口令放在/etc/shadow文件中,而在passwd中相應的位置只放一個“x”。shadow只對超級用戶是可讀的,一般用戶無法讀取。shadow文件保存了所有用戶口令的加密信息以及口令的有效期信息。每個用戶一行,每行由如下9個域組成,用冒號分隔各個域:
登錄名:加密口令:口令上次更改時間:口令再次更改的最小天數(shù):口令再次更改的最大天數(shù):口令失效前警告用戶的天數(shù):口令失效距賬號被封的天數(shù):賬號被封時間:保留字段
shadow文件的屬主為root,權限為400。例10.5
一個shadow文件的部分內(nèi)容:
root:y9e2Gzjq/MCCc:11145:0:99999:7:::
bin:*:11145:0:99999:7:::
daemon:*:11145:0:99999:7:::
adm:*:11145:0:99999:7:::
…
cheng:$1$PwqdIiQ0$vBYHwbSA/Mt31OICCwSrI/:11242:0:99999:7:::
cherry:*$1$QRfSIh.2$6UokDtNIau1sjTsEAe3Kp0:11258:0:99999:7:::
其中,第4字段為0表示用戶可以隨時更改口令;第5字段為99999表示口令永不失效;第6字段為7表示口令失效前7天系統(tǒng)會警示用戶口令即將失效;其余字段為空表示沒有相應的設置。
3.?group文件
組賬號文件/etc/group保存了各個組的賬號信息,每個組占一行,每行包括4個域,格式如下:
組名:口令:組描述符GID:用戶列表
group文件的屬主為root,權限為644。
例10.6
一個group文件的部分內(nèi)容:
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
…
cheng::500:cheng
faculty::501:cherry10.3.3用戶管理
1.添加用戶
添加用戶的命令是useradd,它主要完成以下工作:
(1)向passwd、shadow和group文件寫入用戶信息。
(2)在/home目錄下建立用戶主目錄。
(3)將/etc/skel目錄下的文件拷貝到用戶主目錄下,作為用戶的環(huán)境初始化腳本。
(4)在/var/spool/mail目錄下建立用戶的郵箱。
useradd命令
【功能】添加一個新用戶。
【格式】useradd[選項]用戶名
【選項】
-d目錄 指定用戶的主目錄,否則使用默認的主目錄/home/用戶名。
-e日期 指定用戶賬號的終止日期,格式為YYYY-MM-DD。
-g組名 指定用戶的用戶組,否則默認使用與UID相同的GID。
-sshell
指定用戶的登錄Shell,否則默認使用bash。
例10.7
用useradd命令添加用戶:
#useradd-gfacultyzhaoxin
#添加新用戶zhaoxin,組為faculty
#useradd-e2008-12-31liuliu
#添加新用戶liuliu,到2008年底終止
2.設置用戶口令
系統(tǒng)管理員須為新添加的用戶設置第一個口令??诹罱?jīng)加密后,存放在shadow文件中。此后用戶可以登錄修改自己的口令,root可修改任何用戶的口令。
有些時候,root需要對用戶的口令設置某些限制。比如,為督促用戶定期更換口令,root可以設置用戶口令的期限。這是通過修改/etc/shadow文件中相應行的第5個域來實現(xiàn)的。另外,有時出于用戶本身的原因或者系統(tǒng)安全的需要,root需要封鎖一個賬號。被封鎖賬號的口令會暫時失效,不能夠再登錄,直至解禁。封鎖用戶的方法是在/etc/shadow文件中找到指定的用戶,在其口令域的前面插入一個“!”符號。解封時刪除這個標記即可。以上對用戶口令的操作都可通過編輯/etc/shadow文件或使用passwd命令來完成。
passwd命令
【功能】設置用戶口令。
【格式】passwd[選項][用戶名]
【選項】
-d 刪除用戶的口令,使用戶登錄時不需要口令。
-l 封鎖用戶賬號,使用戶暫無法登錄。
-u 解除封鎖用戶賬號,使用戶恢復登錄。
-xn
設置口令的有效期限為n天??诹畹狡诤蟊仨氈匦略O置
才可登錄。
【說明】沒有指定用戶名時則是修改自己的口令。例10.8
用passwd命令設置口令:
#passwdzhaoxin
#為新用戶zhaoxin設置口令
…(輸入口令)
#passwd-x10zhaoxin #設置zhaoxin口令的有效期為10天
#
另外,如果要強制用戶下次登錄時必須修改口令,可以用命令chage-d0用戶名。
3.設置用戶登錄環(huán)境
用戶登錄后,系統(tǒng)會自動執(zhí)行一些初始化腳本文件,為用戶建立Shell環(huán)境。主要的環(huán)境配置文件有如下幾個:
(1)系統(tǒng)級Shell啟動文件:用于設置系統(tǒng)級的Shell環(huán)境變量及啟動程序的腳本文件是/etc/profile。在用戶登錄時啟動的登錄Shell首先執(zhí)行這個文件,它負責對Shell的一些重要的環(huán)境變量(如PATH等)進行初始設置。
(2)登錄Shell啟動文件:登錄Shell需要為自己和子Shell建立起完整的運行環(huán)境。它首先執(zhí)行/ect/profile,建立系統(tǒng)級的環(huán)境變量,然后在用戶主目錄下查找登錄Shell啟動文件,找到后就執(zhí)行它。登錄Shell啟動文件負責建立與具體用戶相關的環(huán)境變量(如LOGNAME、TERM等)以及用戶自定義的環(huán)境變量。用戶可以通過修改此文件達到定制環(huán)境的目的,還可以在此文件中指定每次登錄時要執(zhí)行的程序。登錄bash的啟動文件可以是~/.bash_profile、~/.bash_login或~/.profile。bash將按順序查找這3個文件,如能找到就執(zhí)行找到的第一個文件。
(3)Shell啟動文件:每當一個交互Shell啟動時,Shell都將執(zhí)行一個啟動文件,它設置與具體用戶相關的環(huán)境變量及用戶自定義的環(huán)境變量。bash的啟動文件是~/.bashrc。在登錄Shell啟動時,通過執(zhí)行登錄啟動文件(如.bash_profile)調(diào)用此文件執(zhí)行,在子交互Shell啟動時則直接執(zhí)行此文件。
(4)登錄Shell退出文件:當從登錄Shell退出時,Shell將在主目錄下查找退出登錄文件,如果找到就執(zhí)行它。bash的退出登錄文件是~/.bash_logout。用戶可以修改此文件,讓它完成一些必要的退出操作,比如備份和清理文件等。以上文件中,第1個是全系統(tǒng)共用的環(huán)境設置文件,只有root可以修改。后3個是用戶可定義的環(huán)境設置文件,它們的最初版本是由系統(tǒng)提供的存放在/etc/skel目錄下的默認環(huán)境配置文件,在創(chuàng)建用戶時它們被復制到用戶的主目錄下。用戶隨后可以修改它們以適應自己的需要。root可以通過修改/etc/profile和/etc/skel目錄下的文件來調(diào)整系統(tǒng)級以及默認的用戶級環(huán)境,不過對它們的修改會影響到全系統(tǒng)的用戶,沒有特殊需要最好不要改動它們。例10.9
定義用戶自己的環(huán)境變量和登錄時要執(zhí)行的文件:
$echo“PROJ=$HOME/project/hoc;exportPROJ”>>~/.bash_profile
$echo“~/routine”>>~/.bash_profile
$..bash_profile
Hellocherry!
$
此例中用兩個echo命令向.bash_profile文件尾添加了兩行,一行是定義導出變量PROJ,將一些經(jīng)常使用的長路徑名定義在變量中可以簡化命令的輸入;另一行是執(zhí)行主目錄下的routine腳本。routine是用戶自定義的一些登錄初始化操作,比如查看郵件、顯示今日日程等。此例中只是顯示了一句問候語。在下次登錄時,這個修改即可起作用。為了立即看到它的執(zhí)行結果,可以用“.”命令執(zhí)行它,如例10.9所示。
4.修改用戶信息
與用戶賬號相關的信息保存在/etc/passwd和/etc/shadow文件中。root可以直接修改這些文件來修改用戶的信息,也可以用系統(tǒng)提供的命令來修改用戶信息。
修改用戶賬戶信息的命令是usermod,它有許多選項,可以修改passwd文件中的各項,以及shadow文件中的第2、7、8項。關于usermod命令的用法讀者可參看man手冊。
5.刪除用戶
刪除用戶的命令是userdel,它主要完成以下工作:
(1)刪除passwd和shadow文件中此用戶的行。
(2)修改group文件,如果該用戶是組中唯一的成員則刪除該組的行,否則從組用戶列表中刪除該用戶。
(3)若帶有-r選項,則刪除用戶的主目錄以及此用戶的mail郵箱。
userdel命令
【功能】刪除用戶。
【格式】userdel[-r]用戶名
【選項】該命令只有一個-r選項,表示刪除用戶的同時刪除其主目錄及mail郵箱。沒有此選項時則保留它們。
例10.10
用userdel命令刪除用戶:
#userdel-rzhaoxin #刪除用戶zhaoxin,不保留其主
目錄和郵箱10.3.4用戶組管理
Linux中如果創(chuàng)建用戶時不指定用戶組,則系統(tǒng)默認地為用戶生成一個組,其組名與用戶名相同。如果需要分組,則應先建立起用戶組,然后向組中添加用戶。
建立一個用戶組的命令是groupadd,格式是groupadd組名。
向組中添加用戶的方法有多種,一個是在建立新用戶時指定該組的GID,另一個是用usermod命令修改一個已有用戶的組屬性,再有就是直接修改passwd和group文件。從組中刪除一個用戶的方法也與此類似。
刪除一個用戶組的命令是groupdel,格式是groupdel組名。刪除組時,若該組中仍包含有用戶,則必須先將這些用戶從組中刪除(或改變他們的組),然后才能刪除組。
10.4文件系統(tǒng)維護
文件系統(tǒng)維護的工作包括創(chuàng)建文件系統(tǒng)、掛裝和拆卸文件系統(tǒng)、監(jiān)視文件系統(tǒng)的使用情況以及必要時對文件系統(tǒng)進行修復。10.4.1文件系統(tǒng)的目錄結構
Linux文件系統(tǒng)的目錄結構是樹型可掛裝的結構。與同是樹型結構的Windows文件系統(tǒng)相比,Linux文件系統(tǒng)具有自身明顯的特征。
首先,在Windows系統(tǒng)中,不同分區(qū)上的文件系統(tǒng)各自是一棵獨立的樹,用“盤符”代表樹根,如:C:\、D:\、E:\等。從一個分區(qū)的目錄樹進入到另一個分區(qū)中時,需要先切換盤符。若新添一個本地分區(qū),后面的盤符可能也會跟著改變。與此不同的是,Linux的目錄樹是唯一的,所有文件都放在從根目錄開始的目錄樹下。Linux系統(tǒng)采用了分區(qū)掛裝的概念,所有分區(qū)都要掛到根文件系統(tǒng)下的某個掛裝點上,然后通過根目錄來訪問。不管掛入的是本地磁盤分區(qū)還是網(wǎng)絡上的文件系統(tǒng),它們都與根文件系統(tǒng)無縫結合,訪問這些分區(qū)就如同訪問根文件系統(tǒng)所在分區(qū)一樣。另外,在Windows系統(tǒng)中,文件幾乎可以放在任何地方。安裝軟件時,所有的文件(如可執(zhí)行文件、配置文件、數(shù)據(jù)文件、幫助文件等)通常都放在該軟件自己的目錄下,其存放結構由軟件自行組織,而不是由系統(tǒng)設定。而在Linux系統(tǒng)中,文件是根據(jù)功能而不是按所屬的軟件來劃分的。軟件包中的各個文件應安放到哪些目錄中由操作系統(tǒng)決定。例如,軟件的文檔應放在/usr/share/doc/目錄下,手冊頁要放在/usr/share/man/目錄下,可執(zhí)行文件要放在/usr/bin目錄下等。所有文件正是以這種方式與系統(tǒng)層次緊密結合,給管理提供了方便。關于某個文件應該放入哪個目錄,各個發(fā)行版都有自己的觀點。為了避免產(chǎn)生混亂,在Linux面世不久就開始了對Linux文件系統(tǒng)的標準化活動。Linux文件系統(tǒng)標準FSSTND于1994年推出,之后FSSTND又擴大到Unix系統(tǒng),形成了文件系統(tǒng)層次標準FHS(FilesystemHierarchyStandard)。FHS標準使得Linux發(fā)行版有了可以遵循的標準,因而得到眾多Linux發(fā)行版的支持。它也使得軟件開發(fā)者和用戶可以預知文件和目錄的安裝位置。
目前FHS的最新版本是2004年發(fā)行的FHS2.3,表10-2列出了基于FHS標準的Linux目錄樹的重要部分。根目錄是在系統(tǒng)啟動時建立的,其他目錄都可以用掛裝的方式掛在根文件系統(tǒng)下的某個位置。根目錄下一般不含任何非目錄文件。
/usr目錄是Linux文件系統(tǒng)中最大的系統(tǒng)目錄之一。它存放了所有的命令、運行庫等。/usr目錄下的內(nèi)容與特定系統(tǒng)無關,在系統(tǒng)運行期間保持不變,因而可以建在獨立分區(qū)中,通過網(wǎng)絡共享,以只讀方式掛裝。
/var目錄存放有假脫機目錄、日志文件、記賬信息和其他各種快速增長或變化的信息。這些信息是系統(tǒng)運行期間產(chǎn)生的,與該系統(tǒng)密切相關。所以,如果是一個運營的系統(tǒng),最好把/var建在一個獨立的分區(qū)中。
有關文件系統(tǒng)結構的具體描述可參看hier手冊頁(manhier)。10.4.2存儲設備命名規(guī)則
1.磁盤設備的命名
在Linux系統(tǒng)中,每個磁盤有一個設備名,對應的設備文件是/dev/磁盤設備名。磁盤的命名規(guī)則如下:
IDE設備。一個系統(tǒng)可以掛4個IDE設備,它們的命名規(guī)則是:IDE-1主盤為hda,從盤為hdb;IDE-2主盤為hdc,從盤為hdd。如果還有IDERaid卡,則依次命名為hde,hdf,hdg,hdh。
SCSI與USB存儲設備。Linux系統(tǒng)將SCSI盤與USB盤同等看待。SCSI/USB存儲設備命名規(guī)則是:系統(tǒng)上第1個SCSI/USB盤是sda,多個盤的命名順序是sda、sdb、sdc、…。
2.磁盤分區(qū)設備的命名
一個磁盤必須分區(qū)后才可以被操作系統(tǒng)使用。磁盤分區(qū)(partition)是磁盤上可獨立管理的區(qū)域。一個磁盤可以分為1~3個主分區(qū)和0~1個擴展分區(qū)。擴展分區(qū)又可以劃分為多個邏輯分區(qū)。擴展分區(qū)本身無法用來存放數(shù)據(jù),它的作用是“擴展”出若干個邏輯分區(qū)以增加分區(qū)的數(shù)目。任何操作系統(tǒng)只能使用硬盤上的主分區(qū)和邏輯分區(qū)。
每一個磁盤分區(qū)(主分區(qū)或邏輯分區(qū))都可以安裝一個獨立的文件系統(tǒng),具有獨立的設備文件名。磁盤分區(qū)的設備名為“磁盤的設備名+分區(qū)號”。主分區(qū)或擴展分區(qū)對應的分區(qū)號為1~4,如:hda1~hda4。擴展分區(qū)中的邏輯分區(qū)則從5開始編號。圖10?1示意了磁盤分區(qū)設備的命名規(guī)則。整個磁盤劃分了2個主分區(qū)和1個擴展分區(qū),分別命名為hda1、hda2和hda3。擴展分區(qū)中又劃分了3個邏輯分區(qū),分別命名為hda5、hda6和hda7。圖10?1磁盤分區(qū)及命名規(guī)則示意
3.其他存儲設備的命名
CD-ROM設備的命名規(guī)則是:IDE類型的設備按IDE設備命名,SCSI類型的設備按SCSI設備命名。通常系統(tǒng)還為CD-ROM設備提供了一個標準名稱:cdrom。設備文件/dev/cdrom是到實際設備文件(如/dev/hdb)的一個符號鏈接。
軟盤的命名規(guī)則是:A盤為fd0,B盤為fd1。10.4.3劃分磁盤分區(qū)
劃分磁盤分區(qū)的命令是fdisk。與Windows系統(tǒng)的fdisk命令相比,Linux的fdisk功能極其強大,可以劃分出包括ext2/ext3、FAT16/32、NTFS、minix、BSD、AIX等幾十種流行操作系統(tǒng)的分區(qū)格式。
fdisk命令
【功能】管理磁盤分區(qū)。
【格式】fdisk[選項][/dev/設備名]
【選項】
-l 列出指定設備上的分區(qū)表的狀況。要求參數(shù)是磁盤設備名(如/dev/hda)。未指定參數(shù)時,列出所有磁盤設備的分區(qū)表的狀況。
-s 顯示分區(qū)的大小,以塊為單位。要求參數(shù)是分區(qū)設備名(如/dev/hda5)。
【說明】未指定選項時,fdisk以交互方式運行,修改磁盤的分區(qū)表。常用的fdisk操作命令包括:p顯示分區(qū)表、n建立分區(qū)、d刪除分區(qū)、m顯示所有fdisk操作命令、w保存修改退出、q放棄修改退出。
例10.11fdisk命令的用法示例:
#fdisk/dev/sda #進入交互式界面,修改sda盤的分區(qū)
Command(mforhelp):p
Disk/dev/sda:4294MB,4294967296bytes
255heads,63sectors/track,522cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sda1*11310439183Linux
/dev/sda2144743702982+83Linux
/dev/sda347552238556082Linuxswap
Command(mforhelp):q
#fdisk-l/dev/sdb #顯示sdb盤中的所有分區(qū)
Disk/dev/sdb:1039MB,1039663104bytes
256heads,32sectors/track,247cylinders
Units=cylindersof8192*512=4194304bytes
DeviceBootStartEndBlocksIdSystem
/dev/sdb1124810152806FAT16
#
sda盤的分區(qū)表顯示該盤劃分了3個分區(qū),sda1是boot分區(qū),sda2是根文件系統(tǒng)分區(qū),sda3是swap分區(qū)。sdb盤的分區(qū)表顯示該盤上只有1個分區(qū)sdb1,它是一個Windows分區(qū)。10.4.4建立文件系統(tǒng)
建立文件系統(tǒng)就是用該文件系統(tǒng)的格式對分區(qū)進行格式化。例如,建立ext2/ext3文件系統(tǒng)就是在分區(qū)中劃分出塊組,建立超級塊、組描述符、i節(jié)點區(qū)、數(shù)據(jù)區(qū)等結構。建立文件系統(tǒng)的命令是mkfs。
mkfs命令
【功能】建立文件系統(tǒng)。
【格式】mkfs[選項]/dev/分區(qū)設備名
【選項】
-tfstype
指定文件系統(tǒng)類型為fstype。默認類型為ext3。
-c 格式化前查找壞塊。
-v 產(chǎn)生詳細的輸出。
例10.12
在分區(qū)hda1中建立ext3文件系統(tǒng):
#mkfs-c/dev/hda110.4.5掛裝文件系統(tǒng)
VFS文件系統(tǒng)支持文件系統(tǒng)的掛裝(mount)和卸載(unmount),這使得文件系統(tǒng)可以隨意地組合和擴充。系統(tǒng)啟動時,最初只有根文件系統(tǒng),其他文件系統(tǒng)(如軟盤、光盤、其他分區(qū)的文件系統(tǒng)等)可以根據(jù)需要作為子樹掛裝到根文件系統(tǒng)上。
掛裝一個文件系統(tǒng)就是將它掛裝到根文件系統(tǒng)的某一目錄(稱為掛裝點)下。文件系統(tǒng)必須先掛裝才可訪問。掛裝的方式有自動掛裝和手工掛裝兩種。
1.自動掛裝
自動掛裝就是在系統(tǒng)啟動時自動地完成對指定文件系統(tǒng)的掛裝。系統(tǒng)在引導時首先會掛裝根文件系統(tǒng),這使系統(tǒng)可以訪問和讀取一些重要的啟動文件。在隨后的啟動過程中,系統(tǒng)會讀取/etc/fstab文件,并自動掛裝文件中指定的文件系統(tǒng)。
fstab文件中描述了每個文件系統(tǒng)應掛裝在何處以及執(zhí)行掛裝時所使用的參數(shù)。每行對應一個文件系統(tǒng),分為6個字段,格式如下:
文件系統(tǒng)標識掛裝點文件系統(tǒng)類型掛裝選項dump標志fsck順序文件系統(tǒng)標識是該文件系統(tǒng)所在的設備名。掛裝點是根文件系統(tǒng)下的一個目錄,它是該文件系統(tǒng)要掛接的位置。文件系統(tǒng)類型指出該文件系統(tǒng)的類型。
掛裝選項指定文件系統(tǒng)的掛裝方式。常用的掛裝選項有ro(只讀掛裝)、rw(讀/寫掛裝)、auto(隱含掛裝)、noauto(不隱含掛裝)、user(一般用戶可掛裝)、nouser(只有root可掛裝)、defauls(默認選項掛裝)。隱含掛裝的含義是,在系統(tǒng)啟動時或使用mount-a命令時,所有在fstab文件中的有auto選項的文件系統(tǒng)都會被默認地掛裝;不隱含掛裝的含義是,它們必須用mount命令顯式地掛裝。默認選項掛裝是采用默認的選項(包括rw、auto、nouser等選項)進行掛裝。
dump標志指示dump備份程序是否備份該文件系統(tǒng),1表示要備份,0與空白表示不要。
fsck順序表示當系統(tǒng)進行文件系統(tǒng)檢查(fsck)時的檢查順序,該列值為1的文件系統(tǒng)會首先被檢查,然后檢查值為2的文件系統(tǒng),0表示不檢查。
以下是一個/etc/fstab文件的示例:
/dev/hda1 /
ext3 defauts 1 1
/dev/hda2 /boot
ext3 defauts 1 2
/dev/hda3 swap
swap defauts 0 0
/dev/cdrom /mnt/cdrom
iso9660 noauto,user,ro 0 0
/dev/sda1 /mnt/usb
vfat noauto,user 0 0該文件列出了5個文件系統(tǒng),前3個在磁盤的3個分區(qū)上,分別是根文件系統(tǒng)分區(qū)、系統(tǒng)引導分區(qū)和交換分區(qū)。這些文件系統(tǒng)采用默認方式掛裝,在系統(tǒng)啟動時會自動掛裝上。后2個文件系統(tǒng)分別在光盤和USB盤上,掛裝方式是顯式掛裝,且允許一般用戶進行掛裝。這樣定義后,普通用戶也可在需要的時候用mount命令來掛裝了。
2.用mount命令掛裝
用戶可以隨時用mount命令手工地掛裝文件系統(tǒng)。
mount命令
【功能】掛裝文件系統(tǒng)。
【格式】mount[選項][分區(qū)設備名][掛裝點目錄]
【選項】
-tvfstype
指定文件系統(tǒng)的類型,默認類型為
iso9660。-tauto表示由系統(tǒng)自行測定文件
系統(tǒng)的類型。
-ooptions
指定掛裝的方式,與fstab文件的掛裝選項
相同。
-a 掛裝/etc/fstab文件中描述的所有文件系統(tǒng)(除了有
noauto選項的)。
【說明】
(1)參數(shù)設備名為要掛裝的文件系統(tǒng)所在的分區(qū)設備名,必須是一個塊設備。
(2)掛裝點目錄必須存在。如果掛裝點目錄不為空,新掛裝的文件系統(tǒng)會暫時覆蓋掛裝點目錄下的原有文件。
(3)若在fstab文件中設置了以某設備名標識的文件系統(tǒng),則只需執(zhí)行mount設備名。mount命令會搜索fstab文件,找到該設備名對應的那行,并用該行指定的掛裝選項和掛裝點進行掛裝。例如,fstab文件如前所示,則掛裝U盤時只需執(zhí)行mount/dev/sda1即可。例10.13
掛裝一個Windows磁盤分區(qū),磁盤設備名為hda,文件系統(tǒng)類型為FAT32:
#mkdir/mnt/msdos
#建立掛裝點
#fdisk-l/dev/hda
#查看盤上的分區(qū),確定要掛裝的分區(qū)名和
類型
…
/dev/hda25061014529105bFAT32
…
#mount-tvfat-orw/dev/hda2/mnt/msdos #掛裝分區(qū)文件系統(tǒng)
#例10.14
掛裝CD-ROM(/mnt/cdrom目錄須已存在):
#mount
-tauto-oro/dev/cdrom/mnt/cdrom
例10.15
掛裝光盤映像文件something.iso:
#mkdir/mnt/iso #建立掛裝點(如果沒有的話)
#mount
-oloopsomething.iso/mnt/iso
例10.16
掛裝USB存儲設備,設U盤的設備名為/dev/sdb,文件系統(tǒng)類型為FAT16:
#mkdir/mnt/usb #建立掛裝點(如果沒有的話)
#fdisk-l/dev/sdb #查看USB存儲器上的文件系統(tǒng)
Disk/dev/sdb:1039MB,1039663104bytes
256heads,32sectors/track,247cylinders
Units=cylindersof8192*512=4194304bytes
DeviceBootStartEndBlocksIdSystem
/dev/sdb1
124810152806FAT16
#mount-tvfat/dev/sdb1/mnt/usb #掛裝USB盤文件系統(tǒng)10.4.6拆卸文件系統(tǒng)
拆卸文件系統(tǒng)是掛裝的反操作,命令是umount。文件系統(tǒng)被拆卸后,掛裝點目錄下的原有的文件(如果有的話)將被恢復。注意卸載文件系統(tǒng)時必須退出掛裝點目錄,否則系統(tǒng)會報告“文件系統(tǒng)忙”的信息。另外,系統(tǒng)在關閉時會自動拆卸所有已掛裝的文件系統(tǒng)。
umount命令
【功能】卸下一個文件系統(tǒng)。
【格式】umount分區(qū)設備名/掛裝點目錄名
例10.17
卸載光盤文件系統(tǒng):
$umount/dev/cdrom
#或umount/mnt/cdrom10.4.7修復文件系統(tǒng)
由于Linux系統(tǒng)使用異步I/O方式訪問硬盤,如遇系統(tǒng)突然斷電或硬件異??赡軙е挛募?shù)據(jù)的不一致。當文件系統(tǒng)因出現(xiàn)故障而不能掛裝時,可以用fsck命令進行修復。
fsck命令
【功能】檢查文件系統(tǒng)并嘗試修復錯誤。
【格式】fsck[選項][文件系統(tǒng)...]
【選項】
-tvfstype
指定文件系統(tǒng)的類型。
-a 自動修復文件系統(tǒng),不要求用戶確認。
-r 交互式修復文件系統(tǒng),修復動作前要求用戶確認。
【退出狀態(tài)】0:無錯誤;1:有錯誤已修復;2:系統(tǒng)需要重啟;4:有錯誤未修復。
【說明】執(zhí)行此命令前應先卸載被檢查的文件系統(tǒng)。
例10.18
檢查/dev/hda3分區(qū)的文件系統(tǒng)是否正常,如果有異常便自動修復:
$fsck-text2-a/dev/hda3
10.5系統(tǒng)備份
計算機系統(tǒng)在運行過程中不可避免地會發(fā)生各種故障,包括軟硬件異常、操作失誤和外界環(huán)境變化造成的系統(tǒng)崩潰或文件丟失。雖然現(xiàn)在的系統(tǒng)都具有一定的容錯和安全措施,但都不能替代簡單可靠的備份操作。備份是指定期地把系統(tǒng)和用戶的數(shù)據(jù)打包拷貝到脫機的介質(zhì)上去,制作成一系列的副本保存。常用的備份介質(zhì)有磁帶、軟盤、光盤和移動硬盤?;謴椭敢坏┫到y(tǒng)出現(xiàn)故障或其他原因造成數(shù)據(jù)丟失,就可以從備份介質(zhì)上把數(shù)據(jù)拷貝回硬盤,減小損失。良好的備份措施是保證系統(tǒng)正常運行的必要手段。因此,必須執(zhí)行嚴格的備份制度,按時做數(shù)據(jù)的備份和轉(zhuǎn)儲工作。10.5.1備份策略
備份的方式可以分為以下幾種:
(1)完全備份:一次備份所有數(shù)據(jù)。這是最基本的備份方式,備份的工作量較大,需要的介質(zhì)也較多,但恢復時比較容易。
(2)更新備份:備份上一次完全備份后改變的所有數(shù)據(jù)。更新備份的備份和恢復工作量居中?;謴蜁r需要先恢復上一次的完全備份,再恢復最近一次的更新備份。
(3)增量備份:備份上一次備份后改變的所有數(shù)據(jù)。增量備份工作量小,但恢復較費力,需要從上一次的完全備份開始,逐級恢復隨后的各個增量備份。系統(tǒng)管理員應根據(jù)系統(tǒng)的使用情況制訂備份方案并嚴格執(zhí)行。常用的方案是每月1~2次完全備份。每周末做一次更新備份,每個工作日做一次增量備份。系統(tǒng)升級前必須進行完全備份。備份的范圍也要根據(jù)系統(tǒng)的使用情況來決定,原則是對經(jīng)常改動的文件應該比改動較少的文件備份更頻繁一些。例如,對于多用戶系統(tǒng)來說,/home目錄中的用戶文件是經(jīng)常變化的,對于應用服務器系統(tǒng)來說,/var目錄中的系統(tǒng)運行相關數(shù)據(jù)是經(jīng)常變化的。這些目錄需要每天都備份;/etc目錄中的配置文件不需要頻繁備份,根據(jù)配置更改的頻繁程度每星期或每月備份一次即可;/usr和/opt目錄中的程序文件很少發(fā)生變化,安裝后做一次備份即可。另外,有些目錄如/tmp、/mnt等是沒有必要備份的;有些目錄如/proc、/dev等則是不應該備份的。10.5.2備份命令
Linux系統(tǒng)提供了多種圖形化的和命令方式的備份工具,用戶可以選擇使用。命令方式的備份工具包括歸檔命令和壓縮命令兩類。歸檔命令的功能是將要備份的文件打包成一個檔案文件,寫到存檔介質(zhì)上或備份目錄下。在需要恢復時,用歸檔命令可以從檔案文件中提取出文件,并寫回文件系統(tǒng)中。在對文件進行歸檔和提取操作時,可配合使用壓縮命令對文件進行壓縮和解壓縮。常用的歸檔和壓縮命令如表10-3所示。以下僅對最常用的gzip和tar命令做介紹,其他命令可參看man手冊。
1.?gzip命令
gzip命令用于對文件進行壓縮和解壓縮,其壓縮率高于compress和zip命令,且可以和歸檔命令tar配合使用。
gzip命令
【功能】對文件進行壓縮和解壓縮。
【格式】gzip[選項][文件名]
【選項】
-d 解壓縮。
-l 列出壓縮文件的大小和壓縮比例等信息。
-r 壓縮子目錄。
-v 顯示詳細操作信息。
【說明】沒有-d和-l選項時執(zhí)行壓縮。
例10.19gzip命令用法示例:
$ls
hoc hoc.c hoc.h init.c math.c
$gzip-v*.c
#壓縮當前目錄下的每個.c文件
hoc.c: 17.9%--replacedwithhoc.c.gz
init.c: 27.1%--replacedwithinit.c.gz
math.c: 45.6%--replacedwithmath.c.gz
$ls
hoc hoc.c.gz hoc.h init.c.gz math.c.gz
$gzip-lmath.c.gz #顯示壓縮文件的信息,不解壓
compressed uncompressed ratio uncompressed_name
274 458 45.6% math.c
$gzip-dvmath.c.gz #解壓縮math.c.gz文件,顯示詳細信息
math.c.gz: 45.6%--replacedwithmath.c
$
2.?tar命令
tar命令用于將一組文件打包成一個文件,稱為檔案文件(archive)。歸檔的目的是為了便于對這些文件進行統(tǒng)一處理,如轉(zhuǎn)儲、傳輸、發(fā)布和下載等。檔案文件比單個文件更節(jié)省存儲空間,因為它消除了各個文件最后一塊內(nèi)的空閑空間。如果配合壓縮命令則會進一步節(jié)省存儲空間,減少傳輸時間。
tar命令
【功能】文件歸檔工具,可備份整個目錄、分區(qū)或文件系統(tǒng)。
【格式】tar[選項][文件/目錄列表]
【選項】
-c 創(chuàng)建檔案文件。
-f文件名 指定檔案文件或歸檔設備的文件名。
-p 歸檔時保持文件的訪問權限。
-r 向檔案文件中添加文件。
-t 列出檔案文件中的內(nèi)容。
-T 從參數(shù)指定的文件中讀取要備份的文件列表。
-u 更新檔案文件。
-v 顯示詳細操作信息。
-x 從檔案文件中提取并還原文件。
-z 使用gzip的來壓縮/解壓縮文件。
--exclude目錄/文件 不備份指定的目錄或文件。
【參數(shù)】參數(shù)為文件時,對文件進行操作;參數(shù)為目錄時,對目錄樹中的所有文件進行操作;有-T選項時,參數(shù)應是文件,其內(nèi)容被看作是要歸檔的文件名列表。
例10.20
打包文件:
$tar-cf~/bak/src.tar*.[c,h] #打包*.c和*.h文件,生成檔案文件src.tar
$tar-tf~/bak/src.tar #顯示檔案文件內(nèi)容
hello.c
print.c
print.h
…
$cdnewdir
$tar-xf~/bak/src.tar #在另一目錄下解包用戶可以用這種方式打包和保存自己的文件,然后在必要時在某個目錄下恢復這些文件。這種方式也常用來復制一個目錄樹到另一個位置。與用cp-r命令復制目錄樹的不同之處在于,tar命令可以保持文件的歸屬權和修改時間等屬性不變。在以root身份進行復制操作時,這一點有時尤為有用。
例10.21
把cherry的主目錄備份并壓縮,按用戶名和備份日期命名,存入/backup
目錄:
#tar-czf/backup/cherry-`date+%m-%d`.tar.gz/home/cherry
#ls/backup
cherry-02-21.tar.gz
#解包該檔案的命令是:tar-xzf/backup/cherry-02-21.tar.gz。注意:使用-z選項打包的檔案在進行顯示、更新、解包等操作時也需使用-z選項。另外,檔案文件名可以是一個存儲設備名,如tar-czf/dev/st0/home/cherry表示將打好的包存入磁帶機的介質(zhì)中。
例10.22
完全備份根文件系統(tǒng)。備份檔案以日期命名,寫到/archive文件系統(tǒng)上(/archive可以是任何已掛載的備份設備),不備份/mnt、/proc、/dev和/archive目錄:
#tar-zcpf/archive/full-bak-`date+%d-%m-%Y`.tar.gz\
>--directory/--exclude=mnt--exclude=proc--exclude=dev\
>--exclude=archive例10.23
更新備份/home目錄,備份5日內(nèi)被修改過的文件:
#find/home-mtime-5-print>/tmp/filelist
#tar-zcTf/archive/home-update-bak-`date+%d-%m-%Y`.tar.gz/tmp/filelist
10.6系統(tǒng)監(jiān)控
系統(tǒng)監(jiān)控的任務是監(jiān)控登錄的用戶、進程、內(nèi)存和文件系統(tǒng)的情況,及時發(fā)現(xiàn)系統(tǒng)在安全、性能和資源使用等方面的問題。系統(tǒng)監(jiān)控的手段是使用專用命令或圖形監(jiān)控工具。10.6.1監(jiān)視用戶的登錄
root可以用last命令和w命令隨時了解用戶的登錄情況以及用戶的活動情況。
last命令
【功能】列出最近用戶登錄系統(tǒng)的相關信息。
【格式】last[用戶名...][終端名...]
【參數(shù)】用戶名指定要查看某用戶的登錄信息,缺省時顯示所有登錄用戶的信息;終端名指定查看在某終端上登錄的用戶信息,缺省時顯示所有終端上的登錄用戶的信息。
【說明】顯示格式如下:
用戶名登錄終端名登錄日期登錄時間-退出時間(持續(xù)時間)例10.24
顯示root最近的登錄記錄:
$lastroot
root tty1 Mon Aug1309:39stillloggedin
root tty2 Sun Aug1209:29-down(23:25)
root tty2 Fri Aug1018:17-down(1+20:15)
root pts/0 Sun Aug510:14-10:19(00:04)
root tty1 SunAug508:37-08:46(00:08)
…
$
last命令的輸出中,退出時間為“down”表示系統(tǒng)關機時間。
w命令
【功能】顯示目前登錄系統(tǒng)的用戶以及他們正在執(zhí)行的程序。
【格式】w[-s][用戶名]
【說明】用戶名指定要查看的用戶,未指定用戶時顯示所有登錄用戶的活動情況。每個登錄用戶的信息占一行。-s選項表示以短格式顯示,否則以長格式顯示。短格式的輸出格式為如下5列:
用戶名登錄的終端名登錄的遠程主機名空閑時間正執(zhí)行的命令例10.25
顯示所有用戶的登錄與活動情況:
#w-s
22:19:30up3:59,3users,loadaverage:0.12,0.09,0.23
USER TTY FROM IDLE WHAT
root tty1 - 0.00s w-s
cherry tty7 :0 3.00s usr/bin/gnome-session
cherry pts/1 :0.0 7.24s gnome-terminal
#
命令的輸出表示,root在本地tty1控制臺登錄,正在執(zhí)行w-s命令;cherry在本地tty7控制臺登錄,運行的是gnome會話程序;同時cherry還在gnome虛擬終端登錄,運行的是gnome終端程序。10.6.2監(jiān)控進程的運行
監(jiān)控進程的運行包括監(jiān)視進程的活動狀況,以及在必要的時候控制進程的活動,如終止進程、掛起以及恢復進程運行等。
1.監(jiān)視進程的運行
監(jiān)視進程活動情況的常用命令是ps和top命令。ps命令提供系統(tǒng)中的進程在當前時刻的一次性“快照”;top命令展示系統(tǒng)正在發(fā)生的事情的“全景”,即實時地描述活動進程以及其所使用的資源情況的匯總信息。
top命令
【功能】實時顯示系統(tǒng)中的進程活動,并提供交互界面來控制進程的活動。
【格式】top[選項]
【選項】
d間隔秒數(shù) 以指定的間隔秒數(shù)刷新。缺省為10秒。
n執(zhí)行次數(shù) 指定重復刷新的次數(shù)。缺省為一直執(zhí)行下去,直到按q鍵退出。
【說明】top命令運行后,將顯示屏分為上下兩部分:上部分是關于系統(tǒng)內(nèi)的用戶數(shù)和進程數(shù)的統(tǒng)計,以及CPU、內(nèi)存和交換空間的資源占用率的統(tǒng)計;下部分是所有進程的當前信息,通常是按CPU使用率排列的,最活躍的進程顯示在頂部。這些信息動態(tài)地刷新,反映出系統(tǒng)的實時運行狀況。中間的分隔行是命令交互行,用戶可以在此處輸入top的命令字符。常用的有:“?”——顯示命令列表;“k”——殺死進程;“r”——改變進程優(yōu)先級;“q”——退出。
例10.26
用top監(jiān)視進程的運行,界面顯示如圖10?2所示:圖10?2top命令的顯示界面
2.改變進程優(yōu)先級
進程的優(yōu)先級取決于它的“謙讓數(shù)”(nicenumber)。具有較高謙讓數(shù)的進程對待其他進程較為謙讓,因而具有較低的優(yōu)先級;謙讓數(shù)低的進程對待其他進程不夠謙讓,因而具有高優(yōu)先級。謙讓數(shù)的范圍為-20~19,數(shù)字越小則優(yōu)先級越高,也就是被進程調(diào)度選中的機會越高。Shell的默認謙讓數(shù)是0。用戶可以用一個指定的謙讓數(shù)來運行進程,不過,只有root可以為進程指定負值。
為進程設置優(yōu)先級的命令是nice,改變進程優(yōu)先級的命令是renice。在top命令的界面中也可以調(diào)整進程的優(yōu)先級。
nice命令
【功能】以調(diào)整的謙讓數(shù)執(zhí)行命令。
【格式】nice[選項][命令行]
【選項】
-n謙讓數(shù)增量 在Shell的當前謙讓數(shù)上加上指定的增量來運行命令。未指定此選項時,默認增量為+10。只有root可以指定負數(shù)增量。
【說明】未指定命令行時,顯示Shell的當前謙讓數(shù)。
例10.27用nice命令指定進程的謙讓數(shù):
$nice
#顯示當前nice數(shù)
0
$nice-n5yes>/dev/null&
#降低優(yōu)先級運行一個yes進程
$ps-opid,ni,args
#顯示進程號、nice數(shù)和命令
PIDNICOMMAND
19780bash
49075yes
49080ps-opid,ni,args
$
從上例可以看出,用nice命令執(zhí)行yes進程的nice數(shù)是指定的5,而直接執(zhí)行的ps進程的nice數(shù)是默認的0。
renice命令
【功能】調(diào)整正在運行的進程的謙讓數(shù)。
【格式】renice謙讓數(shù)進程號
【說明】進程的屬主可以調(diào)高謙讓數(shù),只有root可以調(diào)低謙讓數(shù)。
例10.28
用renice命令調(diào)整進程的謙讓數(shù):
$renice104907
#調(diào)整yes進程的nice數(shù)
4907:oldpriority5,newprirority10
$ps-opid,ni,args|grepyes
#查看yes進程的nice數(shù)
490710yes
$
3.作業(yè)控制
在Linux系統(tǒng)中,作業(yè)控制指的是由用戶來控制作業(yè)的行為。由于多數(shù)情況下一個作業(yè)就對應一個進程,因而控制作業(yè)也就是控制進程的行為。比如,掛起一個進程使其暫停運行,或重新恢復進程的運行,以及在前后臺之間切換進程等。
通常,用戶在同一時間只運行一個作業(yè),即最后鍵入的命令行。若使用作業(yè)控制,用戶就可以同時運行多個作業(yè),并在需要時在這些作業(yè)間進行切換。在一個shell中同時運行多個作業(yè)的方法是將某些作業(yè)的進程掛起或放在后臺運行。這在有些時候很有用,例如,當用vi編輯一個文件時,需要暫時中止編輯去做其他事情,如查看一下郵件,或查看一下man手冊頁等。此時,可以先將vi掛起,回到Shell做其他的事情,待事情做完后,再恢復vi的運行?;謴秃笥脩魧⒒氐脚c上次離開時完全一樣的編輯狀態(tài)。
1)顯示作業(yè)的信息
用jobs命令顯示當前Shell所啟動的所有作業(yè)及其活動狀態(tài)。由于jobs命令本身占據(jù)了前臺運行,因此它所顯示的是所有掛起的和在后臺運行的作業(yè)。
jobs命令
【功能】顯示Shell的作業(yè)清單。
【格式】jobs[-l]
【說明】jobs的輸出包括作業(yè)號、作業(yè)當前狀態(tài)以及作業(yè)執(zhí)行的命令行,有-l選項時還顯示作業(yè)的進程號PID。作業(yè)的狀態(tài)可以是running、stopped、terminated、done等。例10.29jobs命令用法示例:
$yes>/dev/null&
#在后臺執(zhí)行一個命令
[1]25054
(顯示作業(yè)號、進程號)
$sleep10&
[2]25122
$jobs-l
#顯示所有作業(yè)
[1]- 25054 Running
yes>/dev/null&
[2]+ 25122 Running
sleep10&
$
作業(yè)號后有一個“+”符號表示的是當前的作業(yè)(即最后一個進入后臺的那個作業(yè)),有“-”符號表示的是當前作業(yè)的下一個作業(yè),其他作業(yè)沒有此符號。
2)掛起進程
掛起進程就是向它發(fā)暫停信號,使其暫停運行,進入暫停態(tài)。掛起前臺進程的方法是用Ctrl+z鍵;掛起后臺進程的方法是向它發(fā)SIGSTOP信號,即:kill-SIGSTOP進程號。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新規(guī)則碰撞測試題及答案
- 如何針對信息系統(tǒng)項目管理師考試制定個性化復習計劃試題及答案
- 2025年新媒體傳播專業(yè)考試試題及答案
- 山東教師考試試題及答案
- 福建會考地理試題及答案
- 環(huán)境科學與管理知識點詳解及練習題集
- 強化練習軟件設計師試題及答案集合
- 賦權與公共政策創(chuàng)新試題及答案
- 西方政治制度中的創(chuàng)新生態(tài)環(huán)境研究試題及答案
- 機電工程后的未來科技探索的試題及答案
- 2024年江蘇省南京市江北新區(qū)葛塘街道招聘40人歷年管理單位遴選500模擬題附帶答案詳解
- 宜賓學院《軟件需求工程》2022-2023學年第一學期期末試卷
- 食材配送服務方案投標文件(技術方案)
- 天使投資正規(guī)合同范例
- GB/T 44736-2024野生動物保護繁育象
- 中醫(yī)適宜技術-中藥熱奄包
- 《籃球原地運球》教案 (共三篇)
- 危急值管理課件
- 期中(試題) -2024-2025學年人教PEP版(2024)英語三年級上冊
- 新《勞動合同法》知識學習考試題庫200題(含答案)
- 四川省巴中市2023-2024學年七年級下學期期末生物試題
評論
0/150
提交評論