若是你是一個普通的系統管理員,你感到人員不足,資金不足,工做過分。到如今,你已經習慣了這種觀點:沒有人會意識到你的存在直到郵件服務器癱瘓了,而後你忽然成爲了美國人最須要的人。在這篇文章中,我假設你負責管理有不少服務器。我也假設你不是真的會盡量的努力工做;若是你是這樣,你應該成爲一個Windows服務器管理員,開始擔憂來自微軟的補丁,安全弱點,病毒防禦,一個笨拙的用戶界面,天生的缺乏腳本。我並非說 Linux是完美的,但就是有不少事情使得Linux更加容易來管理。shell
做爲一個優秀的系統管理員,你想要把工做作好,可是一個懶惰的系統管理員,你不想工做很費力的完成。在這篇文章中,我將會分享你能夠作的一些簡單的事情使得你的工做更加容易。數據庫
這些年來,我發展了一種曼特羅,「若是我不得不做一件事情超過一次,我就寫腳原本完成它。」好比說,若是我須要天天早上檢查個人服務器的健康情況,我會寫一個腳原本收集信息,格式化它,把結果以郵件形式發給本身。若是我須要在12臺機器上做配置改變,我會些一個腳原本完成這件事。剛開始,你可能會認爲手工來完成這些工做會和編寫和調試一個腳原本完成工做同樣的簡單。可是那裏隱藏着一些優點在個人工做方法中。一旦腳本很好的工做,人物就會成爲可重複的而且能夠委託給一個下層的技術員,或者自動完成。基本上,你不須要做全部的事情;它會本身完成全部的事情。咱們不久將會更多的談論腳本。安全
爲了促進腳本任務和管理多服務器,首先我要作的是在每個服務器上配置基於認證的鑑定。在每個服務器上這隻須要幾分鐘的時間而且它真的可讓你的生活更加的輕鬆。由於你不用再輸入密碼,文件傳輸,支持和維護任務能夠經過腳本完成。由於在因特網上有不少的簡單的命令是關於怎樣配置基於認證的鑑定的,在這裏我將不會浪費時間來說這些事情。bash
一旦咱們使得鑑定正常工做了,讓咱們開始讓咱們的俄生活變得更加輕鬆吧。我喜歡作的是創建一個shell腳本導出有用的變量,好比服務器
# servers.sh
export MAILSERVERS="server1 server2 server3"
export WEBSERVERS="www1 www2 www3 www4"網絡
而後我能夠下一個像這樣的簡單的腳本:
#!/bin/bash
### Assess disk space on mail servers
source ./servers.sh
for i in ${MAILSERVERS} ; do
echo =========${i} =============
ssh root@${i} "df"
echo ============ =============
donedom
這個簡單的腳本容許我很快的獲得個人全部的郵件服務器的磁盤使用狀況。它也能夠做爲一個其餘類似任務的模板。當我想經過腳本完成另外一個任務,我會拷貝一份這個腳本,在頂部替換一些內容來描述新的腳本的用途,替換for循環的主體。
要注意的是全部個人腳本都會來源於servers.sh文件,因此我有一個配置的中心點。當我增長或者刪除一個服務器時,我就會簡單的改變這個文件。ide
而且,注意在文件頂部的內容。一旦你在一個單一的目錄中有大約50個不一樣的腳本,你能夠象這樣開始給它們命名
assess_the_disk_space_on_mail_servers.sh,而我拒絕這樣作。因此,當我須要指出那個腳本作什麼,我會打:
grep 「###」 *測試
這給我一個腳本的列表和一個它們任務的簡單的描述。spa
個人關於腳本的曼特羅的必然的結果是若是我不得不每一天,每星期或者每月來完成一個一樣的任務,我會把這個工做放進cron而且把結果發到email 裏。不少系統有一些目錄包含在cron中的一些腳本,它們每小時,天天或者每星期的按期的運行。我認爲那是一個很好的作事的方法,可是有時你必須可以決定何時你須要你的腳本運行。要作這些,你須要本身修改 crontab。好比,我不想個人支持僅僅運行在當/etc/cron.daily決定運行它們的時候;我想讓它們在規定的上班時間以外開始並完成。由於我有不少比crontab的格式更加劇要的事情要記住,而且我很懶惰以致於我不想每一次都去檢查,我常常把下面這行添加進個人 crontabs:
# min hour dom month dow command
以後,每次我修改crontab的時候,我能夠很快的添加我想要的這個字段而後繼續個人工做。我知道這不是平常雜事,可是它就是那些簡單的事情你能夠作用來節省時間和精力。
以系統日誌方式登陸,是伴隨Linux而來的一個特性,可是由於它趨向於產生很大量的數據,因此它常常是不可能的。一般,人們會簡單的配置 logrotate來減小日誌保證它們不會填滿文件系統。只有當出現問題的時候那些人才會回過頭來看看他們的系統日誌告訴他們什麼。對於系統日誌,我也會添加網絡日誌,防火牆日誌,郵件日誌和任何其餘的由服務器郵件收發後臺程序產生的日誌。我不會鼓勵一行一行的閱讀這些日誌。相反的,你應該增長一些分析這些日誌的程序,儘管它只是一些greps放在一塊兒。你須要常常的增長改變到你的規則設置以使得它儘量多的過濾掉垃圾信息。不管你怎麼作,結果都應該常常的以郵件形式發給你而且你須要常常的查看一下它們。
固然,在不少服務器上配置日誌分析看起來是很大量的工做。你可能會想到配置全部的服務器發送它們的日誌到你的工做站。而後你只須要配置一個分析程序,而不是試圖在每一個服務器上覆制相同的配置。你甚至可使用上面技術的輪廓來把日誌文件從服務器上拿過來使得它們能夠在本地機器上被分析。
這些年來,我已經從閱讀個人日誌文件中獲得了不少的好處。有一次, smartd通知我個人一個IDE 硬盤驅動器將要壞掉了,在它真的壞掉以前。我能夠計劃着停用它而且替換一個新的驅動器在它壞掉損失數據以前。不少此,我在個人網絡服務器上注意到了鑑定失敗,我打電話給用戶解決了問題。我一次發現了一個貪婪的數據庫索引當我查看個人Apache 日誌文件的時候,我注意到這個服務器正在超過限度的時間來服務於一個應用。在我打電話給這個客戶告訴它我發現了這個問題以後,我開始解決這個問題………在任何人報告這個問題以前。在問題被其餘人報告的時候,我已經找到了問題所在而且有了ETR使得當客戶打電話來時,我甚至不用被打擾去開一個服務票。我只是告訴它們那會在半個小時內解決。
我也是一個服務器和服務監視迷。我過去常常花費沒一天的前一部分來檢查個人全部的服務器是否健康。如今我只用簡單的照看監視控制檯而且尋找非正常的狀況,我常常比個人客戶更早注意到問。讓咱們面對它,只要你的經理注意到郵件服務器壞了,他將會找到你;他可能會在你的服務器房間裏找到你,發現你正在修復郵件服務器的錯誤。
服務監視真的不是那麼困難來創建而且這是很好的一種方法讓你比你可客戶提早知道問題所在。可是你不能只是創建它而後假設它已經工做了。我曾經在一個職位,公司告訴全部的部門咱們都必須使用新的公司監視能力。固然這對我來講是好消息,我再也不須要爲個人服務器提供功能。做爲一個優秀、懶惰的系統管理員,我很會轉到了公司監視……而且有了一個消防演習。我走到個人一個服務器旁,關掉它,開啓計時器。個人尋呼機在30分鐘後爆掉了,這在我工做的環境中是不可接受的。在一個與經理簡短的談話以後,監視部門在他們的過程當中作了一些改變而且每一個都很高興。你應該老是此時任何一個你執行的監視系統。
擁有一個穩固的監視系統的另外一個好處是你能夠收集可用性和表現度量。這些報告能夠被看成管理來確認專制的購買或者在可用性上反駁客戶的抱怨。在一個管理會議中沒有東西比有用的數據更有用。
你也應該試着估計一些那些可能致使提早停用的事件並試着配置你的監視系統來發現這些事件。根據個人經驗,你應該監視發生很快的、更加頻繁的事件。好比說,自從個人服務器能夠不阻塞但速度不是很快,我至關頻繁的檢測它們。另外一方面,那是不可能的他們的硬盤驅動器將會在接下來的15分鐘內填滿,因此我不是很頻繁的監視驅動器的使用。我一般設置一個定製很低的鬧鐘。好比說,若是我有一個磁盤一般使用率爲30%,我可能設置一個鬧鐘定製在45%。當磁盤的使用率超過這個值時,我知道有什麼事情出問題了,但咱們並不在失敗的邊緣。我甚至可能會暫時的忽略它們讓我來計劃怎樣處理它。
全部我在這裏所描述的對不會很難而且沒有東西將須要任何真實的工程工做。你將不得不用一些腦筋在你的監視系統,可是即便你所做的一切只是配置你的服務器,而且測試使用狀況,網絡,郵件等等,都是有回覆的,你將會收穫重要的好處在很短的時間內。而且這些東西中沒有什麼是必須馬上去作的。在每次你登陸服務器的時候,只要用很短的時間而且處處作一些很簡單的。最後,你天天將會在幾分鐘以內完成你的工做而後去呼吸新鮮空氣。