久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

命令行腳本和實用程序

2017-11-19 08:00:26 12422

Linux 系統管理員通過使用權威的命令行腳本會變得更高效。這包括巧妙使用循環和知道如何使用 awk、grep 和 sed 等的實用程序解析數據。通常這可以減少擊鍵次數,降低用戶出錯率。

1.例如,假設需要為即將安裝的 Linux 集群生成一個新的 /etc/hosts 文件。一般的做法是在 vi 或文本編輯器中添加 IP 地址。不過,可以通過使用現有 /etc/hosts 文件并將以下內容追加到此文件來實現。在命令行上運行:

image.png

200 個主機名(n001 到 n200)將由 IP 地址(192.168.99.1 到 192.168.99.200)來創建。手動填充這樣的文件有可能會創建重復的 IP 地址或主機名,因此這是使用內置命令行消除用戶錯誤的好例子。請注意,這是在 bash shell(大多數 Linux 發行版的默認值)內完成的。

2.再舉一個例子,假設要檢查 Linux 集群中的各個計算節點中的內存大小是否一樣。通常,擁有一個發行版或類似的 shell 是最好的。但是為了演示,以下使用 SSH。

假設 SSH 設置為不使用密碼驗證。然后運行:

image.png

這樣的命令行相當簡潔。(如果在其中放入正則表達式情況會更糟)。讓我們對它進行細分,詳細討論各部分。

a.首先從 001 循環到 200。使用 seq 命令的 -w 選項在前面填充 0。 然后替換 num 變量,創建通過 SSH 連接的主機。有了目標主機后,向它發出命令。本例中是:

image.png 
這個命令的意思是:

使用 free 命令獲取以兆字節為單位的內存大小。

獲取這個命令的結果,并使用 grep 獲取包含字符串 Mem 的行。

獲取那一行并使用 awk 輸出第二個字段,它是節點中的總內存。

在每個節點上執行這個操作。

b.在每個節點上執行命令后,200 個節點的整個輸出就傳送(|d)到 sort 命令,以對所有內存值進行排序。

c.最后,使用 uniq 命令消除重復項。這個命令會導致以下情況中的一種:

如果所有節點(n001 到 n200)擁有相同的內存大小,則只顯示一個數字。這個數字就是每個操作系統看到的內存大小。

如果節點內存大小不同,將會看到幾個內存大小的值。

最后,如果某個節點上的 SSH 出現故障,則會看到一些錯誤消息。

這個命令并不是完美無缺的。如果發現與預期不同的內存值,您就不知道是哪一個節點出了問題,或者有多少個節點。為此需要發出另一個命令。

這個技巧提供了一種查看某些內容的快速方式,而且如果發生錯誤,您可以立刻知道。其價值在于快速檢查。

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: