尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
本篇文章扣丁學堂Linux培訓小編給大家分享一下Linux開發技能的命令,掌握好了Linux開發方面的命令就能更好的操作Linux開發,對Linux開發感興趣或者是想要學習Linux開發技能的小夥伴下面就隨小編一起來了解一下Linux的命令大全吧。
扣丁學堂Linux培訓之Linux命令大全分享
技巧1、檢查帶寬
設想:公司A有一個名為ginger的存儲服務器,並通過名為beckham的客戶端節點裝載NFS。公司A確定他們需要從ginger得到更多的帶寬,因為有大量的節點需要NFS裝載ginger的共享文件系統。
做到此操作的最常用和最便宜的方式是將兩個吉比特以太網NIC組合在一起。這是最便宜的,因為您通常會有一個額外的可用NIC和一個額外的端口。
所以採取此這個方法。不過現在的問題是:到底需要多少帶寬?
吉比特以太網理論上的限制是 128MBit/s。這個數字從何而來?看看這些計算:
1Gb = 1024Mb;1024Mb/8 = 128MB;”b” = “bits,”、”B” = “bytes”
但實際看到的是什麼呢,有什麼好的測量方法呢?我推薦一個工具 iperf。可以按照以下方法獲得 iperf:
# wget http://dast.nlanr.net/Projects/Iperf2.0/iperf-2.0.2.tar.gz
需要在 ginger 和 beckham 均可見的共享文件系統上安裝此工具,或者在兩個節點上編譯並安裝。我將在兩個節點均可見的 bob 用戶的主目錄中編譯它:
tar zxvf iperf*gz
cd iperf-2.0.2
./configure -prefix=/home/bob/perf
make
make install
在 ginger 上,運行:
# /home/bob/perf/bin/iperf -s -f M
這台機器將用作服務器並以 MBit/s為單位輸出執行速度。
在beckham節點上,運行:
# /home/bob/perf/bin/iperf -c ginger -P 4 -f M -w 256k -t 60
兩個螢幕上的結果都指示了速度是多少。在使用吉比特適配器的普通服務器上,可能會看到速度約為 112MBit/s。這是 TCP 堆棧和物理電纜中的常用帶寬。通過以端到端的方式連接兩台服務器,每台服務器使用兩個聯結的以太網卡,我獲得了約220MBit/s的帶寬。
事實上,在聯結的網路上看到的NFS約為150-160MBit/s。這仍然表示帶寬可以達到預期效果。如果看到更小的值,則應該檢查是否有問題。
最近碰到一種情況,即通過連接驅動程序連接兩個使用了不同驅動程序的NIC。這導致性能非常低,帶寬約為20MBit/s,比不連接以太網卡時的帶寬還小。
技巧2、 命令行腳本和實用程序
Linux系統管理員通過使用權威的命令行腳本會變得更高效。這包括巧妙使用循環和知道如何使用awk、grep和sed等的實用程序解析數據。通常這可以減少擊鍵次數,降低用戶出錯率。
例如,假設需要為即將安裝的Linux集群生成一個新的/etc/hosts 文件。一般的做法是在vi或文本編輯器中添加 IP 地址。不過,可以通過使用現有/etc/hosts文件並將以下內容追加到此文件來做到。在命令行上運行:
# P=1; for i in $(seq -w 200); do echo “192.168.99.$P n$i”; P=$(expr $P + 1);
done >>/etc/hosts
200個主機名(n001 到 n200)將由IP地址(192.168.99.1到192.168.99.200)來創建。手動填充這樣的文件有可能會創建重復的 IP 地址或主機名,因此這是使用內置命令行消除用戶錯誤的好例子。請注意,這是在bash shell(大多數Linux發行版的默認值)內完成的。
再舉一個例子,假設要檢查Linux集群中的各個計算節點中的記憶體大小是否一樣。通常,擁有一個發行版或類似的shell是最好的。但是為了演示,以下使用SSH。
假設SSH設置為不使用密碼驗證。然後運行:
# for num in $(seq -w 200); do ssh n$num free -tm | grep Mem | awk ‘{print $2}’;
done | sort | uniq
這樣的命令行相當簡潔。(如果在其中放入正則表達式情況會更糟)。讓我們對它進行細分,詳細討論各部分。
首先從001循環到200。使用seq命令的-w選項在前面填充0。 然後替換 num 變量,創建通過SSH連接的主機。有了目標主機後,向它發出命令。本例中是:
free -m | grep Mem | awk ‘{print $2}’
這個命令的意思是:
使用 free 命令獲取以兆字節為單位的記憶體大小。
獲取這個命令的結果,並使用grep獲取包含字符串Mem的行。
獲取那一行並使用awk輸出第二個字段,它是節點中的總記憶體。
在每個節點上執行這個操作。
在每個節點上執行命令後,200個節點的整個輸出就傳送(|d)到sort命令,以對所有記憶體值進行排序。
最後,使用uniq命令消除重復項。這個命令會導致以下情況中的一種:
如果所有節點(n001到n200)擁有相同的記憶體大小,則只顯示一個數字。這個數字就是每個操作系統看到的記憶體大小。
如果節點記憶體大小不同,將會看到幾個記憶體大小的值。
最後,如果某個節點上的SSH出現故障,則會看到一些錯誤消息。
這個命令並不是完美無缺的。如果發現與預期不同的記憶體值,您就不知道是哪一個節點出了問題,或者有多少個節點。為此需要發出另一個命令。
這個技巧提供了一種查看某些內容的快速方式,而且如果發生錯誤,您可以立刻知道。其價值在於快速檢查。
以上就是扣丁學堂linux在線學習小編給大家分享的Linux命令大全分享,希望對小夥伴們有所幫助,想要了解更多內容的小夥伴可以登錄扣丁學堂官網咨詢。想要學好linux開發小編給大家推薦口碑良好的扣丁學堂,扣丁學堂有專業老師制定的linux學習路線圖輔助學員學習,此外還有與時俱進的linux課程體系和linux系統入門學習視頻教程供學員觀看學習,想要學好linux開發技術的小夥伴快快行動吧。