1

Я хочу написать скрипт, который собирает некоторую информацию (например, температуру процессора и использование полосы пропускания) и записывает ее в файл.

Я не могу понять, как получить один образец текущей используемой полосы пропускания: я обнаружил, что существует множество инструментов для получения этой информации из командной строки, но большинство из них основаны на проклятиях, поэтому я не могу взять их вывод, чтобы положить его в файл. Среди них я нашел bmon с хорошим выводом ascii. Проблема в том, что эти выходные данные постоянно обновляются, в то время как я хочу получить один "образец" для каждого вызова программы.

Есть ли способ сделать это с помощью bmon, или кто-то знает другую программу для выполнения этой задачи?

3 ответа3

1

К счастью для вас sysstat уже существует и уже делает то, что вы пытаетесь сделать.

1 Установите пакет sysstat вашего дистрибутива и добавьте следующее в /etc/crontab:

*/5 * * * * root /usr/lib/sysstat/sa1 &
5 19 * * * root /usr/lib/sysstat/sa2 -A &

2 Подожди 10 минут. Используйте это время, чтобы прочитать страницу руководства sar .

3 Наслаждайтесь использованием sar .

0

ifconfig скажет вам, сколько трафика обработал один интерфейс, например

tony@eightbit:~$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr de:ad:be:ef:00:00  
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24776 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22892 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:19629330 (19.6 MB)  TX bytes:3968336 (3.9 MB)
          Interrupt:23 Base address:0xc000 

Также взгляните на netstat -s .

0

Из полного отчаяния из-за отсутствия такого простого инструмента, некоторое время назад я написал bwm, простой монитор пропускной способности.

Я использую его как фоновый демон, который постоянно записывает в файл текущую полосу пропускания, используемую в направлении (выгрузка / загрузка) на определенном интерфейсе.

./bwm --interface wlan0 --upload > /tmp/bandwidth-upload

Всякий раз, когда мне нужно текущее использование полосы пропускания загрузки, я просто катаю файл:

cat /tmp/bandwidth-upload

Это особенно хорошо работает для скриптов мониторинга или скриптов строки состояния (для dwm, wmii и т.д.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .