今天,linux
的發行版非常地容易安裝也非常容易入門。就算是乙個缺乏經驗的系統管理員,建立必須的服務並完成可執行的程式通常也可以在幾小時內完成。
很不幸,容易入門反而掩蓋了需要做的維護工作,這些工作是保持系統穩定和使系統長期處於乙個良好的工作次序中所必需的。乙個單一的伺服器通常可以在沒有人工干預的情況下執行很長時間。但是前提是所有其他的位和塊必需被提前配置。
關於這個列表,最糟糕的事情是你可能已經幾個月或幾年沒有做這些事情了。你忽略這些事情中的任何一件,它們都會在最糟糕的時候回來作祟:比如流量高峰期,硬碟驅動器崩潰,或黑客攻擊的時候。linux
系統管理員每天都應該做一些什麼工作?我們這就為您來總結一下。
配置管理
或chef
這樣的配置管理工具允許你編寫
『recipes』
來定義伺服器應該如何的被放置在一起。那些
『recipes』
可以在每個伺服器上執行產生乙個一致的、容易複製的安裝程式。這可以讓你立即啟動乙個系統的新拷貝,可以給你的安裝提供極大的自由度。
配置管理是做了,但是,卻給伺服器安裝程式新增了一定的初始化複雜性,所以如果你膽子小,不用也罷。不過,即使只有兩個或三個伺服器,好處也是相當巨大的。
備份
這一項是顯而易見的,大多數的系統管理員都會在這方面做點工作的。如果你沒有乙個可靠的備份策略,你現在需要馬上調整它。哪怕只等一天,後果很可能就是是災難性的。同時請確保你正確的做了備份,因為備份很容易做錯。mozy
,carbonite
,backblaze
等工具的
at-home
備份已經取得了很大的進展,但是類似的
linux
解決方案還遠沒有成熟。
rsync
,tar
,和類似的指令碼工具一直很受歡迎,並且也是可行的替代方案,但是必須要小心,以適應像
mysql
資料庫那樣的特殊情況。每個人的備份需求是不同的,所以無論你選擇什麼解決方案也要仔細研究它潛在的不足。你選擇的解決方案應該:
◆定期執行
◆保持多輪的備份
◆自動的刪除舊的備份
◆在你的現在的作業系統以外儲存備份
◆保持和你的原始資料一樣的安全性
◆合併所有的關鍵資料,關鍵的配置檔案(更換伺服器以後啟動和執行系統可能會需要的任何東西),和最近的日誌
測試你的備份
緊跟著備份計畫的是測試它。這意味著定期檢查備份是否一直在做,產生的檔案是否是有效的並且是否沒有被損壞,以及他們是否包括你需要的所有資料。乙個好的經驗法則是如果你的備份每30
天一輪換,那麼你應該經常的重新檢查他們。這裡自動化工具可以幫一些忙(自動地檢查備份檔案是否是最新的,是否是合理的大小並且是否有效)。儘管如此,沒有任何東西可以替代人的眼睛
……否則,當你發現你並沒有備份那些你認為你已經備份的資料時,就只有哭的份了。
日誌輪換
在最近幾年,ubuntu
,redhat
和其他主要的發行版針對他們提供的軟體包的
logrotate
的執行和配置有了很大的改善。所以你的
apache
和mysql
日誌也可以被合適的輪換(預設設定是相當合理的,雖然可能並不是你希望的方式)。但是你新增的「額外
」的東西,例如
rails
應用程式,需要建立它自己的
logrotate
條目。缺少這個步驟會在最不合適的時刻引發無數的
「硬碟驅動器已滿
」的伺服器錯誤。當然,通常你甚至不知道你的日誌引發了這個問題。針對這種情況,資源監視才是關鍵。
資源監視
跟蹤cpu
,記憶體的使用情況,硬碟空間,頻寬,等可以讓你更好的洞察你的系統狀態。當流量增加的時候,你可以比較你的增加的記憶體或
io使用情況,來提前規劃你的
「scaling」
。rrdtool/munin
,serverdensity
和cloudkick
是觀察這些隨著時間的推移而變化的資料的很好的選擇。如果你選擇的工具包括對意外的變化(失控的程序,驅動器已滿等)的警報功能,你將會領先任何潛在的問題一步。
程序監視
對你的**來說,讓你的apache
,mysql
和類似的程序一直處於執行狀態至關重要。有幾個很好的工具,例如
monit
和god
,可以幫助你確保你的程序一直處於執行狀態。通過檢查程序的響應性,開啟的埠,或程序
id那些工具可以重新啟動乙個已死的服務或在乙個失控的程序使你的整個系統崩潰前終止它。配置這件事的規則是個老大難問題,但是當一切都做好的時候,可以節省大量的凌晨
3點鐘的宕機時間。
安全加固(
hardening
)
hardening包含了許多不同的操作,這些操作可以使你的
stock
系統更安全。許多簡單的操作經常會被遺漏。你真的知道那些正在執行的程序中的每乙個都做了什麼嗎?在你的系統上,哪些額外的埠和服務被開啟了?有合適的
pam模組載入來進行安全認證嗎?又一次,
redhat
和ubuntu
走在了時代的前列,他們提供了安全
stock
系統,並確保最常見的軟體包遵守正確的安全協議。但是,這並不意味著你可以跳過這個步驟。
安全更新
在乙個基於apt
或rpm
的系統上,安全更新是很容易執行的。這個過程的陷阱是很難知道公升級包是否會在你的棧裡引發某些型別的錯誤。為了確切知道公升級包將對你的系統產生怎樣的影響,擁有一台同樣配置的模擬伺服器是唯一的好辦法。幸運的是,由安全更新引發的麻煩是十分罕見的。修復乙個更新的相容性問題,需要花費一些停機時間,這個風險要比你的系統上的乙個已知安全漏洞被利用的風險小很多。所以,不要讓
「not knowing」
阻止你進行正確的公升級。最後,不是每乙個安全漏洞都能馬上獲得乙個安裝補丁。檢視
cve字典上的可用警報,可以讓你在補丁可用前,在保持你的系統安全性方面爭取主動。為了確保一切都平滑的執行並保持最新,在這方面真的沒有什麼可以代替人的肉眼。
日誌監視
/安全掃瞄
/入侵檢測
這個列表中的所有項都是最低限度需要完成的。它們很容易被忘記,直到你的系統已經被入侵為止,你可能都不會想起它們。對異常活動,黑客攻擊和其他惡意行為的持續掃瞄,對於幫助阻止或減輕攻擊來說,是十分重要的。
這當然不是乙個完整的列表,但是它也是十分廣泛的,許多開
發者和系統管理員只是沒有時間、興趣或知識來處理它們。更糟糕的是,許多開發專案被移交給了客戶,而一旦技術團隊遷移到另乙個專案上,這些客戶就沒有能處理這些事情的職員了。
4 1系統管理員
本章要點 v 系統管理員 v 使用者管理 v 使用者組管理 v 使用使用者管理器管理使用者和組 學習要求 v 了解系統管理員的作用及其許可權 v 掌握使用 useradd 命令新增使用者的方法 v 掌握使用passwd命令為所新增的使用者設定密碼的方法 v 掌握使用groupadd 命令新增使用者組...
主資料系統管理員面試 給系統管理員的面試建議
主資料系統管理員面試 作為過去三年中系統管理員 sys admin 的招聘經理,我知道我正在尋找加入我的開源團隊的候選人。當然,我的責任是嘗試聘用全球最優秀的人才 候選人的責任是告訴我他們做了什麼以及如何做,以及他們希望自己的前途如何。我也在尋找那個火花。那件事告訴我這位候選人致力於開源的成功。在r...
Linux系統管理員必備
linux系統管理工具包系列彙總 linux系統管理員必看 vandyke securecrt 6.1.3 附特別檔案 linux administration handbook 第二版 linux伺服器配置全程實錄 時間管理 給系統管理員 中文高畫質pdf time management for ...