【查看磁盤或者目錄的容量 df 和 du】
df 查看已掛載磁盤的總?cè)萘?/span>、使用容量、剩余容量等,可以不加任何參數(shù),默認是按k為單位顯示的
df常用參數(shù)有 –i -h -k –m等
-i 使用inodes 顯示結(jié)果
-h 使用合適的單位顯示,例如G
-k -m 分別為使用K,M為單位顯示
簡單介紹一下,你看到的相關(guān)數(shù)據(jù)。Filesystem 表示扇區(qū),也就是你劃分磁盤時所分的區(qū);1K-blocks/1M-blocks表示以1K/1M為單位;Used 和 Available 分別是已使用和剩余;Use% 就是已經(jīng)使用的百分比,如果這個值大于90% 那么你就應該注意了,磁盤很有可能馬上就會變滿的;Mounted on 則表示該分區(qū)(扇區(qū))所掛載的地方。
du 用來查看某個目錄所占空間大小
語法:du [-abckmsh] [文件或者目錄名] 常用的參數(shù)有:
-a:全部文件與目錄大小都列出來。如果不加任何選項和參數(shù)只列出目錄(包含子目錄)大小。
-b:列出的值以bytes為單位輸出,默認是以Kbytes
-c:最后加總
-k:以KB為單位輸出
-m:以MB為單位輸出
-s:只列出總和
-h:系統(tǒng)自動調(diào)節(jié)單位,例如文件太小可能就幾K,那么就以K為單位顯示,如果大到幾G,則就以G為單位顯示。筆者習慣用 du –sh filename 這樣的形式。
【磁盤的分區(qū)和格式化】
筆者經(jīng)常做的事情就是拿一個全新的磁盤來分區(qū)并格式化。這也說明了作為一個linux系統(tǒng)管理員,對于磁盤的操作必須要熟練。所以請你認真學習該部分內(nèi)容。
fdisk linux下的硬盤分區(qū)工具
語法: fdisk [-l ] [設備名稱]
-l :后邊不跟設備名會直接列出系統(tǒng)中所有的磁盤設備以及分區(qū)表,加上設備名會列出該設備的分區(qū)表。
如果不加-l 則進入另一個模式,在該模式下,可以對磁盤進行分區(qū)操作。
剛進入該模式下,會有一個提示Command (m for help): 此時按m則會打印出幫助列表,如果你英文好,我想你不難理解這些字母的功能。筆者常用的有p, n,d, w, q.
P:打印當前磁盤的分區(qū)情況。
n:重新建立一個新的分區(qū)。
w:保存操作。
q:退出。
d:刪除一個分區(qū)
因為筆者的linux系統(tǒng)是安裝在虛擬機上的,所以我可以增加一塊新的磁盤。然后筆者會把新的磁盤分成多個分區(qū)。
當再次fdisk -l 查看時發(fā)現(xiàn)多了一個/dev/hdb 設備,并提示該設備沒有可用的分區(qū)表。那么下面就來分一下這個/dev/hdb.
首先用p查看一下,并沒有任何分區(qū)信息。
用n創(chuàng)建一個新的分區(qū),會提示要建立e (extended 擴展分區(qū))或者p (primary partition主分區(qū)),這里筆者選擇主分區(qū),所以按了p回車后,又讓輸入First cylinder 你或者直接回車或者輸入一個數(shù)字,因為這塊磁盤是新的并沒有任何分區(qū),所以直接回車其實就是從1開始了。你也可以自定義輸入,但不要超過2080,筆者這里輸入1回車。此時會提示要分多大,可以寫一個數(shù)值(2-2080),也可以輸入+sizeK或者+sizeM,后者比較直觀容易理解,所以筆者在這里輸入+100M,即我分了一個100M的主分區(qū)。再用p查看時,果真多出來一個分區(qū)。然后筆者繼續(xù)重復前面的操作,建立了4個主分區(qū)。當筆者再次輸入n創(chuàng)建分區(qū)時,結(jié)果提示錯了。
由此你會發(fā)現(xiàn),在linux中最多只能創(chuàng)建4個主分區(qū),那如果你想多創(chuàng)建幾個分區(qū)如何做?很容易,在創(chuàng)建完第三個分區(qū)后,創(chuàng)建第四個分區(qū)時選擇擴展分區(qū)。
先刪除第四個主分區(qū),然后建立一個擴展分區(qū)
在建立擴展分區(qū)時,會問你要分多少給這個擴展分區(qū),筆者直接回車,即把所有空間都分給了這個擴展分區(qū)。這個擴展分區(qū)/dev/hdb4并不能往里寫數(shù)據(jù),它只是一個空殼子,需要我們繼續(xù)在這個空殼中繼續(xù)創(chuàng)建分區(qū)。
當建立完擴展分區(qū),然后按n創(chuàng)建新分區(qū)時你會發(fā)現(xiàn)不再提示是要建立p還是e了,因為我們已經(jīng)不能再創(chuàng)建p了。在這里需要你明白的是,hdb5 其實只是 hdb4 中的一個子分區(qū),到目前為止可用的分區(qū)也才4個,那筆者就再創(chuàng)建第5個分區(qū)出來。
然后按w保存,該模式自動退出,如果你不想保存分區(qū)信息直接按q即可退出。
下面我們把剛分好的分區(qū)刪除,重新建立分區(qū)。如何刪除你還記得吧,對了就是直接按d然后選擇合適的數(shù)字。刪除完所有分區(qū)后,這塊磁盤就恢復如初了。
第一個分區(qū),我們就建立成擴展分區(qū)。并且分給它200M。
當再次新建分區(qū)時,發(fā)生了變化,不再是p或者e了,而是p或者l(邏輯分區(qū)),這是為什么呢?在上面也提到了,一個擴展分區(qū)只是一個空殼,在擴展分區(qū)下才可以繼續(xù)劃分小的分區(qū),這個小的分區(qū)其實就是邏輯分區(qū)了。
而且這個邏輯分區(qū)默認都是從字數(shù)5開始的,因為前面的數(shù)字要么給主分區(qū)留著,要么給擴展分區(qū)留著。由此我們也可以得到,在linux中最多可以創(chuàng)建4個主分區(qū),一旦創(chuàng)建4個主分區(qū)后就不能增加任何分區(qū)了。另外最多也只能創(chuàng)建一個擴展分區(qū)。擴展分區(qū)下的邏輯分區(qū)最多可以創(chuàng)建多少呢?IDE的硬盤(類似于hda, hdb, hdc 等)最多可以創(chuàng)建10個(hdb5-hdb15),這是筆者試驗出來的結(jié)果。有的資料說linux下的邏輯分區(qū)是沒有限制的,也有的說最大可以到64,至于對不對,需要你去近一步考察了,我們沒有必要多么深入的研究這個問題,也沒有什么意義。
通過以上操作,相信你也學會了用fdisk 來分區(qū)了吧。值得提出的是,不要閑著沒事分區(qū)玩兒,這操作的危險性是很高的,一不留神就把你服務器上的數(shù)據(jù)全部給分沒有了。如果有分區(qū)的操作,那么請保持百分之二百的細心,切記切記!
mkfs.ext2 / mkfs.ext3 /mke2fs 格式化linux硬盤分區(qū)
當用man查詢這三個命令的幫助文檔時,你會發(fā)現(xiàn)我們看到了同一個幫助文檔,這說明三個命令是一樣的。常用的選項有:
-b:分區(qū)時設定每個數(shù)據(jù)區(qū)塊占用空間大小,目前支持1024, 2048 以及4096 bytes每個塊。
-i:設定inode大小
-N:設定inode數(shù)量,有時使用默認的inode數(shù)不夠用,所以要自定設定inode數(shù)量。
-c:在格式化前先檢測一下磁盤是否有問題,加上這個選項后會非常慢
-L:預設該分區(qū)的標簽label
-j:建立ext3格式的分區(qū),如果使用mkfs.ext3 就不用加這個選項了
不加任何選項,直接格式化/dev/hdb1
上例中更改了block size為4096 默認是1024,而inode大小設定為4096。
下面的例子分區(qū)時自定義分區(qū)的label(標簽)名。
e2label 用來查看或者修改分區(qū)的標簽(label)
這個命令很簡單,后邊直接跟分區(qū)編號,即可查看該分區(qū)的label,當想要修改標簽名時,分區(qū)編號后邊跟想要的標簽名即可。
fsck 檢查硬盤有沒有壞道
語法: fsck [-Aar] [分區(qū)]
-A :加該參數(shù)時,后不需要跟分區(qū)名作為參數(shù)。它會自動檢查/etc/fstab 文件下的所有分區(qū)(開機過程中就會執(zhí)行一次該操作);
-a :自動修復檢查到有問題的分區(qū);
-r :當檢查到有壞道的分區(qū)時會讓用戶決定是否修復。
當你使用fsck檢查磁盤有無壞道時,會提示用戶“跑這個任務可能會導致某些掛載的文件系統(tǒng)損壞”,所以這個命令不要輕易運行。否則真的遇到問題,系統(tǒng)甚至都不能啟動了。
【掛載/卸載磁盤】
在上面的內(nèi)容中講到了磁盤的分區(qū)和格式化,那么格式化完了后,如何去用它呢?這就涉及到了掛載這塊磁盤。格式化后的磁盤其實是一個塊設備文件,類型為b,也許你會想,既然這個塊文件就是那個分區(qū),那么直接在那個文件中寫數(shù)據(jù)不就寫到了那個分區(qū)中么?當然不行。
在掛載某個分區(qū)前需要先建立一個掛載點,這個掛載點是以目錄的形式出現(xiàn)的。一旦把某一個分區(qū)掛載到了這個掛載點(目錄)下,那么再往這個目錄寫數(shù)據(jù)使,則都會寫到該分區(qū)中。這就需要你注意一下,在掛載該分區(qū)前,掛載點(目錄)下必須是個空目錄。其實目錄不為空并不影響所掛載分區(qū)的使用,但是一旦掛載上了,那么該目錄下以前的東西就不能看到了。只有卸載掉該分區(qū)后才能看到。
mount 掛載設備
先建立/test1 /test2 目錄,然后在/test1目錄下建立一個1.txt文件。
把/dev/hdb1分區(qū)掛載到/test1目錄,然后再查看/test1目錄發(fā)下,1.txt不存在了。此時往/test1目錄下寫數(shù)據(jù),則會寫到/dev/hdb1分區(qū)中。在講mount的-a選項時,我們有必要先了解一下這個文件 /etc/fstab
這個文件是系統(tǒng)啟動時,需要掛載的各個分區(qū)。第一列就是分區(qū)的label;第二列是掛載點;第三列是分區(qū)的格式;第四列則是mount的一些掛載參數(shù),等下會詳細介紹一下有哪些參數(shù),一般情況下,直接寫defaults即可;第五列的數(shù)字表示是否被dump備份,是的話這里就是1,否則就是0;第六列是開機時是否自檢磁盤,就是剛才講過的那個fsck檢測。1,2都表示檢測,0表示不檢測,在Redhat中,這個1,2還有個說法,/ 分區(qū)必須設為1,而且整個fstab中只允許出現(xiàn)一個1,這里有一個優(yōu)先級的說法。1比2優(yōu)先級高,所以先檢測1,然后再檢測2,如果有多個分區(qū)需要開機檢測那么都設置成2吧,1檢測完了后會同時去檢測2。下面該說說第四列中常用到的參數(shù)了。
async/sync :async表示和磁盤和內(nèi)存不同步,系統(tǒng)每隔一段時間把內(nèi)存數(shù)據(jù)寫入磁盤中,而sync則會時時同步內(nèi)存和磁盤中數(shù)據(jù);
auto/noauto :開機自動掛載/不自動掛載;
default:按照大多數(shù)永久文件系統(tǒng)的缺省值設置掛載定義,它包含了rw, suid, dev, exec, auto, nouser,async ;
ro:按只讀權(quán)限掛載 ;
rw:按可讀可寫權(quán)限掛載 ;
exec/noexec :允許/不允許可執(zhí)行文件執(zhí)行,但千萬不要把根分區(qū)掛載為noexec,那就無法使用系統(tǒng)了,連mount命令都無法使用了,這時只有重新做系統(tǒng)了;
user/nouser :允許/不允許root外的其他用戶掛載分區(qū),為了安全考慮,請用nouser ;
suid/nosuid :允許/不允許分區(qū)有suid屬性,一般設置nosuid ;
usrquota :啟動使用者磁盤配額模式,磁盤配額相關(guān)內(nèi)容在后續(xù)章節(jié)會做介紹;
grquota :啟動群組磁盤配額模式;
學完這個/etc/fstab后,我們就可以自己修改這個文件,增加一行來掛載新增分區(qū)。例如,筆者增加了這樣一行
/dev/hdb1 /test1 ext3 defaults 0 0
那么系統(tǒng)再重啟時就會掛載這個分區(qū)了。
講完了/etc/fstab 我們繼續(xù)回來講這個mount,mout -a 如果運行了這個命令,則會把/etc/fstab中出現(xiàn)的所有磁盤分區(qū)掛載上。所以當你在/etc/fstab文件中增加一行后,你完全可以直接運行mount -a 來掛載你增加的那行,這樣就不用重啟啦。
你可以使用mount -o 選項來重新掛載一個分區(qū),并同時指定你想要的選項(即上邊介紹fstab第六列中那些)
看到了吧,使用了ro選項,則不能新建文件了。
再重新掛載一次就恢復正常了,如果不加任何其他選項,則就是defaults。
筆者在日常的運維工作中遇到過這樣的情況,一臺服務器上新裝了亮塊磁盤,磁盤a(在服務器上顯示為sdc)和磁盤b(在服務器上顯示為sdd),有一次把這兩塊磁盤都拔掉了,然后再重新插上,重啟機器,結(jié)果磁盤編號調(diào)換了,a變成了sdd,b變成了sdc(這是因為把磁盤插錯了插槽),問題來了。通過上邊的學習,你掛載磁盤是通過/dev/hdb1 這樣的分區(qū)名字來掛載的,如果先前加入到了/etc/fstab 中,結(jié)果系統(tǒng)啟動后則會掛載錯分區(qū)。那么怎么樣避免這樣的情況發(fā)生?
blkid 這個命令是用來顯示磁盤分區(qū)uuid的,uuid其實就是一大串字符,在linux系統(tǒng)中每一個分區(qū)都會有唯一的一個uuid。說到這,聰明的你想到了吧,沒有錯,我們就用這唯一的uuid來掛載磁盤分區(qū)。
這個命令筆者只是用來顯示uuid,沒有其他用途所以不做詳細介紹,當然你也可以在命令后邊跟某一個分區(qū),只顯示該分區(qū)的uuid。
看到了吧,其實是很好用的。那么怎么讓它也開機啟動?很簡單,把剛才敲的mount 磁盤的命令直接寫到 /etc/rc.d/rc.local 文件即可。對了,筆者到現(xiàn)在還沒有給你講過這個rc.local文件的作用。簡單點說,系統(tǒng)啟動完后會執(zhí)行這個文件中的命令。所以只要你想開機后運行什么命令統(tǒng)統(tǒng)寫入到這個文件下面吧。
其實這個文件就是一個shell 腳本,以后筆者會單獨用一章來介紹它。行開頭的”#”是注釋的意思,代表這行在這個腳本中不生效。你想讓系統(tǒng)開機后運行什么命令,就把什么命令寫到這里面來。就比如剛才筆者掛載的那條命令。你可以這樣實現(xiàn):
mount 還有一個比較常用的選項就是-t ,后邊指定文件系統(tǒng)的類型,比如掛載軟盤時就需要指定 vfat,而掛載光盤時就需要指定iso9660,但在筆者多年來的經(jīng)驗,目前的系統(tǒng)都是智能識別所要掛載分區(qū)的系統(tǒng)格式類別的。也就是說,用不著你去指定,它會自動判斷的。
umount 卸載設備
現(xiàn)在你學會了如何掛載一個設備,那么如何去卸載一個設備呢,這就要用到umount了,這個命令也簡單的很,后邊可以跟掛載點,也可以跟分區(qū)名(/dev/hdb1)
有時也許你會遇到比較難卸載的設備,就像在windows下無法刪除U盤一樣,教你一個特管用的方法就是 umount -l /dev/hdb1 ,這個-l選項有強制卸載的意思,你一定要記住哦,非常有用的。
【建立一個swap文件】
從裝系統(tǒng)時就接觸過這個swap了,前面也說過它類似與windows的虛擬內(nèi)存,分區(qū)的時候一般大小為內(nèi)存的2倍,如果你的內(nèi)存超過4G,那么你分8G似乎是沒有必要了。分4G足夠日常交換了。然而,還會有虛擬內(nèi)存不夠用的情況發(fā)生。如果真遇到了,莫非還要重新分一下磁盤?當然不能!那我們就增加一個虛擬的磁盤出來。
基本的思路就是:建立swapfile ? 格式化為swap格式 ? 啟用該虛擬磁盤
利用dd 來創(chuàng)建一個419M的文件/tmp/newdisk出來,其中if代表從哪個文件讀,/dev/zero是linux下特有的一個0生成器,of表示輸出到哪個文件,bs即塊大小,count則定義有多少個塊。
mkswap 這個命令是專門格式化swap格式的分區(qū)的,這個命令用的時候一定要看清楚了,否則把其他分區(qū)給格式化錯了就只有哭了。
free 是用來查看系統(tǒng)內(nèi)存以及虛擬內(nèi)存使用情況的,-m選項是以M的形式查看。可以看到當前系統(tǒng)的。而swapon 是啟用我們新建的swap文件,啟用后再用free查看發(fā)現(xiàn)多了400M。
我們還可以用swapoff 關(guān)閉啟用的swap文件。
【磁盤配額】
磁盤配合其實就是給每個用戶分配一定的磁盤額度,只允許他使用這個額度范圍內(nèi)的磁盤空間。在linux系統(tǒng)中,是多用戶多任務的環(huán)境,所以會有很多人共用一個磁盤的情況。針對每個用戶去限定一定量的磁盤空間是有必要的,這樣才顯得公平。
在linux中,用來管理磁盤配額的東西就是quota了。如果你的linux上沒有quota,則需要你安裝這個軟件包 quota-3.13-5.el5.RPM (其實版本是多少無所謂了,關(guān)鍵是這個軟件包)。quota在實際應用中是針對整個分區(qū)進行限制的。如果你的/dev/hda3 是掛載在/home 目錄下的,那么/home 所有目錄都會受到限制。
quota 這個模塊主要分為quota quotacheck quotaoff quotaon quotastats edquota setquota warnquota repquota這幾個命令,下面就分別介紹這些命令。
quota 用來顯示某個組或者某個使用者的限額。
語法:quota [-guvs] [user,group]
-g :顯示某個組的限額
-u :顯示某個用戶的限額
-v :顯示的意思
-s :選擇inod或硬盤空間來顯示
quotacheck 用來掃描某一個磁盤的quota空間。
語法:quotacheck [-auvg] /path
-a :掃描所有已經(jīng)mount的具有quota支持的磁盤
-u :掃描某個使用者的文件以及目錄
-g :掃描某個組的文件以及目錄
-v :顯示掃描過程
-m :強制進行掃描
edquota 用來編輯某個用戶或者組的quota值。
語法:edquota [-u user] [-g group] [-t]
edquota -p user -u user
-u :編輯某個用戶的quota
-g :編輯某個組的quota
-t :編輯寬限時間
-p :拷貝某個用戶或組的quta到另一個用戶或組
當運行edquota -u user 時,系統(tǒng)會打開一個文件,你會看到這個文件中有7列,它們分別代表的含義是:
Filesystem :磁盤分區(qū),如/dev/hda3
blocks :當前用戶在當前的Filesystem中所占用的磁盤容量,單位是Kb。該值請不要修改。
soft/hard :當前用戶在該Filesystem內(nèi)的quota值,soft指的是最低限額,可以超過這個值,但必須要在寬限時間內(nèi)將磁盤容量降低到這個值以下。hard指的是最高限額,即不能超過這個值。當用戶的磁盤使用量高于soft值時,系統(tǒng)會警告用戶,提示其要在寬限時間內(nèi)把使用空間降低到soft值之下。
inodes :目前使用掉的inode的狀態(tài),不用修改。
quotaon 啟動quta,在編輯好quota后,需要啟動才能是quta生效
語法:quotaon [-a] [-uvg directory]
-a :全部設定的quota啟動
-u :啟動某個用戶的quota
-g :啟動某個組的quota
-s :顯示相關(guān)信息
quotaoff 關(guān)閉quota
該命令常用只有一種情況 quotaoff -a 關(guān)閉全部的quota
以上講了很多quota的相關(guān)命令,那么接下來筆者教你如何在實踐應用中去做這個磁盤配額。整個執(zhí)行過程如下:
首先先確認一下,你的/home目錄是不是單獨的掛載在一個分區(qū)下,用df 查看即可。如果不是則需要你跟我一起做。否則這一步即可省略。
筆者的linux系統(tǒng)中,/home并沒有單獨占用一個分區(qū)。所以需要把/home目錄掛載在一個單獨的分區(qū)下,因為quota是針對分區(qū)來限額的。
筆者用fdisk -l 查看目前/dev/hdb 磁盤有5個可用分區(qū),所以筆者打算把/dev/hdb1掛載在/home 目錄下
看到了吧,目前筆者的/home目錄已經(jīng)是一個單獨的分區(qū)了。
1)建立測試用戶
首先建立一個test用戶,則同時建立了一個test組。可以在/etc/passwd中有以test為開頭的行,其中uid和gid都為500 ,然后又建立一個test1賬號,使其加入test組,查看/etc/passwd文件發(fā)現(xiàn)test和test1用戶的gid都為500。(也許你對/etc/passwd文件、增加一個用戶以及uid和gid等概念不熟悉,沒有關(guān)系,在以后的章節(jié)中會做介紹,在這里只需要你明白即可)
2)打開磁盤的quota功能
默認linux并沒有對任何分區(qū)做quota的支持,所以需要我們手動打開磁盤的quota功能,你是否記得,在前面內(nèi)容中分析/etc/fstab文件的第四列時講過這個quota選項(usrquota, grpquota)。沒錯,要想打開這個磁盤的quota支持就是需要修改這個第四列的。用vim編輯/etc/fstab 加入一行,如下圖:
vim命令將會在后續(xù)章節(jié)詳細介紹,前面介紹過如何進入編輯模式以及如何保存文件。如果你的linux系統(tǒng)已經(jīng)有/home這一行,那么直接修改第四列,加上usrquota,grpguota(中間沒有空格)。接下來需要重新掛載/home。
另外你也可以這樣實現(xiàn)重新掛載/home
如何查看是否啟用了quota呢?
只要查看/etc/mtab文件中/home所在那行是否有usrguota,grpquota即可。筆者的/dev/hdb1現(xiàn)在已經(jīng)支持了quota
3)掃描磁盤的使用者使用狀況,并產(chǎn)生重要的aquota.group與aquota.user
這一步就需要用到quotacheck了,aquota.group與aqouta.user分別是組以及用戶磁盤配額需要的配置文件。如果沒有這兩個文件,則磁盤配額是不會生效的。
當首次使用quotacheck命令時,會提示“cannot stat old user quota file ……”其實這是在提示你在/home目錄下沒有aquota.user以及aquota.group兩個文件。沒有關(guān)系,因為以前并沒有配置過磁盤配額,當然沒有這兩個文件了。當執(zhí)行完quotacheck命令后,會在/home目錄下生成這兩個文件的。
4)啟動quota配額
5)編輯用戶磁盤配額
先來設定test賬戶的配額,然后直接把test的配額拷貝給test1即可。這里就需要用到edquota了。
講上面內(nèi)容修改為
其中單位是Kb,所以soft 值大約為20Mb,hard值為30Mb,保存這個文件,保存的方式跟vim一個文件的方式一樣的。
將test的配額復制給test1。下面繼續(xù)設定寬限時間。
默認是7days 在這里我們改為1days。下面查看一下test以及test1用戶的配額吧。
6)編輯組磁盤配額
設定組test的soft配額值為40M,hard值為50M。下面查看組test的配額。
7)設定開機啟動
前面已經(jīng)講到啟動磁盤配額的命令是quotaon -aug ,所以要想開機啟動,只需將這條命令加入到 /etc/rc.d/rc.local文件即可。
聯(lián)系客服