加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Linux 带宽使用情况

发布时间:2020-12-17 04:09:34 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # Script to display the transfer information of a given# interface. Relies on /proc/net/dev for byte totals.require 'fileutils'if ARGV.lengt

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# Script to display the transfer information of a given
# interface.  Relies on /proc/net/dev for byte totals.

require 'fileutils'

if ARGV.length < 1
	puts "Usage: #{$0} <interface>"
	exit -1
end

found_iface = false
iface = ARGV[0]
net_info = File.new('/proc/net/dev','r')
SI_STR = ['Bytes','KB','MB','GB']

# Convert transfer amounts from raw bytes to something more readable
def humanize(transfer)
	si = 0
	while transfer >= (2 ** 10) and si < SI_STR.length
		transfer /= (2 ** 10).to_f
		si += 1
	end

	sprintf('%.2f %s',transfer,SI_STR[si])
end

while line = net_info.gets
	# Find the proper interface line
	if line =~ /#{iface}/
		found_iface = true
		# Remove the interface prefix (i.e. "eth0:")
		line.sub!(/^s*#{iface}:/,'')
		# Split the numbers into an array
		line = line.split(/s+/)
		# Extract the number of bytes rx'd and tx'd
		rx,tx = line[0].to_i,line[8].to_i

		total = humanize(rx + tx)
		rx = humanize(rx)
		tx = humanize(tx)

		puts "#{iface} transfer:"
		puts 'Recieved: ' + rx 
		puts 'Transmitted: ' + tx
		puts 'Total: ' + total
	end
end

if not found_iface
	puts "Unable to find interface: #{iface}"
	exit -1
end

##

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读