Перейти до

Рекомендованные сообщения

Опубликовано:

Господа, помогайте.

всегда старался юзать freebsd, пришло время глубоко осваивать linux

 

как посмотреть packets per second в Linux, в debian в частности?

есть какая-то альтернатива freebsd-шной: netstat -bdhI $iface 1?

 

дабы в реалтайме смотреть kpps + траф в мб/мбитах?

 

ifstat, iptraf, bmon, vnstat

все не то

 

trafshow не предлагать

 

спасибо.

Опубліковано:

Самописный скрипт для /proc/net/dev

Со мной таким в своё время поделились как раз для этих задач. И я его немного подправил под себя, так сказать.

Опубліковано:

Самописный скрипт для /proc/net/dev

Со мной таким в своё время поделились как раз для этих задач. И я его немного подправил под себя, так сказать.

 

не поделитесь в свою очередь?

Опубліковано:

Обычно ложу в /sbin/show_pps

Запуск без аргументов показывает только физические интерфейсы без ppp. Запуск командой 'show_pps all' Выводит статистику по всем интерфейсам.

 

Плюс данного решения - не вызывается libpcap и не тратятся ресурсы на считывание и фильтрование трафика (у iptraf с этим явная проблема - при его включении сразу падает скорость на интерфейсе, который слушаем, плюс неактуальные данные выводятся).

 

#!/usr/bin/perl
$num=1;
if($ARGV[0] ne ""){
	$doiface=$ARGV[0];
}else{
	$doiface="";
}
while (1){
	system("/usr/bin/clear");
	open (FILE, "</proc/net/dev");
	while (<FILE>) {
			if($doiface eq ""){
					next if (/ppp/);
			}
			s/n//;
			if( /.*:.*/ ){
					($iface,$data)=split(/:/,$_);
					$iface=~s/s{1,}//g;
					(@tmp)=split(' ',$data);
					$traf{$iface}="@tmp[0] @tmp[8] @tmp[1] @tmp[9]";
			}
	}
	close(FILE);
	printf "%-8s %12s %12s %12s %10s %10s %10sn", "Iface","In (Kbit/s)","Out (Kbit/s)","Sum (Kbit/s)","In (pps)","Out (pps)","Sum (pps)";
	printf "---------------------------------------------------------------------------------n";
	foreach $rec (sort keys %traf){
			($b_in,$b_out,$p_in,$p_out)=split(' ',$traf{$rec});
			($old_b_in,$old_b_out,$old_p_in,$old_p_out)=split(' ',$old_traf{$rec});
			$c_b_in=sprintf("%.0f",($b_in-$old_b_in)*8/1024/$num);
			$c_b_out=sprintf("%.0f",($b_out-$old_b_out)*8/1024/$num);
			$c_p_in=$p_in-$old_p_in;
			$c_p_out=$p_out-$old_p_out;
			my $sumk = $c_b_in + $c_b_out;
			my $sump = $c_p_in + $c_p_out;
			printf "%-8s %12s %12s %12s %10s %10s %10sn",$rec, $c_b_in, $c_b_out, $sumk, $c_p_in, $c_p_out, $sump;
	}
	%old_traf=%traf;
	print "n";
	sleep $num;
}

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    • Немає користувачів, що переглядають цю сторінку.
×
×
  • Створити нове...