新概念運維之管理員們破壞的數(shù)據(jù)總要比黑客多
原創(chuàng)【新概念運維】本次《新概念運維》內(nèi)容取材自Softpanorama網(wǎng)站的sysadmin horror stories專欄(系統(tǒng)管理員的恐怖故事)。大家在CU論壇上應(yīng)該也看過類似的誤操作收集帖,不過Softpanorama總結(jié)的更全面,而且有很多經(jīng)驗豐富的老UNIX管理員們分享經(jīng)驗。
經(jīng)典語錄
管理員們破壞的數(shù)據(jù)比任何黑客窮其一生所能破壞的數(shù)據(jù)都要多。——Rick Furniss
如果不想學(xué),經(jīng)驗有個毛用。
只要時間足夠長,任何事都會發(fā)生在任何人身上。——蕭伯納
經(jīng)驗是***的老師,但傻瓜只認識這一位老師。——本杰明·富蘭克林
概述
人孰無過?但悲催者莫過于身為root犯了錯,更悲催者在于你身為root在生產(chǎn)機器上犯了錯,最悲催者在于你身為root在生產(chǎn)機器上犯了錯,結(jié)果發(fā)現(xiàn)沒有可用的備份——于是你不得不跟那些重要的數(shù)據(jù)說拜拜了。
所以,就需要對這些悲催事兒進行歸納總結(jié),好以史為鑒。無論在怎樣的情況下,任何錯誤都應(yīng)被記錄為文檔以警醒自己和后人。
在這些錯誤中最常見的問題在于管理員對所處場景的混淆,因為管理員經(jīng)常會同時操作多個窗口。
第二大原因應(yīng)該在于對危險性的錯誤評估。人們對于危機的反應(yīng)通常是感性的,所以系統(tǒng)管理員們有時候可能只是犯了個小錯誤,結(jié)果由于下意識的反應(yīng)過度導(dǎo)致了更大的問題。
對于這兩點,一些通用建議如下:
1、使用VNC、Worker等圖形化工具進行服務(wù)器連接,并為不同的機器設(shè)置不同的背景桌面,這樣可以大大減少在錯誤的機器上操作的幾率。
2、如果堅持使用命令行方式登錄,那么盡量僅在你當前處理的機器上登錄為root,在其他機器上只用你自己的沒有root權(quán)限的id。
其他建議包括:
- 對于要應(yīng)用在生產(chǎn)環(huán)境的變更進行嚴密的記錄和重重測試。
- 保證睡眠,減少疲勞。
- 少喝咖啡。
- 在日常操作中,嚴格按照計劃執(zhí)行,不要做多余的、心血來潮的事情。
- 質(zhì)量***。對管理員而言,欲速則不達是一條真理。要養(yǎng)成急事緩辦的習(xí)慣。
那些悲催的事兒
為了從他人的經(jīng)驗中更有效率的總結(jié)學(xué)習(xí),作者將之前Anatoly Ivasyuk整理過的一些材料重新進行了分類,看起來更加一目了然。本次《新概念運維》將僅翻譯這個分類目錄,相信大家一看就能明白。如果想看更多的故事,可以在原網(wǎng)站閱讀(英文)。
1、不能用的備份
要記住,如果事情搞砸了,備份是你恢復(fù)系統(tǒng)的***一根救命稻草。
2、鎖上門發(fā)現(xiàn)自己在門外
這包括幾個情景:
- root賬號訪問關(guān)了
- 把網(wǎng)絡(luò)服務(wù)關(guān)閉了
- 被剛修改完的防火墻規(guī)則擋在墻外了
- root密碼忘了
3、在錯誤的機器上操作
這可能跟服務(wù)器的命名規(guī)則有關(guān),你可能想輸入WEB200結(jié)果輸入了WEB300;這可能是因為你打開了好幾個終端窗口,在急急忙忙去吃飯前跑到了錯誤的服務(wù)器上執(zhí)行命令。所以,執(zhí)行命令之前,一定仔細看清楚shell提示符上寫的是哪臺機器。避免同時打開多個終端窗口,畢竟關(guān)掉再打開窗口只不過是幾秒鐘的事兒,卻可以避免一些糟糕事情的發(fā)生。
4、在錯誤的路徑下操作
一般遇到這種情況,都是由疲勞或壓力過大導(dǎo)致的神志不清所引起的。
5、不懂正則表達式
菜鳥管理員們可能沒意識到“.*”可以匹配“..”。此類對象最怕跟chmod,chown和rm命令一起執(zhí)行,尤其是如果再加上一個-r參數(shù)的情況。
6、find命令惹的禍
find是個復(fù)雜的命令,用錯了后果會很嚴重。尤其是在沒好好測試的情況下使用了-exec參數(shù)的情況。
7、對使用/或系統(tǒng)目錄作為home目錄的用戶進行操作
進行刪除用戶的操作,結(jié)果發(fā)現(xiàn)把整個系統(tǒng)都刪干凈了……而且如果刪除用戶的操作通過crontab執(zhí)行,可能會痛苦好幾天。
8、對重要命令的參數(shù)理解不深入,或者沒經(jīng)過測試就在生產(chǎn)環(huán)境下執(zhí)行復(fù)雜的命令
這種問題的發(fā)生通常來自于趕時間。常見問題包括:
- 執(zhí)行復(fù)雜的rm命令之前沒用ls先測試一遍:在決定rm掉一串東西之前,一定要記得先用ls看看這串東西都是啥!更不用說要和帶有exec參數(shù)的find命令一起執(zhí)行的時候。
- 執(zhí)行rm的時候打錯了字:打錯字總是難免的,復(fù)制粘貼最靠譜。
9、改錯了文件所有者
把chown和find一起用經(jīng)常會出現(xiàn)這種問題,所以請先測試。
10、對系統(tǒng)安全性過于偏執(zhí)
目前的很多安全建議其實都是愚蠢的,并且對生產(chǎn)效率產(chǎn)生了副作用。比如遵循安全建議更改了/bin和/usr/bin的所有者,結(jié)果誰也登陸不進去了。
11、趕時間
單獨把趕時間列成一條,是因為趕時間是造成問題最有利的元兇。
12、打補丁引發(fā)的血案
打補丁會引發(fā)問題。一般而言,Sun的補丁測試工作做得非常全面;IBM和HP做得少點;Novell放出的更新補丁則有可能讓整個系統(tǒng)掛掉,更新完了可能會發(fā)現(xiàn)Sendmail或Bind這樣的開源系統(tǒng)少了些什么零件。往生產(chǎn)環(huán)境更新補丁前必須走測試流程,這是常識。另外,更新***用DVD,別相信什么官網(wǎng)的在線更新。
13、糟糕的自動化腳本
尤其是如果自動化腳本中有刪除文件的操作的情況下,編寫不嚴謹?shù)淖詣踊_本會讓用戶覺得十分糟糕。
14、多個管理員同時在一臺服務(wù)器上工作
最常見的,一個管理員走了,走之前改了root密碼……
15、不成熟的優(yōu)化和系統(tǒng)清理
有時候你看著某個文件多余,雖然不知道它存在的目的但是出于不順眼將其刪除,結(jié)果會發(fā)現(xiàn)這是一個愚蠢的決定。
16、不同操作系統(tǒng)產(chǎn)生的混亂
比如在Solaris下,運行級5(run level 5)代表重啟,而Linux下的運行級5代表在有網(wǎng)絡(luò)和X11的環(huán)境下運行系統(tǒng)。
17、純犯傻
純犯傻是可以預(yù)防的。另外如果你確定某個人是菜鳥,那么***別讓他擁有root的密碼。
【有關(guān)新概念運維】
在日常的系統(tǒng)管理運維工作中,每個人對于系統(tǒng)、工具、應(yīng)用、命令、架構(gòu)以及工作中的其他方面都會有自己的理解。理解方式的不同也意味著不同的認知,因此,這種理解方式的交流,也可能碰撞出更多思維的火花,讓每個人從另一個角度了解自己每天從事的工作。51CTO系統(tǒng)頻道從日常和運維人員的交流中收集這些理解方式,組合成短文集,名為《新概念運維》。
【編輯推薦】