從一個運維人員的角度看微盟的這次刪庫跑路的節奏

這二天,微盟運維人員刪庫的事件刷屏了,造成的影響特別的大。


從一個運維人員的角度看微盟的這次刪庫跑路的節奏


回顧整個事件,本人從15年的運維人員的角度來分析一下這個事件:

1、 為什麼一個運維人員會有這麼大破壞力,讓整個公司業務都癱瘓了?

很多人都會說權限沒控制好,不應該給單獨一個人這麼大的操作權限,同時一個人不應該有這麼多業務和數據庫的登陸和操作權限,沒有操作分級和審核機制等等。

說實話,一般的公司,很難請幾個不同角色的運維人員,財力與物力是不可能實現的(除了那幾個大廠外),很多公司都是二三個運維人員,交叉管理不同業務授權,做不到職責明確分類。而且大部分職業上的習慣,會擁有最大的root權限(就算很多大互聯網公司出來的運維也有這樣的習慣)。

但是,絕大多數的中小型公司來說,是不會遇到本次這種極端狀況的,真的遇到這樣的事,真的是看命好不好,看運維人員的心情狀態了,自求多福吧。

2、 為什麼恢復時間會這麼久,而且至今無法完全恢復?

極有可能是直接做了rm -rf或者fdisk這樣的基本不可逆轉文件刪除操作,而且很可能是主備一起幹掉了,同時可能平時沒有做好備份機制,或者可能是把備份也一起刪除了(很多公司備份基本上也是在運維人員手裡的)。

3、那麼,真的碰到這樣的事了,有沒有好的辦法解決呢?

1)、使用雲產品,而且要使用大廠的雲產品,這裡不是說你用雲服務器就可以了,你需要用他們的雲數據庫產品,而且要買一系列的保護盾。

2)、權限控制,如果真的沒法做到最小授權,建議上個主機安全管控軟件,或者堡壘機,多次分層級的進行審核,角色分級操作,就是下級需要操作的時候,一定要通過主管領導的審核(特別是類似rm -rf 、fdisk、drop等等這樣的高危命令的時候)。主管領導要把臨時開放操作權限掌握在自己手裡,不要怕麻煩,用一次開一次,再關一次。

3)、備份,一定要建立好備份機制:全量備份,增量備份,延遲備份,全量備份要多機房,異地備份,因為數據是核心資產,應用全刪了還可以重新部署,數據沒了,公司就沒了,就是這麼狠。就算是用了雲數據庫,備份文件也下載一份下來,自己在不同機房,不同雲,不同地方多存幾份,千萬不要怕花錢。同時備份文件要多份分多人不同地方保管。

4)、人的問題,這個就仁者見仁,智者見智了,再完美的技術,也防不住人的,這個我認為與一個公司的文化氛圍與制度、領導的魅力等是息息相關的。

但凡一個人,都有自己的道德底線,在沒有到一定程度的時候,都會剋制自己(精神病除外)。公司平時對下面的員工好一點,俗話說,好聚好散,就算你對員工不滿意,要裁員也好,要開除也好,儘量的讓對方少一些怨氣,多一份尊重。另外,儘量做些普法宣傳,每人都有點敬畏心理,可能效果會好一些。


說了這麼多的費話。 最後分享一個懶人的安裝mysql的操作代碼(直接複製改成可執行的.sh 文件執行就可以):

#!/bin/bash

echo "開始時間:`date +%Y-%m-%d\\ %T`" >> /home/mysqlsetup/logtime

echo "安裝依懶包!"

sleep 3

echo "創建用戶與組"

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

echo "開始編譯安裝mysql"

cd /home

cp /media/software/mysql-5.5.32.tar.gz ./

tar zxvf mysql-5.5.32.tar.gz

mkdir mysql

mkdir /data/mysql

mkdir /data/mysql/data/

mkdir /data/mysql/log

mkdir /data/mysql/tmp

mkdir /data/mysql/log/binlog

mkdir /data/mysql/log/relaylog

cd /home/mysql-5.5.32

cmake \\

-DSYSCONFDIR=/etc \\

-DCMAKE_INSTALL_PREFIX=/home/mysql/ \\

-DMYSQL_DATADIR=/data/mysql/data/ \\

-DMYSQL_UNIX_ADDR=/data/mysql/log/mysql13306.sock \\

-DEXTRA_CHARSETS=all \\

-DDEFAULT_CHARSET=utf8 \\

-DDEFAULT_COLLATION=utf8_general_ci \\

-DWITH_MYISAM_STORAGE_ENGINE=1 \\

-DWITH_INNOBASE_STORAGE_ENGINE=1 \\

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \\

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\

-DWITH_MEMORY_STORAGE_ENGINE=1 \\

-DWITH_READLINE=1 \\

-DENABLED_LOCAL_INFILE=1 \\

-DMYSQL_USER=mysql \\

-DMYSQL_TCP_PORT=13306


make

make install

echo "編譯完成!"

sleep 5

echo "修改權限!"

chown -R mysql.mysql /home/mysql

chown -R mysql.mysql /data/mysql

cd /home/mysql

cp support-files/mysql.server /etc/init.d/mysql #放在啟動項裡

chmod 755 /etc/init.d/mysql

sleep 3

echo "初始化mysql"

scripts/mysql_install_db --datadir=/data/mysql/data/ --user=mysql #初始化

rm -rf /etc/my.cnf

cp /home/mysqlsetup/my.cnf /etc/my.cnf #複製標準mysql配置文件,這個需要提前寫好哦

echo "啟動mysql"

/etc/init.d/mysql start

echo "修改mysql環境變量"

cat /home/mysqlsetup/file.txt >>/etc/profile

source /etc/profile

sleep 5

echo "開始設置密碼!"

mysqladmin -u root password xxxxxxxxxxxx #記得安裝使用完後要修改與收回最高權限

echo "開始設置iptables"

sed -i '11i\\-A INPUT -m state --state NEW -m tcp -p tcp --dport 13306 -j ACCEPT' /etc/sysconfig/iptables

service iptables restart

sleep 3

echo "添加到啟動項!"

chkconfig --level 235 mysql on

echo "刪除舊文件!"

rm -rf /home/mysql-5*

echo "mysql安裝完成,並啟動,請檢查是否可用!"

echo "結束時間:`date +%Y-%m-%d\\ %T`" >> /home/mysqlsetup/logtime

########下次有機會寫一個自動備份&&主從配置自動化腳本。


分享到:


相關文章: