netinfoctl

   netinfoctl

  사용법


	netinfoctl -V
	netinfoctl -c config [-S skiplist] file
	netinfoctl -d file
	netinfoctl -G groupname=interface1[,interface2...] [-G groupname=interface1[,interface2...] ...] [-S skiplist] file
	netinfoctl -G groupname=+interfacefile [-G groupname=+interfacefile ...][-S skiplist] file
	netinfoctl -p n [-S skiplist] file
	netinfoctl -s [-i interval][-T] [-m | -g][-S skiplist] file

	Options are as follows:

	-?                        print this help
	-c config                 specify configuration file for grouping interfaces
	-d                        print only interface names in the file
	-G groupname=interface1[,interface2,..,] grouping interfaces, (multi-choice option)
	-G groupname=+interfacefile    interfacefile has interfaces line by line, (multi-choice option)
	-g                        show data in giga byte
	-m                        show data in mega byte
	-i interval               specify interval
	-p n                      combine n lines into one
	-s                        print sum of each devices
	-S skiplist               list starting word to skip (separated by comma)
	-T                        print TOTAL values of all interfaces
	-V                        show version

	file                      output of "netinfo -x" command

	Example)

	# netinfoctl -G service=net0,net1 -G backup=net2,net3 netinfo.log
	# netinfoctl -c group_file netinfo.log
	# netinfoctl -p 3 netinfo.log
	# netinfoctl -s netinfo.log
	# netinfoctl -d netinfo.log
  설명

netinfoctl 명령어는 netinfo -x" 명령어의 실행결과를 입력으로 받아서 여러 개의 네트웍 인터페이스를 하나의 잍터페이스로 변환하여 준다.
예를 들어, IPMP나 truncking으로 여러 개의 인터페이스를 묶어서 사용할 경우, 여려 개의 인터페이스의 처리량을 하나로 묶어서 보고 싶을 경우, 이 명령어를 사용할 수 있다.
예를 들어, svcnet 이라는 이름으로 net0, net1를 하나로 묶고, bkpnet으로 net2, net3를 묶어서 새롭게 netinfo 명령어의 출력형식으로 만들 수 있다.

# head -20 netinfo.log
Name     I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:20:01
lo0         6.5        -        -      6.5        -        -        -
net0        1.8     0.1K       0       1.1     0.1K        0        0
net1      418.3   469.6K        0    258.4   235.5K        0        0
net2      480.7   448.1K        0    502.6   477.5K        0        0
net3      416.8   424.2K        0    316.3   275.0K        0        0
Name     I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:21:01
lo0         6.8        -        -      6.8        -        -        -
net0        1.8     0.1K        0      1.6     0.1K        0        0
net1      252.4   260.9K        0    193.0   169.7K        0        0
net2      392.9   346.6K        0    332.8   294.0K        0        0
net3      205.5   171.7K        0    219.3   162.5K        0        0
Name     I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:22:01
lo0         6.8        -        -      6.8        -        -        -
net0        1.8     0.1K        0      1.1     0.1K        0        0
net1      124.3   131.7K        0     69.5    53.0K        0        0
net2      207.7   148.0K        0    190.4   130.2K        0        0
net3      157.4   132.5K        0    116.2    56.8K        0        0
Name     I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:23:01
lo0         6.9        -        -      6.9        -        -        -

# netinfoctl -G svcnet=net0,net1 -G bkpnet=net2,net3 netinfo.log | head -20
# svcnet (2) = net0 net1
# bkpnet (2) = net2 net3
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:20:01
svcnet        420.1   469.7K        0    259.5   235.6K        0        0
bkpnet        897.5   872.3K        0    818.9   752.5K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:21:01
svcnet        254.2   261.0K        0    194.6   169.8K        0        0
bkpnet        598.4   518.3K        0    552.1   456.5K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:22:01
svcnet        126.1   131.8K        0     70.6   53.10K        0        0
bkpnet        365.1   280.5K        0    306.6   187.0K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:23:01
svcnet        357.3   401.6K        0     95.0   83.80K        0        0
bkpnet        691.5   660.8K        0    698.8   617.5K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:24:01
svcnet       1348.8   1300.K        0    738.6   804.4K        0        0
bkpnet       3156.0   3334.K        0   5374.2   6185.K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:25:01
svcnet        364.9   330.9K        0    356.5   299.2K        0        0
bkpnet        949.7   861.4K        0    818.5   649.2K        0        0

이렇게 만들어진 결과물에 대하여 gnetinfo 명령어를 사용하여 그래프를 만들 수 있다.

-G 옵션에 그룹명과 그룹에 포함되는 인터페이스 명을 지정하면 된다. -G 옵션을 여러 개 지정이 가능하며, 형식은 다음과 같다.

	-G groupname=interface,.....

netinfoctl 명령어의 결과물의 첫부분은, '#' 으로 시작하는 주석문이 나오며, 이것은 gnetinfo 명령어에서 주석으로 처리된다.
이 주석문의 내용은 그룹명과 이에 해당하는 인터페이스 개수와 이름으로 되어 있다.

	# svcnet (2) = net0 net1
	# bkpnet (2) = net2 net3

여기서, 출력되는 각각의 필드는 다음과 같이 계산된다.

필드 설명
I-pkts, I-data
O-pkts, O-data
-G 옵션이나 -s 옵션을 사용할 때에는 합산되고,
-p 옵션을 사용할 때에는 합산한 값에 대하여 -p 옵션에 지정된 숫자로 나눈다.
I-errs
O-errs
Collis
이 필드들은 최대값을 표시한다.
-p 옵션을 지정하면 여러 번에 걸처 수집한 데이타를 한번에 보여준다. 예를 들어, -p 3 을 지정하면, 3번에 걸처 수집한 데이타를 1번으로 줄여서 보여준다.
만일 1분 간격으로 데이타를 수집한 결과물을 가지고 있는데, 이것에 대해 -p 3 옵션을 지정하여 netinfoctl 명령어를 실행하면, 그 결과 파일은 3분 간격으로 데이타를 수집한 것 처럼 보인다.
netinfo 명령어가 수집한 데이타 파일에서 3개씩 묶어서 하나의 데이타로 출력한다.

 netinfoctl -p 3 netinfo.log | head -20
# -p 3
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:22:01
lo0             6.7   0.000K        0      6.7   0.000K        0        0
net0            1.8   0.100K        0      1.3   0.100K        0        0
net1          265.0   287.4K        0    173.6   152.7K        0        0
net2          360.4   314.2K        0    341.9   300.5K        0        0
net3          259.9   242.8K        0    217.3   164.7K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:25:01
lo0             8.0   0.000K        0      8.0   0.000K        0        0
net0            1.9   0.100K        0      1.1   0.067K        0        0
net1          688.4   677.6K        0    395.6   395.7K        0        0
net2          972.2   1001.K        0    824.7   855.9K        0        0
net3          626.9   617.3K        0   1472.5   1628.K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:28:01
lo0             8.0   0.000K        0      8.0   0.000K        0        0
net0            1.8   0.100K        0      1.1   0.067K        0        0
net1          837.9   912.9K        0    756.7   778.3K        0        0
net2         1127.6   1201.K        0    908.1   929.3K        0        0
net3          910.4   1021.K        0    856.9   894.7K        0        0
Name         I-pkts   I-data   I-errs   O-pkts   O-data   O-errs   Collis 08:31:01

-s 옵션을 지정하면 다음과 같이 각 인터페이스의 합계를 보여준다.

# netinfoctl -s netinfo.log
Name             I-pkts       I-data   I-errs       O-pkts       O-data   O-errs   Collis   cnt      IO-pkts      IO-data sum_i_errs sum_o_errs sum_collis
lo0              3718.9       0.000K        0       3718.9       0.000K        0        0   481       7437.8       0.000K          0          0          0
net0              892.6       48.40K        0        575.7       43.70K        0        0   481       1468.3       92.10K          0          0          0
net1           621932.3      696062K        0     627842.0      691626K        0        0   481    1249774.3     1387688K          0          0          0
net2           804516.1      857766K        0     640265.6      672956K        0        0   481    1444781.7     1530722K          0          0          0
net3           634121.1      727462K        0     608830.4      650715K        0        0   481    1242951.5     1378178K          0          0          0

-s 옵션에 -T 옵선을 추가하면, 마지막 줄에 모든 인터페이스의 합계를 보여준다.

# netinfoctl -T -s netinfo.log
Name             I-pkts       I-data   I-errs       O-pkts       O-data   O-errs   Collis   cnt      IO-pkts      IO-data sum_i_errs sum_o_errs sum_collis
lo0              3718.9       0.000K        0       3718.9       0.000K        0        0   481       7437.8       0.000K          0          0          0
net0              892.6       48.40K        0        575.7       43.70K        0        0   481       1468.3       92.10K          0          0          0
net1           621932.3      696062K        0     627842.0      691626K        0        0   481    1249774.3     1387688K          0          0          0
net2           804516.1      857766K        0     640265.6      672956K        0        0   481    1444781.7     1530722K          0          0          0
net3           634121.1      727462K        0     608830.4      650715K        0        0   481    1242951.5     1378178K          0          0          0
TOTAL         2065181.0     2281339K        0    1881232.6     2015341K        0        0  2405    3946413.6     4296681K          0          0          0

netinfoctl 명령어에서 출력되는 값은 위에서 설명한 표에 있으며, 그 나머지 필드의 설명은 다음과 같다.

필드 설명
cnt cnt는 traffic이 실제 있었던 횟수를 나타낸다. (I-pkts + O-pkts)가 0 보다 컸던 횟수를 나타낸다.
IO-pkts IO-pkts 는 I-pkts와O-pkts의 합이다.
IO-data IO-data 는 I-data와O-data의 합이다.
sum_i_errs I-errs 컬럼에 있는 모든 값의 합계를 표시한다.
sum_o-errs O-errs 컬럼에 있는 모든 값의 합계를 표시한다.
sum_collis Collis 컬럼에 있는 모든 값의 합계를 표시한다.

다음은 netinfoctl 명령어의 옵션이다.

옵션설명
-c config -G 옵션에 그룹명과 그 그룹에 포함된 인터페이스 명을 명령어 라인에 지정할 수 있는데, 이것을 명령어 라인에 지정하지 않고 구성파일에 지정할 수 있다.
구성파일명을 지정할 때, -c 옵션을 사용한다.

다음의 두개의 netinfoctl 명령어는 동일한 결과를 같는다.

# netinfoctl -G svc=net0,net1 -G bkp=net3,net4 io.log > output

# cat vol.conf
svc=net0,net1
bkp=net3,net4
# netinfoctl -c vol.conf io.log > output

구성파일의 형식은 다음과 같으며, 한줄에 하나씩 인터페이스 그룹명을 지정한다.

	groupname = interface1[,interface2....]
	groupname = +interfacefile
그룹에 속하는 인터페이스 가 많아서 한줄에 쓰기 힘들면 라인의 끝에 백슬래쉬(\)를 표시하고 그 다음 줄에 인터페이스 명를 지정해도 된다.
	vol3 = net0, net1, net2, net3, net5 
위의 내용을 다음과 같이 두 줄에 표시할 수 있다.
	vol3 = net0, net1, net2, net3 \
		net5 
또한, 인터페이스 명을 별도의 파일을 만들어 한줄에 하나씩 지정한 다음에 그 파일명 앞에 "+" 표시하여 다음과 같이 표시할 수 있다.
	vol3 = +file_vol2
"+" 표시와 파일명 사이에 공백이 있으면 안 된다.

"#"으로 시작하는 라인은 주석으로 처리된다.

-d -d 옵션을 지정하면, 입력파일의 내용을 읽어서 그 파일에 들어 있은 인터페이스 명을 한줄에 하나씩 출력한다.

# netinfoctl -d netinfo.log
ssd0
ssd2
ssd82
ssd83
ssd84
ssd85
ssd86
ssd87
ssd88
ssd89
-G groupname=interface1[,interface2,..,]
-G groupname=+interfacefile
그룹명과 그 그룹에 포함된 인터페이스 명을 지정한다.
인터페이스 그룹명이 여러 개 있을 경우, -G 옵션을 여러 번 지정하여야 한다. 그룹에 해당하지 않은 인터페이스 정보는 보여주지 않는다.

인터페이스 명을 명령어 라인에 직접 쓰지 않고 한줄에 하나씩 인터페이스 명을 지정하고 그 파일명을 + 표시와 함께 사용할 수 있다.

-i interval
-m
-g
이 옵션들은 -s 옵션을 사용할 때 같이 사용할 수 있다.

-i 옵션에 데이타를 수집한 시간 간격(초단위: netinfo 명령어를 실행할 때 지정한 값)을 지정하면 I-pkt, I-data, O-pkt, O-data 필드에 시간 간격을 곱한 결과를 출력한다.

이렇게 interval로 곱하게 되면 구간동안에 실제 발생한 네트웍 트래픽 양을 알 수 있다. 곱하기 전에는 초당값(value per second)의 합계이다.

-m 옵션을 사용하면 I-data, O-data 필드를 Mega byte 단위로 표시하고, -g 옵션을 지정하면 Giga byte 단위로 표시한다.

-p n -p 옵션을 지정하여, 여러 차례(n) 수집한 데이타를 한번으로 압축하여 보여준다. -p 2 옵션을 지정하면 두 차례 수집한 데이타를 하나의 데이타로 변환하여 출력한다.

예를 들에, 1분 간격으로 netinfo 명령어를 실행하였다면, -p 2를 지정하면 2분 간격으로 데이타를 수집한 것과 유사한 효과를 볼 수 있다. netinfo 명령어로 1 분 간격으로 24 시간 동안 데이타를 수집하여 gnetinfo 명령어로 그래프를 만들면 그래프의 X축이 1440이 된다. 이 그래프는 커서 한 페이지에 보기 불편할 수 있다. 이것을 -p 2 옵션을 사용하여 netinfoctl 명령어로 가공하여 그래프를 만들면 그래프의 X 축이 반으로 준다.

-s -s 옵션을 지정하면 개별 인터페이스에 대한 합계를 보여준다.
-T -T 옵션을 -s 옵션과 합께 사용하면, 마지막 줄에 전제 인터페이스에 대한 합계를 보여준다.
-V -V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.