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