他們說:“失敗是成功的關鍵; 每個錯誤都會教給我們一些東西。“我希望你能從我的10個Linux或Unix命令行錯誤中學到一些東西,以及讀者在下面發表的評論。
userdel命令
文件/etc/deluser.conf被配置為刪除主目錄(它是由以前的系統管理員完成的,這是我工作的第一天)以及要刪除的用戶的郵件緩沖池。我只想刪除用戶帳戶,最后刪除所有內容(注意-r通過deluser.conf激活):
userdel foo
重新啟動的Solaris Box
在Linux上,killall命令按名稱殺死進程(killall httpd)。在Solaris上它會終止所有活動進程。以root身份殺死所有進程,這是我們的主要Oracle數據庫框:
killall process-name
銷毀named.conf
我想追加一個新的區域到/var/named/chroot/etc/named.conf文件,但最終運行:
./mkzone example.com > /var/named/chroot/etc/named.conf
使用Tar和Rsync銷毀工作備份(個人備份)
我只有一個我的QT項目的備份副本,我只想獲得一個名為functions的目錄。我最終刪除了整個備份(注意-c開關而不是-x):我沒有備份。同樣,我最終運行rsync命令并通過覆蓋備份集中的文件(現在我已切換到rsnapshot)來刪除所有新文件。再次,我沒有備份。
cd /mnt/bacupusbharddisk
tar -zcvf project.tar.gz functions
rsync -av -delete /dest /src
刪除了Apache DocumentRoot
我有我的Web服務器docroot的sym鏈接(/ home / httpd / http被鏈接到/ www)。我忘記了符號鏈接問題。為了節省磁盤空間,我在http目錄上運行rm -rf。幸運的是,我有完整的備份集。
意外更改的主機名稱和觸發的錯誤警報
無意中改變了我們的一個群集節點的當前主機名(我想查看當前的主機名設置)。在幾分鐘內,我收到了手機和電子郵件的警報消息。
hostname foo.example.com
公共網絡接口關閉
我想關閉VPN接口eth0,但最終在我通過SSH登錄時關閉了eth1:
ifconfig eth1 down
防火墻鎖定
我對sshd_config進行了更改,并將ssh端口號從22更改為1022,但未能更新防火墻規則。在快速內核升級之后,我重新啟動了這個盒子。我不得不打電話給遠程數據中心技術來重置防火墻設置。(現在我使用防火墻重置腳本來避免鎖定)。
在錯誤的框中輸入UNIX命令
我想關閉我的本地Fedora桌面系統,但是我在遠程服務器上發出暫停(我通過SSH登錄到遠程框):
halt
service httpd stop
錯誤的CNAME DNS條目
在example.com區域文件中創建了錯誤的DNS CNAME條目。最終結果 - 一些訪問者轉到/ dev / null:
echo 'foo 86400 IN CNAME lb0.example.com' >> example.com && rndc reload
無法更新后綴RBL配置
2006年,ORDB停止運行。但是,我沒有更新我的Postfix RBL設置。有一天,ORDB被重新激活,它將每個被查詢的IP地址作為黑名單返回。最終的結果是一場災難。
結論
所有人都會犯錯誤,但只有聰明人才會從錯誤中學習 - 溫斯頓丘吉爾。
從所有這些錯誤中我都了解到:
您必須保留一套完整的備份。定期測試您的備份。
保存所有UNIX文件系統數據的明確選擇是轉儲,這是保證所有條件下恢復的唯一工具。
切勿將rsync與單個備份目錄一起使用。使用rsync或rsnapshots創建快照。
使用CVS / git來存儲配置文件。
在命中[Enter]鍵之前,等待并讀取命令行兩次。
使用經過良好測試的perl / shell腳本和開放源代碼配置管理軟件(如puppet,Ansible,Cfengine或Chef)來配置所有服務器。這也適用于今天的日常工作,如創建用戶等等。