本文轉載自微信公衆號「小姐姐味道」,做者小姐姐養的狗 。轉載本文請聯繫小姐姐味道公衆號。html
我對Linux很是的精通,尤爲是腳本語言好比sed、awk、python等,用起來更是爐火純青。我把它做爲本身一個很是特立獨行的技能,一個和其餘普通程序員區別開來的技能。因此在我寫腳本的時候,我都會自豪的擡高個人頭,鼻孔朝天冥思精悍的code。python
好比,看到別人一遍遍的翻文檔安裝elasticsearch這個軟件,xjjdog就渾身難受,就寫了腳原本加快這個過程。程序員
mkdir /data useradd es -d /data/es chown -R es:es /data cat > /etc/security/limits.conf <<EOF * soft nofile 65536 * hard nofile 65536 * soft noproc 65536 * hard noproc 65536 es soft memlock unlimited es hard memlock unlimited EOF cat > /etc/sysctl.conf <<EOF vm.swappiness = 0 vm.max_map_count = 262144 EOF sysctl -p chown -R es:es /opt/elasticsearch
這種腳本可以讓我快速知曉軟件安裝的要點,不須要再讀那些冗長的文檔。像這樣的事情,我老是在作,長此以往,搞的本身好像很閒同樣。來看看我之前分享的命令行吧。redis
這幾天看到小王一直在那裏搗鼓excel,這些數據他已經處理了好幾天時間了。客戶須要從其餘平臺遷移到咱們的平臺,導出了一堆爛七八糟的數據,大概有三四十MB的樣子。不知道怎麼回事,清洗數據這個活兒,就落在了小王身上。docker
文件很大,公司的電腦很爛。小王打開以後,電腦的風扇就呼呼直轉。他每次都須要使用ctrl+f找到不太正常的數據,而後把它麼拷貝到另一個文件中。數據多工期緊,昨天晚上,小王就加班幹到23點多,直到夜的盡頭。shell
總監對此專門進行了表揚。數據庫
我坐在小王的旁邊,天然不能對此坐視不理。常年養成的習慣,讓我對低效的事情沒法忍受,就如同一隻常年奔跑的兔子忍受不了緩慢爬行的蝸牛。api
只掃了一眼小王的需求,我就斷定這個工期三天的任務,使用腳本只須要2個小時就能完成。我並非樂於助人,實在是我很是的喜歡寫這種腳本,還有腳本帶來的這種速度差別的快感。緩存
一個小時以後,我把調試好的python腳本交給小王。shell裏一運行,正確的文件就出來了。好爽的感受。安全
小王天然對我拜服,逢人便吹xjjdog如何牛x。
這個事情不知怎麼就被總監給知道了,我被叫進了寬大的辦公室。看到總監一臉陰沉的臉,我知道事情不妙,但並不知道癥結所在。我剛入職這家公司,應該沒有在不經意間觸碰了不應逾越的底線,個人心中充滿了迷茫。
「據說你幫小王解決了個問題「 。總監說, 「之後少寫這樣的東西「。
「爲何?「 我彷彿不太相信本身的耳朵, 「腳本能顯著的增長工做效率「。
「就知道你會有這樣的疑問。「 總監嚴肅的臉緩和了下來,和我講了一個架構師的故事。
小宋曾經是這家公司的架構師。有不少三腳貓的架構師並不寫代碼,因此小宋成爲了能碼字的稀缺架構師。他的一個絕活就是寫腳本,就像我如今乾的事情同樣。
腳本能增長效率,這是我多年的經驗。但效率這兩個字自己,就根本沒法衡量。因此效率這兩個字,沒法被量化。即便你把工期從3天縮減到2個小時,那也不見得你的效率高,由於這只是零散的雜事中的一個小插曲,你省下的時間仍是去摸魚。你的這些效率,打破了正常的研發週期,也斷送了想要拼搏的同窗的夢想。因此, 增長效率 ,這種有實際功效的作法並不能登上大雅之堂,只能在小圈子裏樂呵一下,最後只會變成一個口號。
小宋的腳本第一次是用在一個線上事故的處理上。當時,程序有一個BUG,數據庫和緩存中一部分數據錯亂,產生了不一致的狀況。因爲緩存分佈在20多臺機器上,就不能使用把全部緩存給清掉的方式。
業務經理很着急,通過討論以後,決定開發定時任務,掃描全部的緩存和數據庫中全部的記錄,而後修正數據。數據量很大,程序也須要驗證,估計修復時間至少須要兩天。
小宋說,沒那麼麻煩。你只須要把問題發生期間,全部的業務日誌給我就能夠了。
接下來的三個小時,小宋從日誌裏過濾出了問題發生過程當中全部被更新過的key。略一思索,就使用腳本完成了對這一批key的緩存刪除操做,很是完美的解決了問題。
這件事以後,小宋就常常被請去寫一些腳原本幫助處理疑難問題。他來者不拒,樂此不疲。
一切像是向着良性的方向發展,直到一次線上的故障。
公司的幾百臺機器,都是在aws平臺上的ec2服務。使用ec2提供的api,能夠作不少事情。但ec2的命令實在是太難以理解,因此小宋作了封裝。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html
使用這個腳本,能夠對部分、或者全部的機器,進行批量管理(好比加個分組,開個權限等),就不用登錄到後臺作一些管理工做。每當小宋看到黑屏幕上流淌的字符,他就想,這就是效率的魅力。
腳本很是好用,因而獲得了分發。有一個運維拿到了這個腳本,鬼使神差的想要在線上驗證一把。
他向全部的機器發送了關閉命令。
公司立馬就炸了鍋,扯皮的事是不免的。但最後的矛頭指向了小宋。
腳本是他寫的,但他首先是一個架構師。一個架構師,能夠不寫代碼,能夠不出成績,但必需要有風險意識。
可這些命令,並非我提供的。這是aws平臺提供的東西,我對此什麼都沒有作。去測試這些命令,和用不用這個腳本沒有關係。小宋爭辯。
但命令確實是經過這個腳本發送出去的,也確實形成了後果。背後那些千迴百轉的曲折關係,沒人會去研究,也沒人會關心。那些日常享受小宋腳本的同窗,此時也是默不做聲,由於這種責任問題,如同效率問題同樣,都是虛張聲勢,並無明確的結果。
這種事情,小宋也是體驗過的。好比提供了redis腳本,有人就喜歡運行FLUSHALL命令;提供了docker命令,有人就喜歡調用docker purge去作清理。這根本控制不住。
他認爲,這是使用者的水平問題,而不是他的腳本問題。與總監吵了幾架以後,小宋最後一氣之下,憤而離職。
他直接刪掉了這家公司全部人的好友,消失了。
「因此,我是對你好,纔會和你提這樣的要求。比起風險來,這點效率帶來的提高,真的是微不足道。 講到這裏,總監意味深長的看着我。」我如今就是及時的制止你的行爲,免的步小宋的後塵「。
我點點頭,這個道理我懂。以前有家公司,就由於以爲Linux的學習成本大,命令危險,就選擇了Window系統作服務器。寧肯難受、付錢買受權、當2B,也不敢越雷池一步。拿着風險兩個字掛在嘴邊,這些道理都是同樣的。
我忽然以爲,這麼多年個人信仰就要崩潰了。花了那麼大的力氣,把命令行學精,到最後落到個學無所用,真是悲哀。
「總監,很差了。 ,正在我想要表達些什麼的時候,有個小夥子闖了進來, 「線上有人使用ansible練手,把根目錄的權限所有改爲000了!「。
個人腦子裏立馬出現了這樣的命令,此次鍋是linus torvalds的了。
chmod -R 000 /
誰知道總監笑了。「你剛來,不瞭解這裏的狀況。這個月已經發生好幾回這樣的事了。是時候換安全可靠的Windows了,我認識採購的人。」
我微笑着點頭,不置能否,但虛心受教。
我灰溜溜回到本身的工位,長嘆一聲,刪光了公司全部的人。
今天就提交辭呈吧,畢竟,公司是找不到linus torvalds的,但能找到我。畢竟,ansible這個工具,是我前幾天剛給推薦的。
因此,若是架構師是你,你會留下什麼腳本呢?
做者簡介:小姐姐味道 (xjjdog),一個不容許程序員走彎路的公衆號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高併發世界,給你不同的味道。個人我的微信xjjdog0,歡迎添加好友,進一步交流。
【編輯推薦】
【責任編輯:武曉燕 TEL:(010)68476606】