-2

so i am trying to monitor how much bandwidth get used by transmission while torrenting. I searched and find an utility nethogs.if i run

 sudo netogs -t | grep transmission-gtk 

i get

transmission-gtk/2766/1001  0.145703    2.56738
transmission-gtk/2766/1001  0.606641    11.9141
transmission-gtk/2766/1001  1.06953 20.6506
transmission-gtk/2766/1001  1.87441 35.0754
transmission-gtk/2766/1001  2.63965 49.8998
transmission-gtk/2766/1001  2.76406 51.4779
transmission-gtk/2766/1001  3.49121 62.7377
transmission-gtk/2766/1001  4.2791  79.4397
transmission-gtk/2766/1001  4.69922 86.7502
transmission-gtk/2766/1001  5.57695 104.648
transmission-gtk/2766/1001  5.58379 111.542
transmission-gtk/2766/1001  5.54961 109.8
transmission-gtk/2766/1001  5.55586 109.565
transmission-gtk/2766/1001  5.58281 106.428
transmission-gtk/2766/1001  5.90234 107.965
transmission-gtk/2766/1001  5.66777 101.533
transmission-gtk/2766/1001  5.52168 93.8941
transmission-gtk/2766/1001  5.20098 88.0832
transmission-gtk/2766/1001  4.57051 80.6463
transmission-gtk/2766/1001  4.23613 77.7107
transmission-gtk/2766/1001  4.10391 78.3896
transmission-gtk/2766/1001  3.96484 78.1943
transmission-gtk/2766/1001  4.09473 76.99
transmission-gtk/2766/1001  4.41582 79.4229
transmission-gtk/2766/1001  4.73984 83.9588
transmission-gtk/2766/1001  5.88789 100.991
transmission-gtk/2766/1001  5.10801 80.4992
transmission-gtk/2766/1001  5.22676 80.5789
transmission-gtk/2766/1001  5.1707  76.5184
transmission-gtk/2766/1001  5.37773 80.1029
transmission-gtk/2766/1001  5.7707  85.7389
transmission-gtk/2766/1001  7.11309 103.625
transmission-gtk/2766/1001  6.13027 88.0092
transmission-gtk/2766/1001  5.64004 84.7049
transmission-gtk/2766/1001  5.08203 81.7949
transmission-gtk/2766/1001  4.58223 80.7449
transmission-gtk/2766/1001  5.42402 100.62
transmission-gtk/2766/1001  4.66973 87.1572
transmission-gtk/2766/1001  5.11504 90.9414
transmission-gtk/2766/1001  5.67402 97.6721
transmission-gtk/2766/1001  6.14375 97.0371
transmission-gtk/2766/1001  5.71191 92.018
transmission-gtk/2766/1001  6.82676 111.715
transmission-gtk/2766/1001  6.61562 109.056
transmission-gtk/2766/1001  4.80723 82.7264
transmission-gtk/2766/1001  4.71523 83.9014
transmission-gtk/2766/1001  4.3041  80.1188
transmission-gtk/2766/1001  4.04277 81.1988

however when i run

sudo nethogs -t | grep transmission-gtk |  awk  '{ print $2+$3; }'

once in a while it starts giving output but most of the time there is no outputwhat is wrong or what should i do?

i tried to search on internet and everyone says it will work i tried some variation of awk added -e and { print ($1+$2); } but it still does not works i ran both commands simultaniously but one with awk is not consistent and one without it always works

2 Answers2

1

I think the culprit is grep which buffers line when piped an output. this is what chatgpt told me:

When output is redirected (e.g., to a file or pipe): grep switches to block-buffering, where it waits for a certain amount of data (a full buffer) before writing it

so when i ran grep with --line-buffered option it worked.

sudo nethogs -t | grep --line-buffered transmission-gtk | awk '{ print $2+$3 }'
Ramhound
  • 44,080
1

You can use different commands to stop STDOUT buffering. For example you can use:

sudo nethogs -t | stdbuf -i0 -o0 -e0  awk  '/transmission-gtk/ { print $2+$3; }'

or

sudo unbuffer nethogs -t | awk  '/transmission-gtk/ { print $2+$3; }'

You can check this answer for more information.

Romeo Ninov
  • 7,848