- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網協(xié)會理事單位
- 安全聯(lián)盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
Linux 系統(tǒng)管理員通過使用權威的命令行腳本會變得更高效。這包括巧妙使用循環(huán)和知道如何使用 awk、grep 和 sed 等的實用程序解析數據。通常這可以減少擊鍵次數,降低用戶出錯率。
1.例如,假設需要為即將安裝的 Linux 集群生成一個新的 /etc/hosts 文件。一般的做法是在 vi 或文本編輯器中添加 IP 地址。不過,可以通過使用現有 /etc/hosts 文件并將以下內容追加到此文件來實現。在命令行上運行:
200 個主機名(n001 到 n200)將由 IP 地址(192.168.99.1 到 192.168.99.200)來創(chuàng)建。手動填充這樣的文件有可能會創(chuàng)建重復的 IP 地址或主機名,因此這是使用內置命令行消除用戶錯誤的好例子。請注意,這是在 bash shell(大多數 Linux 發(fā)行版的默認值)內完成的。
2.再舉一個例子,假設要檢查 Linux 集群中的各個計算節(jié)點中的內存大小是否一樣。通常,擁有一個發(fā)行版或類似的 shell 是最好的。但是為了演示,以下使用 SSH。
假設 SSH 設置為不使用密碼驗證。然后運行:
這樣的命令行相當簡潔。(如果在其中放入正則表達式情況會更糟)。讓我們對它進行細分,詳細討論各部分。
a.首先從 001 循環(huán)到 200。使用 seq 命令的 -w 選項在前面填充 0。 然后替換 num 變量,創(chuàng)建通過 SSH 連接的主機。有了目標主機后,向它發(fā)出命令。本例中是:
這個命令的意思是:
使用 free 命令獲取以兆字節(jié)為單位的內存大小。
獲取這個命令的結果,并使用 grep 獲取包含字符串 Mem 的行。
獲取那一行并使用 awk 輸出第二個字段,它是節(jié)點中的總內存。
在每個節(jié)點上執(zhí)行這個操作。
b.在每個節(jié)點上執(zhí)行命令后,200 個節(jié)點的整個輸出就傳送(|d)到 sort 命令,以對所有內存值進行排序。
c.最后,使用 uniq 命令消除重復項。這個命令會導致以下情況中的一種:
如果所有節(jié)點(n001 到 n200)擁有相同的內存大小,則只顯示一個數字。這個數字就是每個操作系統(tǒng)看到的內存大小。
如果節(jié)點內存大小不同,將會看到幾個內存大小的值。
最后,如果某個節(jié)點上的 SSH 出現故障,則會看到一些錯誤消息。
這個命令并不是完美無缺的。如果發(fā)現與預期不同的內存值,您就不知道是哪一個節(jié)點出了問題,或者有多少個節(jié)點。為此需要發(fā)出另一個命令。
這個技巧提供了一種查看某些內容的快速方式,而且如果發(fā)生錯誤,您可以立刻知道。其價值在于快速檢查。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP