自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux系統(tǒng)運(yùn)維的重要原則和方法詳解

運(yùn)維 系統(tǒng)運(yùn)維
企業(yè)Linux系統(tǒng)的運(yùn)維成為目前企業(yè)關(guān)注的重點(diǎn)。作為一種優(yōu)秀的開(kāi)源網(wǎng)絡(luò)操作系統(tǒng),如何充分利用Linux的工具并使用相應(yīng)的方法來(lái)提高運(yùn)維效率是非常重要的工作。本文將著重介紹運(yùn)維過(guò)程中的重要原則和方法,包括如何避免產(chǎn)生問(wèn)題以及如何解決系統(tǒng)問(wèn)題。

  企業(yè)Linux系統(tǒng)的運(yùn)維成為目前企業(yè)關(guān)注的重點(diǎn)。作為一種優(yōu)秀的開(kāi)源網(wǎng)絡(luò)操作系統(tǒng),如何充分利用Linux的工具并使用相應(yīng)的方法來(lái)提高運(yùn)維效率是非常重要的工作。在第一篇文章中,我們介紹了運(yùn)維相關(guān)的4個(gè)應(yīng)用工具的使用和實(shí)戰(zhàn),本文作為該專題的第二篇文章,將著重介紹運(yùn)維過(guò)程中的重要原則和方法,包括如何避免產(chǎn)生問(wèn)題以及如何解決系統(tǒng)問(wèn)題的內(nèi)容,以為企業(yè)Linux的實(shí)際運(yùn)維提供有益參考。

  Need to Know I:系統(tǒng)管理員與系統(tǒng)用戶增強(qiáng)溝通

  作為一個(gè)系統(tǒng)管理員的主要職責(zé)之一是與系統(tǒng)用戶通信。當(dāng)為維修系統(tǒng)而停機(jī)時(shí),當(dāng)上線一類新軟件以及發(fā)布用戶如何訪問(wèn)新的系統(tǒng)打印機(jī)時(shí),需要發(fā)布公告。甚至可以開(kāi)始充當(dāng)一個(gè)地方小報(bào)的角色,讓用戶知道新員工、RIF、生日、公司野餐信息等。

  不同的通信有不同的側(cè)重點(diǎn)。例如,在兩個(gè)月內(nèi)的公司野餐的信息與將在五分鐘內(nèi)關(guān)閉系統(tǒng)的消息的敏感度是不一樣的。為了滿足這些不同的需求,Linux 提供了不同的通信方式。下面的列表描述和對(duì)比了最常用的方法。這些方法通常會(huì)提供給所有用戶,除了當(dāng)天消息通常只為具有 root 權(quán)限的用戶保留外。

  有如下工具(實(shí)用程序)可以增強(qiáng)系統(tǒng)管理員與系統(tǒng)用戶的通信和溝通。

  Write:使用 write 實(shí)用程序可以與在本地系統(tǒng)上登錄的用戶進(jìn)行通信。例如,可以使用它來(lái)要求用戶停止運(yùn)行拖慢系統(tǒng)的程序,該用戶可能會(huì)回復(fù)說(shuō):他將在三分鐘內(nèi)完成。用戶還可以使用 write 來(lái)要求系統(tǒng)管理員掛載磁帶或恢復(fù)文件。write 發(fā)送的消息可能不會(huì)出現(xiàn)在圖形環(huán)境中。

  IM:Empathy IM(Internet 消息 ; live.gnome.org/Empathy)實(shí)用程序使用 Google Talk、MSN、IRC、AIM、Facebook、雅虎、ICQ 以及其它協(xié)議,支持文本、語(yǔ)音、視頻聊天和文件傳輸。使用時(shí),可點(diǎn)擊主菜單:Applications?Internet?Empathy Internet Messaging。IM 常見(jiàn)于許多工作場(chǎng)所,可以用它來(lái)聯(lián)系 Red Hat 支持。

  Wall:wall(write all)實(shí)用程序可以有效地與所有登錄用戶即時(shí)通信。此實(shí)用程序從標(biāo)準(zhǔn)輸入獲得輸入,工作方式很像 write,只不過(guò)用戶不能使用 wall 來(lái)只寫回你一個(gè)人。當(dāng)要關(guān)閉系統(tǒng)或在其它危機(jī)情況下,可使用 wall。沒(méi)有登錄的用戶將無(wú)法得到消息。只有在危機(jī)情況下才可以使用 root 權(quán)限的用戶身份運(yùn)行 wall; 它會(huì)中斷任何人在做的任何工作。wall 發(fā)送的消息可能不會(huì)出現(xiàn)在圖形環(huán)境中。

  Email:電子郵件用于與一個(gè)或多個(gè)系統(tǒng)和 / 或遠(yuǎn)程用戶進(jìn)行不太緊急的通信。發(fā)送郵件后,你必須愿意等待每個(gè)用戶來(lái)閱讀它。電子郵件可用于提醒忘了注銷的用戶,他們的帳單已逾期,或他們使用了太多的磁盤空間。與通過(guò) write 收到的消息相反,用戶可以輕松地永久存儲(chǔ)通過(guò)電子郵件接收的消息記錄,因此他們可以隨時(shí)跟蹤重要的細(xì)節(jié)。舉例來(lái)說(shuō),使用電子郵件告知用戶一個(gè)新的復(fù)雜操作過(guò)程,以便每個(gè)用戶都可以保留一份信息副本,以供參考。

  當(dāng)日消息:用戶每次在文本環(huán)境中登錄時(shí)會(huì)看到當(dāng)日消息,而當(dāng)他們打開(kāi)終端仿真器窗口時(shí)則不會(huì)看到。必要時(shí),可以編輯 /etc/motd 文件以更改此消息。當(dāng)日消息可以提醒用戶將要進(jìn)行的定期保養(yǎng)、新的系統(tǒng)功能或程序的更新信息。#p#

  Need to Know II:運(yùn)維過(guò)程中可能產(chǎn)生的問(wèn)題

  即使是經(jīng)驗(yàn)豐富的系統(tǒng)管理員也會(huì)犯錯(cuò)誤,當(dāng)然新的系統(tǒng)管理員犯的錯(cuò)誤會(huì)更多。雖然可以通過(guò)細(xì)心閱讀以及遵循軟件文檔的指示來(lái)降低出問(wèn)題的可能性,但很多事情仍然會(huì)出問(wèn)題。一個(gè)列表不管多長(zhǎng),都不可能是全面的,因?yàn)槊刻於紩?huì)產(chǎn)生新的問(wèn)題。本節(jié)將介紹一些常見(jiàn)技能,以避免問(wèn)題的出現(xiàn)。

  第一,執(zhí)行定期備份:對(duì)一個(gè)系統(tǒng)管理員來(lái)說(shuō),沒(méi)有什么比永遠(yuǎn)丟失重要信息更痛苦。如果本地系統(tǒng)支持多用戶,有最近的備份可能是防止公共譴責(zé)的唯一保障。如果是單用戶系統(tǒng),當(dāng)丟失一塊硬盤或誤刪文件時(shí),有最近的備份也肯定使你快樂(lè)。

  第二,閱讀和遵循指示 :軟件開(kāi)發(fā)人員提供了文檔。即使已經(jīng)安裝了軟件包,也要再次仔細(xì)閱讀說(shuō)明書。它們可能已有所改變,或者你可能記得不對(duì)。軟件更改比書的修訂更快速,因此沒(méi)有任何說(shuō)明書可以做到萬(wàn)無(wú)一失。所以,需要尋找最新的在線文檔進(jìn)行參考。/usr/share/doc 目錄中有許多實(shí)用程序、庫(kù)和軟件包的相關(guān)信息。

  當(dāng)指示不明確時(shí),需要尋求幫助:如果指示似乎不明確,嘗試找到明確的指示。

  最后,在關(guān)鍵文件中刪除或誤輸信息:一個(gè)肯定會(huì)給自己帶來(lái)惡夢(mèng)的方式是執(zhí)行命令。也許沒(méi)有其它命令會(huì)使 Linux 系統(tǒng)無(wú)用的如此之快。唯一的辦法是從安裝介質(zhì)啟動(dòng)以恢復(fù)已安裝的系統(tǒng),并從最近的備份中恢復(fù)丟失的文件。雖然這個(gè)例子描述的是一個(gè)極端的情況,許多文件都是系統(tǒng)正常運(yùn)作的關(guān)鍵。刪除這些文件之一或在其中的文件中誤輸信息,都幾乎可以肯定會(huì)造成問(wèn)題。例如如果直接編輯 /etc/passwd 文件,在某個(gè)字段中輸入錯(cuò)誤信息會(huì)導(dǎo)致一個(gè)或多個(gè)用戶無(wú)法登錄。此外,不要在 rm – rf 中使用包含通配符的參數(shù),輸入命令后要暫停一下并閱讀它,然后才按回車鍵。仔細(xì)檢查所做的一切,在對(duì)關(guān)鍵文件進(jìn)行編輯之前一定要為其制作一份副本。尤其值得注意:rm 與通配符一起使用時(shí)要小心。當(dāng)必須在 rm 命令中使用包含通配符的參數(shù)(如 *)時(shí),指定 i 選項(xiàng)以使 rm 在刪除每個(gè)文件之前進(jìn)行提示。或者,可以以相同的參數(shù)使用 echo 命令,以查看哪些文件將被刪除。當(dāng)使用 root 權(quán)限時(shí),這種檢查就顯得尤為重要。#p#

  方法:運(yùn)維過(guò)程中的實(shí)際問(wèn)題解決方法

  系統(tǒng)管理員的責(zé)任是保持系統(tǒng)安全和順利運(yùn)行。當(dāng)用戶遇到問(wèn)題時(shí),通常會(huì)找管理員幫助其回到正軌。本節(jié)建議的方法可以保持用戶滿意度和系統(tǒng)最佳性能。

  “十步法”為用戶解決無(wú)法登錄問(wèn)題

  當(dāng)用戶無(wú)法在系統(tǒng)上登錄時(shí),根源可能是用戶錯(cuò)誤或系統(tǒng)的軟硬件故障。下面的十個(gè)步驟可以幫助確定問(wèn)題所在。

  第一步:檢查 /var/log 中的日志文件。/var/log/messages 文件收集系統(tǒng)錯(cuò)誤、來(lái)自守護(hù)進(jìn)程的消息以及其它重要信息。它可能會(huì)表明問(wèn)題的原因或更多癥狀。另外,檢查系統(tǒng)控制臺(tái)。有時(shí)系統(tǒng)問(wèn)題相關(guān)的消息不寫入 /var/log/messages 中(例如一個(gè)完整的磁盤),而是顯示在系統(tǒng)控制臺(tái)上。

  第二步:確定是否只有一個(gè)用戶或一個(gè)用戶的終端 / 工作站有問(wèn)題或者是否問(wèn)題更廣。

  第三步:確定該用戶沒(méi)有打開(kāi)其 CAPS LOCK 鍵。

  第四步:確保該用戶的主目錄存在,并且在 /etc/passwd 文件中有對(duì)應(yīng)于該用戶的條目。驗(yàn)證該用戶擁有其主目錄和啟動(dòng)文件,并且它們是可讀的(而且該用戶對(duì)其主目錄有可執(zhí)行權(quán)限的情況下)。確認(rèn)在 /etc/passwd 中的該用戶登錄 shell 條目是準(zhǔn)確的,并且存在指定的 shell。

  第五步:如果用戶忘記了自己的密碼,則更改該用戶的密碼。

  第六步:檢查該用戶的啟動(dòng)文件(.profile、.login、.bashrc 等)。該用戶可能已對(duì)這些文件之一進(jìn)行了編輯,并引入了禁止登錄的語(yǔ)法錯(cuò)誤。

  第七步:檢查終端或終端與計(jì)算機(jī)之間的數(shù)據(jù)線。嘗試關(guān)閉終端或顯示器,然后再重新打開(kāi)。

  第八步:當(dāng)問(wèn)題似乎比較廣時(shí),檢查能否從系統(tǒng)控制臺(tái)登錄。確保系統(tǒng)未在單用戶模式。如果無(wú)法登錄,系統(tǒng)可能已崩潰,需要重新啟動(dòng)它,并執(zhí)行任何必要的恢復(fù)步驟。

  第九步:使用 df 來(lái)檢查整個(gè)文件系統(tǒng)。如果 /tmp 文件系統(tǒng)或該用戶的主目錄已滿,登錄有時(shí)會(huì)以意想不到的方式失敗。在某些情況下,可能能夠登錄到文本環(huán)境,但不能登錄到圖形環(huán)境。用戶登錄時(shí)啟動(dòng)的應(yīng)用程序無(wú)法創(chuàng)建臨時(shí)文件,或無(wú)法更新用戶主目錄中的文件時(shí),登錄過(guò)程本身可能會(huì)終止。

  第十步:如果用戶通過(guò)網(wǎng)絡(luò)連接登錄,需要重新啟動(dòng)該用戶嘗試使用的服務(wù)(例如 ssh)。并請(qǐng)確保兩個(gè)系統(tǒng)上的時(shí)鐘是同步的。當(dāng)使用 HTTPS、ssh、LDAP 尤其是 kerberos 等加密登錄方法時(shí),時(shí)鐘設(shè)置的時(shí)間不同可能會(huì)導(dǎo)致登錄失敗。還要請(qǐng)確保 DNS 正常工作。一些網(wǎng)絡(luò)服務(wù)與名稱解析的相關(guān)性比較強(qiáng),包括反向查找(即名稱解析問(wèn)題會(huì)導(dǎo)致拖慢通過(guò) ssh 的連接)。#p#

加快系統(tǒng)運(yùn)行速度

  當(dāng)系統(tǒng)由于不明原因運(yùn)行緩慢時(shí),也許是用戶注銷時(shí)沒(méi)有關(guān)閉進(jìn)程。此問(wèn)題的表現(xiàn)包括很長(zhǎng)的響應(yīng)時(shí)間和很大的系統(tǒng)負(fù)荷,如使用 w 或 uptime 所示的數(shù)據(jù)大于 1.0。最好運(yùn)行 top 以迅速找到流氓進(jìn)程。使用 ps – ef 可列出所有進(jìn)程。在 ps – ef 輸出中要找的內(nèi)容是大量的 TIME 列。例如,如果 Firefox 進(jìn)程的 TIME 字段超過(guò) 100.0,這一進(jìn)程有可能運(yùn)行不正常。然而,如果該用戶正在執(zhí)行大量的 Java 工作,并且已經(jīng)登錄很長(zhǎng)時(shí)間,這個(gè)值就可能是正常的。檢查 STIME 字段以查看該進(jìn)程啟動(dòng)的時(shí)間。如果該進(jìn)程的運(yùn)行時(shí)間比用戶登錄在線的時(shí)間還長(zhǎng),最好終止它。

  當(dāng)用戶遇到問(wèn)題,并在沒(méi)有通知任何人的情況下離開(kāi)無(wú)人值守的終端時(shí),最好終止該用戶擁有的所有進(jìn)程。如果用戶在控制臺(tái)上運(yùn)行 GUI,終止啟動(dòng)桌面環(huán)境的進(jìn)程或窗口管理器本身。還要繼續(xù)查找包括 gnome-session、startkde 或其它以 wm 結(jié)尾的進(jìn)程名。通常窗口管理器既是第一個(gè)也是最后一個(gè)要運(yùn)行的進(jìn)程,并在用戶注銷時(shí)退出。如果終止窗口管理器不起作用,可嘗試終止 X 服務(wù)器進(jìn)程,這個(gè)進(jìn)程通常列為 /usr/bin/Xorg。如果上述操作失敗,當(dāng)以該用戶身份登錄時(shí),通過(guò)執(zhí)行 kill – 15 – 1 命令或等效的 kill – TERM – 1 命令,可以終止用戶擁有的所有進(jìn)程。使用– 1 替換進(jìn)程 ID 以告訴 kill 來(lái)給該用戶擁有的所有進(jìn)程發(fā)送信號(hào)。例如,作為 root 可以輸入以下命令:

 # su zach -c 'kill -TERM -1'

  如果不能終止所有進(jìn)程(有時(shí) TERM 無(wú)法終止進(jìn)程),可以使用 KILL 信號(hào)(– 9)。下面這行一定會(huì)終止 Zach 擁有的所有進(jìn)程,但不太友好:

 # su zach -c 'kill -KILL -1'

  如果不包含 su zach – c,這個(gè)命令將關(guān)閉系統(tǒng)。

  掌握和查找打開(kāi)的文件

  lsof(列出打開(kāi)的文件)實(shí)用程序會(huì)顯示打開(kāi)的文件名。其選項(xiàng)僅顯示某些進(jìn)程,只有一個(gè)進(jìn)程的某些文件描述符,或只有某些網(wǎng)絡(luò)連接(網(wǎng)絡(luò)連接使用文件描述符,就像普通文件一樣,lsof 也顯示這些)。使用 ps – ef 確定了可疑進(jìn)程后,輸入以下命令:

 # lsof -s -p pid

  用可疑進(jìn)程的進(jìn)程 ID 替換 PID,lsof 會(huì)顯示 PID 進(jìn)程打開(kāi)的文件描述符列表。– s 選項(xiàng)顯示所有打開(kāi)文件的大小,– p 選項(xiàng)則允許指定感興趣的進(jìn)程 PID 號(hào)(如果組合這些選項(xiàng),則 lsof 不會(huì)運(yùn)行)。文件大小信息用于確定該進(jìn)程是否打開(kāi)了一個(gè)非常大的文件。如果是這樣,需要聯(lián)系該進(jìn)程的所有者,或者在必要情況下終止該進(jìn)程。– rn 選項(xiàng)表示每 n 秒重新顯示一次 lsof 的輸出。

  保留機(jī)器日志以備審計(jì)

  機(jī)器日志包含如表 1 所示的信息,可以幫助查找和修復(fù)系統(tǒng)問(wèn)題。它用于記錄日志中每個(gè)條目的日期和時(shí)間。避免僅把日志保留在計(jì)算機(jī)上,當(dāng)系統(tǒng)關(guān)閉時(shí),這將是最有用的。同時(shí)保留詳細(xì)描述用戶問(wèn)題的電子郵件。一種策略是把郵件保存到你可以讀取的單個(gè)文件或文件夾中。另一種方法是設(shè)立郵件別名,以便用戶有問(wèn)題時(shí)可以發(fā)送郵件到別名。這個(gè)別名就可以將郵件轉(zhuǎn)發(fā)給你,還可以在歸檔文件中存儲(chǔ)副本。

  表 1 機(jī)器日志的分類

  以下是 /etc/aliases 文件中條目的例子,可以設(shè)置這種類型的別名:

 trouble: admin,/var/spool/mail/admin.archive

  發(fā)送到 trouble 別名的電子郵件將被轉(zhuǎn)發(fā)到 admin 用戶,并同時(shí)存儲(chǔ)到 /var/spool/mail/admin.archive 文件中。#p#

  保持系統(tǒng)的運(yùn)行安全

  沒(méi)有任何使用撥號(hào)線路或公共訪問(wèn)終端的系統(tǒng)是絕對(duì)安全的。不過(guò),可以通過(guò)經(jīng)常更改 root 密碼并選擇難以猜測(cè)的密碼的方式,使系統(tǒng)盡可能安全。不要告訴任何絕對(duì)不需要知道 root 密碼的人。還可以鼓勵(lì)系統(tǒng)用戶選擇高難度密碼,并定期對(duì)其進(jìn)行更改。

  密碼

  默認(rèn)情況下,F(xiàn)edora/RHEL 上的密碼使用 MD5 哈希,這使得它們比使用 DES 加密的密碼更難以破解。當(dāng)然如果加密的密碼很容易讓人找到或猜到,則差別不大。system-config-authentication 實(shí)用程序允許指定一個(gè)本地密碼哈希算法,可選擇高級(jí)選項(xiàng)選項(xiàng)卡,并從 Password Hashing Algorithm 下拉框選擇。

  一個(gè)難以猜測(cè)的密碼是別人認(rèn)為不可能選擇的密碼。不要使用字典中的字、親人、寵物、朋友的名字或外語(yǔ)單詞。一個(gè)好的策略是選擇一個(gè)短語(yǔ),包含一些標(biāo)點(diǎn)符號(hào)(例如,在它們之間放置 ^)、大小寫混合,并用數(shù)字替換一些單詞的字母。一個(gè)好密碼的示例是 C&yGram5(candygrams)。理想情況下,可以使用 ASCII 字符的隨機(jī)組合,但是這將很難記住。

  可以使用幾種密碼破解程序,以找到選擇弱密碼的用戶。這些程序的工作原理是反復(fù)哈希字典、短語(yǔ)、姓名和其它來(lái)源中的單詞。如果哈希密碼與程序的輸出相匹配,則該程序發(fā)現(xiàn)了用戶的密碼。兩個(gè)破解密碼的程序是 crack(crack包)和 john(www.openwall.com/john;john 包)。這些和許多其它程序以及安全性提示可以從 CERT(www.cert.org,Computer Emergency Response Team 計(jì)算機(jī)應(yīng)急反應(yīng)小組)獲得。

  破解一個(gè)好密碼需要大量的計(jì)算能力。密碼破解程序一般首先看大寫字母、小寫字母和數(shù)字組成的字符集。當(dāng)添加符號(hào)時(shí),他們必須做更多的工作來(lái)破解密碼。此外,密碼越長(zhǎng),破解需要的計(jì)算能力就越多。密碼足夠長(zhǎng)以便更難被破解,又要足夠短以便容易記住。8-20 個(gè)字符通常是一個(gè)很好的長(zhǎng)度。密碼中要包含幾個(gè)如 #、@ 和 % 這樣的符號(hào)。如果時(shí)間太長(zhǎng)以至于無(wú)法破解你的密碼,做破解工作的人或機(jī)器就可能會(huì)轉(zhuǎn)移到容易破解的帳戶上。

  Setuid 文件

  確保只有具有 root 權(quán)限的用戶才可以寫入包含 root 擁有程序的文件,并運(yùn)行在 setuid 模式(例如,passwd 和 su)。另外,確保用戶不會(huì)把運(yùn)行在 setuid 模式的程序以及 root 擁有的程序轉(zhuǎn)移到掛載系統(tǒng)上。這些程序可以被用來(lái)繞過(guò)系統(tǒng)的安全性。防止用戶擁有 setuid 文件的一項(xiàng)技術(shù)是使用 nosuid 標(biāo)志來(lái)掛載,可以在 fstab 文件中的標(biāo)志部分進(jìn)行設(shè)置。

  BIOS

  許多機(jī)器中的 BIOS 可以提供一定程度的保護(hù),防止未經(jīng)授權(quán)的人試圖修改 BIOS 或重新啟動(dòng)系統(tǒng)。設(shè)置 BIOS 時(shí),可以查找 Security 部分。你也許可以添加一個(gè) BIOS 密碼。如果依賴 BIOS 密碼,在鎖定計(jì)算機(jī)的情況下,使用主板上的跳線,通常很容易復(fù)位 BIOS 密碼。

  root 的日志文件和郵件

  用戶經(jīng)常給 root 和 postmaster 發(fā)送電子郵件來(lái)與系統(tǒng)管理員通信。如果沒(méi)有把 root 的郵件轉(zhuǎn)發(fā)給自己,記得定期檢查 root 的郵件。使用 su 執(zhí)行系統(tǒng)管理任務(wù)時(shí),將不會(huì)收到到達(dá) root 的提醒郵件。但是,可以使用 su – c ‘ mail – u root ’命令來(lái)查看 root 的郵件。

  定期檢查系統(tǒng)日志文件以發(fā)現(xiàn)問(wèn)題證據(jù)。一些重要文件包括 /var/log/messages,其中記錄了操作系統(tǒng)和一些應(yīng)用程序的錯(cuò)誤;/var/log/secure,其中包含了與系統(tǒng)安全性有關(guān)的消息 ; /var/log/maillog,其中包含郵件系統(tǒng)的錯(cuò)誤;/var/log/cron,其中包含 crond 的消息。

  logwatch 實(shí)用工具(logwatch 包)是一個(gè)用 Perl 編寫的報(bào)表編寫器,可發(fā)送有關(guān)日志文件的電子郵件報(bào)告。默認(rèn)情況下,/etc/cron.daily/0logwatch 每天運(yùn)行這個(gè)腳本并把其輸出郵發(fā)給 root。 更多信息參閱 logwatch 手冊(cè)頁(yè)和腳本本身。

  監(jiān)控磁盤使用情況

  系統(tǒng)可能遲早會(huì)用完磁盤空間。因此不要填滿一個(gè)分區(qū)。當(dāng)一個(gè)分區(qū)至少有 5 %至 30 %的剩余空間時(shí),Linux 寫入文件的速度會(huì)明顯加快。如果一個(gè)分區(qū)的已使用空間超過(guò)其最大最優(yōu)磁盤空間,就會(huì)降低系統(tǒng)性能。

  碎片

  當(dāng)一個(gè)文件系統(tǒng)已滿時(shí),它會(huì)變得支離破碎。這類似于 DOS 碎片的概念,但這幾乎是不明顯的并通常罕見(jiàn)于現(xiàn)代 Linux 文件系統(tǒng)上,因?yàn)?Linux 文件系統(tǒng)的設(shè)計(jì)是耐碎片的。如果不把文件系統(tǒng)填滿,可能永遠(yuǎn)也不用擔(dān)心碎片問(wèn)題。如果文件系統(tǒng)上沒(méi)有空間了,則根本無(wú)法寫入。

  要檢查文件系統(tǒng)碎片,要卸載該文件系統(tǒng),并在其上運(yùn)行 fsck; 在 ext2、ext3 和 ext4 文件系統(tǒng)上使用– f 選項(xiàng)。 fsck 的輸出包括一個(gè)文件系統(tǒng)碎片百分?jǐn)?shù)。通過(guò)備份可以整理文件系統(tǒng),首先使用 mkfs 做一個(gè)干凈的空映像,然后恢復(fù)文件系統(tǒng)。使用哪個(gè)工具來(lái)執(zhí)行備份和恢復(fù)并不重要。

  報(bào)告

  Linux 提供了幾個(gè)程序,可以報(bào)告誰(shuí)正在使用哪些文件系統(tǒng)的多少磁盤空間??梢詤⒖?du、quota 和 df 手冊(cè)頁(yè)以及 find 實(shí)用程序手冊(cè)頁(yè)中的– size 選項(xiàng)。除了這些實(shí)用程序,還可以使用磁盤配額系統(tǒng)管理磁盤空間。#p#

  快速增長(zhǎng)的文件

  增加文件系統(tǒng)上的可用空間量的四大策略是:壓縮文件、刪除文件、增大基于 LVM 的文件系統(tǒng)以及壓縮目錄。一些文件(如日志文件和臨時(shí)文件)隨著時(shí)間的推移會(huì)不可避免地增長(zhǎng)。例如,核心轉(zhuǎn)儲(chǔ)文件占用了大量的空間,但很少需要。此外,用戶偶爾運(yùn)行的程序可能會(huì)意外產(chǎn)生巨大的文件。作為系統(tǒng)管理員,必須定期審查這些文件,使其不至失控。

  如果一個(gè)文件系統(tǒng)很快耗盡空間(如在一個(gè)小時(shí)內(nèi),而不是幾個(gè)星期或幾個(gè)月內(nèi)),首先弄清楚空間耗盡的原因??墒褂?ps – ef 命令來(lái)確定用戶是否已經(jīng)創(chuàng)建了失控的進(jìn)程,并且生成了巨大的文件。評(píng)估 ps 的輸出時(shí),可尋找一個(gè)消耗了大量 CPU 時(shí)間的進(jìn)程。如果這樣的進(jìn)程正在運(yùn)行,并創(chuàng)建了大文件,那該文件將持續(xù)增長(zhǎng)以致需要不斷騰出空間。如果刪除了這個(gè)巨大的文件,其占用的空間并不會(huì)被釋放,除非終止該進(jìn)程。此時(shí)需要嘗試聯(lián)系運(yùn)行該進(jìn)程的用戶,并要求他終止該進(jìn)程。如果聯(lián)系不到該用戶,請(qǐng)使用 root 權(quán)限自己終止該進(jìn)程。

  此外,還可以截?cái)啻蟮娜罩疚募皇莿h除它,雖然也可以使用 logrotate 來(lái)更好地處理這個(gè)常見(jiàn)情況。例如,如果由于系統(tǒng)守護(hù)進(jìn)程的錯(cuò)誤配置,使得 /var/log/messages 文件變得非常大,可以使用 /dev/null 來(lái)截?cái)嗨?/p>

 # cp /dev/null /var/log/messages

  或

 # cat /dev/null > /var/log/messages

  或無(wú)須派生新進(jìn)程 ,

# : > /var/log/messages

  如果刪除 /var/log/messages,必須重新啟動(dòng) rsyslogd 守護(hù)進(jìn)程。如果不重新啟動(dòng) rsyslogd,將不會(huì)釋放文件系統(tǒng)上的空間。

  當(dāng)沒(méi)有任何進(jìn)程消耗磁盤空間,而容量逐漸被用光時(shí),就要找到不需要的文件,并將其刪除。在刪除之前可以使用 cpio、dump 或 tar 歸檔這些文件。可以安全地刪除大部分已有幾天未曾訪問(wèn)的 core 文件。以下命令行可執(zhí)行這項(xiàng)功能,而不刪除必要的 core 文件(如 /dev/core):

 # find / -type f -name core|xargs file|grep 'B core file'|sed 's/:ELF.*//g'|xargs rm -f

  find 命令列出所有名為 core 的普通文件,并將該列表發(fā)送到 xargs,xargs 在列表中的每個(gè)文件上運(yùn)行 file。file 實(shí)用程序顯示一個(gè)字符串,其中包含 B core file(創(chuàng)建的核心轉(zhuǎn)儲(chǔ)文件)這類需要?jiǎng)h除的文件。grep 命令從文件中過(guò)濾掉任何不包含此字符串的行。最后 sed 刪除冒號(hào)后的一切,使所有留在行上的只是 core 文件的路徑名 ; 然后 xargs 刪除該文件。

  為了騰出更多的磁盤空間,可仔細(xì)審查 /tmp 和 /var/tmp 目錄中的舊臨時(shí)文件并刪除。對(duì) /var/mail、/var/spool 和 /var/log 中的磁盤使用情況保持跟蹤。

  刪除目錄中未使用的空間

  包含太多文件的目錄通常效率不高。ext2、ext3 或 ext4 文件系統(tǒng)上的目錄在哪一點(diǎn)上變得效率不高的原因不盡相同,但部分取決于它包含的文件的長(zhǎng)度。最佳做法是保持目錄相對(duì)較小。一個(gè)目錄中最好包含較少的文件而不是幾百個(gè)文件(或目錄),多達(dá)數(shù)千個(gè)文件通常是很不好的做法。此外,Linux 為經(jīng)常訪問(wèn)的文件使用了緩存機(jī)制,以加速?gòu)奈募檎移?inode 的進(jìn)程。這種緩存機(jī)制僅支持最多 30 個(gè)字符的文件名,所以通常要避免訪問(wèn)文件名非常長(zhǎng)的文件。當(dāng)一個(gè)目錄變得太大時(shí),通常可以將其分解成幾個(gè)較小的目錄,將其內(nèi)容移動(dòng)到那些新目錄。移動(dòng)完該目錄內(nèi)容后,要確保刪除原來(lái)的目錄。

  因?yàn)?Linux 目錄不會(huì)自動(dòng)收縮,刪除目錄中的文件也不會(huì)收縮該目錄,即使它釋放了所有的磁盤空間。因此,要?jiǎng)h除未使用的空間,并使目錄比較小,必須把所有文件復(fù)制或移動(dòng)到一個(gè)新目錄,并刪除原目錄。

  下面的過(guò)程可刪除未使用的目錄空間。首先從大目錄中刪除所有不需要的文件,然后創(chuàng)建一個(gè)新的空目錄,接下來(lái)把所有剩余文件從舊的大目錄移動(dòng)或復(fù)制到新的空目錄中。記住不要忘了復(fù)制隱藏的文件。最后刪除舊目錄,并命名新目錄。

# mkdir /home/max/new
# mv /home/max/large/* /home/max/large/.[A-z]* /home/max/new
# rmdir /home/max/large
# mv /home/max/new /home/max/large

責(zé)任編輯:黃丹 來(lái)源: developerWorks
相關(guān)推薦

2019-03-19 08:41:38

Linux運(yùn)維變更

2012-11-13 10:35:31

Linux系統(tǒng)運(yùn)維

2015-10-30 10:40:45

意義數(shù)據(jù)運(yùn)維運(yùn)維

2014-09-17 11:16:42

2014-09-17 10:34:47

2014-04-23 11:36:29

運(yùn)維日志

2018-11-12 10:10:09

Linux遠(yuǎn)程數(shù)據(jù)工具

2013-12-18 10:56:48

Linux運(yùn)維運(yùn)維技能

2018-10-15 14:26:23

運(yùn)維IT技術(shù)架構(gòu)

2018-07-23 09:24:08

Linux系統(tǒng)運(yùn)維運(yùn)維工程師

2018-08-16 08:37:03

機(jī)房運(yùn)維硬件

2011-09-01 10:22:03

Cobbler運(yùn)維自動(dòng)化

2012-12-12 16:26:21

2022-05-15 23:25:11

容器云平臺(tái)運(yùn)維架構(gòu)

2013-04-12 13:30:47

2023-06-30 08:54:39

2011-05-25 13:55:02

Oracle

2020-04-30 15:00:17

運(yùn)維Ansible自動(dòng)化

2014-05-16 14:31:55

運(yùn)維自動(dòng)化Cobbler

2019-06-06 08:50:08

運(yùn)維監(jiān)控工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)