扣丁学堂Linux培训之Linux命令大全分享

本篇文章扣丁学堂Linux培训小编给大家分享一下Linux开发技能的命令,掌握好了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开发技术的小伙伴快快行动吧。

相关推荐