[root@centos84-test ~]# for i in 1 2;do cat /proc/net/dev | grep ens192 | awk '{print "RX:"$2"\n""TX:"$10}';done | awk 'BEGIN{FS=":"}{A[NR]=$2}END{print A[2],A[4]}'
1829997199 1829997199
第1个回答 2023-03-27
这个 Shell 脚本命令是用来获取网络接口 ens192 的接收和发送字节数的。它的执行过程如下:
1、for i in 1 2: 循环两次,每次执行下面的命令。
2、cat /proc/net/dev | grep ens192 | awk '{print "RX:"$2"\n""TX:"$10}': 从 /proc/net/dev 文件中获取 ens192 的网络接口信息,然后使用 awk 命令格式化输出,只保留接收字节数和发送字节数。
3、awk 'BEGIN{FS=":"}{A[NR]=$2}END{print A[2],A[4]}': 对第 2 步输出的结果进行处理,使用 awk 命令提取接收和发送字节数,并输出。
在 CentOS 7 和 CentOS 8 上执行结果一样,是因为 /proc/net/dev 文件在不同版本的操作系统上的格式和内容是一致的,这个脚本只是从该文件中提取数据,与操作系统本身的版本关系不大。
至于结果的具体含义,是 ens192 接口在执行该脚本期间的总接收和总发送字节数,单位是字节。在两次循环中,接收和发送的字节数都是一样的,因此最终输出的是两个相同的数字。
1、for i in 1 2: 循环两次,每次执行下面的命令。
2、cat /proc/net/dev | grep ens192 | awk '{print "RX:"$2"\n""TX:"$10}': 从 /proc/net/dev 文件中获取 ens192 的网络接口信息,然后使用 awk 命令格式化输出,只保留接收字节数和发送字节数。
3、awk 'BEGIN{FS=":"}{A[NR]=$2}END{print A[2],A[4]}': 对第 2 步输出的结果进行处理,使用 awk 命令提取接收和发送字节数,并输出。
在 CentOS 7 和 CentOS 8 上执行结果一样,是因为 /proc/net/dev 文件在不同版本的操作系统上的格式和内容是一致的,这个脚本只是从该文件中提取数据,与操作系统本身的版本关系不大。
至于结果的具体含义,是 ens192 接口在执行该脚本期间的总接收和总发送字节数,单位是字节。在两次循环中,接收和发送的字节数都是一样的,因此最终输出的是两个相同的数字。