有了自動化運維工具,為什麼還會用到shell指令碼?

時間 2021-06-03 21:12:08

1樓:

shell能直接操作l何組合linux命令。python如果需要呼叫linux命令需要呼叫標準庫,需要登入機器。要用到管道還要考慮程序的輸入輸出。這點是跟python不能比的。

2樓:梓涵

shell指令碼跟python一樣能幫助你完成很多任務。自動化運維工具也是通過執行指令碼去完成任務,至於這些指令碼用什麼寫的,shell,python,perl等,我覺得都有,用不用shell完全取決於你對shell掌握的熟練程度,shell在有些場景用的還是很多的。

3樓:趙躍宇

因為shell指令碼太方便了,awk sed grep 幾個文字工具沒有什麼不能完成的任務。

其實我主張所有指令碼都用python。

4樓:

shell 是 Unix/Linux 系統的基礎使用者介面。能互動式或指令碼式,接受內建命令以實行自身操作,瀏覽檔案系統,啟動其它程式,指令碼,以及圖形介面。比如你輸入乙個程式名字 gedit 就會開啟 gedit 程式。

命令列概念來自 Multics 專案,讓使用者能與核心直接溝通 (暫不確定 Multics 那時已稱呼 「shell」)。Ken Thompson 從 Multics 退出後才在 Bell labs 寫了第乙個 Unix shell 叫 Thompson Shell (只花四個星期開發了 assembler, editor, shell, kernel), 發明了 < > 的簡單重定向符號, | pipeline 則是他上司 McIlroy (手寫完美 compiler-compiler 讓 Ken Thompson 欽佩不已的超級大神) 建議的。

現代 Linux 系統預設啟動的 shell 程式是 sh(有時 symlink 去其它 shell 程式) , bash,dash, zsh 等等。至於 python shell 由於非傳統且不如 < > | ./ 簡單粗暴執行日常的互動式動作,所以不是預設的 shell。

不過還是有人開腦洞開發了 xonsh 讓 python 相容 bash (不過我執行 xonsh 時錯誤,囧)。

Unix shell 的優勢是日常簡單粗暴,如果是較複雜的動作, 如涉及 arrary 或分析檔案欄, 當然是選擇比較容易寫的 python。不過 Unix shell 也可以插入 python 返回。如果使用 python 就會去找與該命令孿生的 python 第三方庫而盡可能減少 os.

system 的間接命令列方式。

至於題主問的 「自動化運維工具」只是與運維相關的程式分類稱呼,本身就是由各種高階程式語言直接或間接所寫的, 譬如 Unix shell 指令碼, python 指令碼, perl 指令碼, js 指令碼,c/c++二進位制程式等等。

即使你不做運維也偶爾會使用 shell 指令碼實現某些事物, 更別說做運維需要實現和研究更多事物。你當然可以不顧效率/時間,堅持只用其它語言如 python, 取決於你。不過如果涉及的工具的 shell 指令碼有問題, 那麼你就得理解/排錯/修改那個 shell 指令碼, 這跑不掉的,更別說偶爾需要理解修改系統預設的 shell 指令碼。

5樓:

有很多場景需要,比如

1. 你需要對一些機器的業務進行監控,但是這些指標並不是能直接取到,而是需要對原始資料進行處理的,這個處理過程可以用shell

2. 即使是在跳板機命令列對數百台機器進行操作,比如檔案下發,你不覺得ansible這種工具的輸出內容太多嗎?你可能只需要知道每台機器執行成功或者失敗就行了。

如果你能用shell指令碼開發乙個命令列自動化運維工具,那麼執行效率和體驗輕鬆完爆ansible的AD-HOC

3. 還有很多方面都需要shell指令碼,你之所以感覺用不上可能是兩種原因,一是shell水平還不夠不清楚哪些問題shell可以更好地解決,二是工作需求還不夠多樣化和複雜化

現階段自動化運維(Ansible python)都不開linux作業系統,這是為什麼?

Tiera 現階段自動化運維雖然不開linux作業系統,但是培訓時還是需要學linux的.至於你提的問題中 是否意味著自動化運維技術必定依賴linux 答案是一定的,這一點沒有什麼具體解釋,應用軟體依賴於作業系統作業系統依賴於計算機硬體計算機硬體依賴於電源.所以這個不算什麼 問題 當然也可以不依賴於...

自動化運維 和 手動運維的區別是什麼? 二者運用的環境又有什麼不同?

把原本已知且重複的運維工作內容交給機器來做,就是自動化運維,相對於手動運維而言,主要是工作效率提公升,大幅提高單位時間完成工作量。但是有其顯而易見的侷限,就是應對自由性差,還是要靠手動運維積累的經驗,不能取代手動運維,算是互補關係。 還有我的牛我的歌 自動化運維不容易出錯啊,手動不僅費勁,90 還會...

前端自動化一般用什麼工具?

吳建濤 Gulp Sass WebPack Jade Babel leolord Kickoff GitHub 小爝 如果是想簡單的打包合併壓縮並且不想寫複雜的配置檔案,不想要複雜的環境配置,不想學什麼grunt,gulp,不想看太多無用的文件浪費腦細胞 推薦試試我這個 SinaMTD Mobile...