很多時候,特別是初學者在搭建環境的時候,由於事先嘗試了,導致軟件殘留,以至於部分軟件安裝失敗。當然了,通常可以百度直接找到解決方案。
不過呢?有一點需要注意的,運維同志們再安裝軟件時,哪怕是嘗試,盡可能本地虛擬機環境嘗試,千萬不要在生產服務器上。
卸載同刪除一樣,是一個極其危險的。有的時候一不小心咔擦,刪錯了東西,可能會導致系統沒了,例如,記得剛剛做運維的時候,在公司電腦上,自己弄了幾台虛擬機,其中有一台就是因為我不小心把boot給刪了,導致很多東西都沒了,不過幸好是本地虛擬機,如果是公司服務器,那就更糟糕了。
因此,從那以后,我極其謹慎。不管是現在的公司兼任DBA也好或是運維。我一般情況下都使用的是非root權限,因為“人非聖賢”,有的時候工作太忙了,如果使用root權限較為頻繁的話,那么可能會出現一些意外。在這里,有一點我要強調,每天備份很重要,使用shell腳本完成自動化備份。
這樣一來,確保數據盡可能的少損失。因為誰也不知道,明天會有哪些意外。既然意外具有突發性,那么時刻應對是最好的手段。
當然了,服務器也不能確保一定是沒問題的,盡管使用的是阿里雲。但是前段時間阿里雲被攻擊,導致部分公司因為采用的是阿里雲服務器,影響項目的正常運行。不過好在沒有大的損失。
下面首先說下卸載軟件:
1.卸載軟件
sudo apt-get remove 軟件名
例如:
sudo apt -get remove apache
這條命令不能徹底的刪除,徹底的刪除是這條命令:
sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common
sudo apt-get autoremove
purge 翻譯過來的意思是“肅清”,意為清除所有。
其實卸載軟件除了數據庫外,其他也沒多大關系,這是非運維的理解。
從專業運維戶的理解上看,生產環境,每個軟件,每個文件及其系統的穩定性都與你密切相關,你必須要知道整個系統的點點滴滴(這里不是說你一定要非常理解Linux系統乃至內核,因為那樣功底沒有個五六年或者七八年的積累是不行的,這里指的比如系統上運行的軟件,例如幾台tomcat、mysql、redis、mongodb、zookeeper或hadoop、docker等等,同時對其軟件優化到那種程度,知道比如MySQL當達到那個I/O值會導致出問題等等)。
通常說,一個運維相當於半個DBA。
2.刪除
rm命令
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。
特別這一條命令,rm -rf 相當於遞歸強制刪除,這個命令是最可怕的。
最好做個小總結,
比如最近出了好幾個新聞,要么是數據庫密碼上傳到github上,被某些人獲知從而盜取數據;要么是,不小心刪庫。
如何避免出現這些問題?
從運維的角度來說,
(1)制定嚴格完善的制度,比如對mysql而言,可以使用phpmyadmin對庫表進行權限控制;
(2)密碼不可過於簡單,比如123456這樣的,該復雜還是要復雜,最好有個定期修改密碼,比如三個月或者半年這樣的周期,不過最有效保險的就是配置文件方式,這種配置文件方式只對運維人員開放,隱藏內部細節,開發者只能以鍵值對的形式獲得,鍵值對中的值以某種編碼方式加密,看起來復雜點,其實這樣是最保險的,這樣一來,倒是讓我想起的Java三大特性之一的封裝;
總而言之,運維人員一定要非常謹慎,必須要掌控全局(生產環境的點點滴滴),當然了,還是得對開發和測試有所了解,不然有的時候,很容易淪為專業背鍋戶的。
記得我一個同學,他們公司,有的時候因為開發人員的代碼質量差,功能bug多的,導致系統穩定性差,出現了突發宕機,運維人員通常這個時候就處於風口浪尖的位置。
不管是運維也好,測試也罷,或者是開發,都要對彼此的工作了解和熟悉,因為這樣一來,出了問題,會最大程度避免你推我,我推你,互相推卸責任的這種情況。彼此熟悉和了解,利於溝通,從而利於項目的良性開發,最大程度上,提高項目的成功率。