系統工程師該知道的31件事(4_一V錯,萬V皆錯)

打從我入這行開始,我就跟這個地球的某些領域脫節了,最名顯的就是「品牌」,有些專業人士,能用八個小時的時間,跟我談日本車、韓國車、德國車的差異…有些人能用同樣的時間,跟我談這個名牌包…那個名牌包的差異。
我用過最好的名牌包…應該是IBM的吧…因為IBM是全球第一大,也算是個名牌吧。至於是不是嘴巴第一大…應該不是吧,那是以前的副總統不了解,就像現在一樣…Oh My God…總之,我真不是很了解LV這個品牌,有什麼獨特之處。

但我知道Ctrl + V,簡稱CtrlV(貼上的功能鍵)。這個指令,千萬別亂用。特別是,對指令或系統不熟的人,千萬別常用,真的! 有時候用了,不是一個千萬,就能解決的事情。

過去曾發生一個慘痛的案例,有位資深的同事,在某年中秋節前一個星期五趕著回家,那天客戶在做系統轉換。這位同事在這個星期五前的兩個月,每天都在說「這一天,我不會留下來的,留下來會很慘。」

系統轉換如果只是「慘」…那還是可接受的狀況啦,只是這位同事非常堅決。轉換那天下午五點多一點點,他留下了一行指令,並認真的告訴客戶「你要轉換時,把這行指令貼到系統裡,就可以了。」

客戶聽了後,能說什麼? 客戶又不是開血汗工廠的,只好摸摸鼻子,準備時間到的時候,把這行指令貼進系統。比「慘」還要「慘」的事情,就在客戶按下CtrlV後發生了,認真的說大 概就像是玩「暗黑破壞神3,剛升上60級,裝備普通普通,進入煉獄模式,跟別人組隊,在悲慘平原碰到精英怪」一樣吧…可能再慘一點(就是想難玩到把電 腦摔爛的意思)。

資深同事留下來的那行指令是錯的…認真的說…那行指令裡面帶著帳號和密碼參數的內容是錯的,帳號密碼打錯,其實是很正常的事,但…就可怕在「不正常」。

當時的我,看不懂那行指令。但隔一天,我就懂了…客戶不是開血汗工廠的,但我是血汗工程師啊,所以…一定要懂啊…

「不正常」的地方在…如果我在系統裡輸入 help xxx 那系統會回覆一行指令
xxx username=example passwd=example
資深同事留給客戶的就是這一行「xxx username=example passwd=example」,然後交待客戶輸入這一行就對了。

這件事情影響很大,也讓我快速的進入了…煉獄模式的悲慘平原。

複製+貼上 不是不好,但有幾個狀況,是不得不考慮的,比如:當不能使用貼上,又記不得指令或路徑時,怎麼辦?

Linux 或 UNIX 都會有一個 command history 的功能,就是方向鍵按上,就能重覆上一個指令。但如果碰到…像下面這樣的案例時,就只能一個字一個字敲了。

/> cp 1.log 2.log
/>按上後 出現 cp 1.log 2.log <–這時候將2.log 改為3.log按Enter
或是用滑鼠將上一行指令標起來,再按右鍵、按Enter
/>ls
/> 1.log 2.log

3.log…不存在,為什麼? 我不知道原因,但我發現,雖然畫面出現 cp 1.log 3.log,但當Enter鍵按下去的時候,系統執行的是上一個指令 cp 1.log 2.log,如果要將3.log 生出來,則需要再輸入一次 cp 1.log 3.log。

這樣的環境,很適合練習「不打錯字」的功夫。

比如,現在我要將路徑切換到 /usr/tivoli/tsm/client/ba/bin64 下面

輸入到一半時,輸入錯了,變成 cd /usr/tivoli/tsm/bin64 這時候按倒退鍵(BackSpace)去修正,是沒有用的,必需要再重打一次正確的路徑。打錯就重來,打錯就重來…這樣練個一年之後,在敲鍵盤時,是 不太會打錯字的…而且某些時候的速度,會比使用CtrlV還快。

另一個狀況,則是在我們初學時或對產品不了解時,不論是在Windows/Linux/UNIX 的環境下,有的指令,一個字一個字敲出來,對我們是有實用的,特別是在設定一些指令比GUI介面好用的情況下。

別的不說,如果有一天滑鼠壞掉了…不能選取範圍或指令時…該怎辦? 因為平常都用「CtrlV(貼上)」根本沒有將指令或路徑記起來,連筆記都沒寫,那…就下班回家了嗎? 不可能啊!

「因為滑鼠壞掉,指令完全不會,所以請…事假回家」,這……….我老闆應該不會核準這樣的事假,他可能會跟我說「Allen 你明天開始,多帶幾隻滑鼠在身上。」

然後…我未來的老婆看到我時,一定會提高十個八度音問我「Allen 你…改行賣滑鼠囉?」

我是滿想改行的,但…賣滑鼠就…

有人問我,那你呢? 你就不會用這個指令? 你都不會犯錯?

沒有啊,我還滿常用的…之前才出了一個小錯…(因為小錯還來不及長大…就…)

define schedule backup_filepool_cpypool cmd='run backup_filepool_cpypool'
定義Schedule 這個Schedule 要執行一個Script

define script bckup_filepool_cpypool
定義要備執行的Script名稱

那一天,將這些指令全部準備好之後…每一組指令有16行,每一台主機有三組…一共約30台主機…帥氣的V下去之後…測試的時候發現,我完了…30台全錯…錯不是重點,重點是要花多少程序復原?

每一組,要執行一行指令刪除,就是90行指令,分散在30台不同的主機上面…一行指令輸入完加上按Enter鍵,約10秒(沒有打錯字),一台就是30秒,登入主機到進入Console也約30秒,一台就是一分鐘(要完全沒打錯字)。

從主機1 切換到主機2 ,也大概需要五秒的時間。 5 * 29 = 145秒,加上之前的30分鐘

最後全部刪除完畢,約35分鐘…
35分鐘差不多是在台北上了高鐵後,到新竹高鐵的時間。
也差不多是…在永和上了捷運後…到北投的時間。

這還沒有把測試失敗時,找問題的時間給加進來…也因為這個錯,我那天的進度全部延後,本來事情做完能在晚上六點半,離開客戶那…最後差不多九點多才離開。離開時,警尉帥哥很親切的跟我說「Allen…今晚又加班啊…」

這算加班嗎? 如果我沒出那個錯,就不用待到那麼晚了…有時候我會開玩笑跟身邊的人講說…『沒有啊,工作就忙啊,事情很多啊,這行業就這樣啊,我就一個人兩隻手啊…』(老闆,我…對不起你…)

慘痛的教訓…還好…人類是漸忘的。

2012/09/28 SunAllen

您可能也會喜歡…