Пропускная способность, статистика CPU & Memory, возвращенная в одной строке из терминала

FreeBSD имеет SMP, который дружественное ядро с несколькими потоками выполнения и многими частями ядра может выполнить независимый, и это поддерживает вытеснение.

NetBSD работал над тем же самым много лет. DragonFly BSD, запущенный на работе (от FreeBSD4) и передача сообщений использования, и т.д.

OpenBSD и MirBSD не имеют полной ГИГАНТСКОЙ блокировки, бесплатные реализации SMP для их ядер и последнего не хотят когда-либо делать это.

MidnightBSD является в основном тем же как FreeBSD 7.

1
01.02.2013, 10:22
2 ответа

Я не думаю, что существует простой способ агрегировать данные, которые Вы хотите, но Вы могли придерживаться, набор команд вместе затем передают его по каналу ко что. Я провел определенное время для предложения примера.

{
  printf '%s' '{"load":["'$(cut -d' ' --output-delimiter='","' -f-3 /proc/loadavg)
  printf '%s' '"],"net":{'
  tail -n+3 /proc/net/dev|awk -F' ' '{
    gsub(/:/,"");
    printf "\"%s\":{\"rxbytes\":\"%s\",\"rxpackets\":\"%s\",\"rxerrs\":\"%s\",\"rxdrop\":\"%s\",\"txbytes\":\"%s\",\"txpackets\":\"%s\",\"txerrs\":\"%s\",\"txdrop\":\"%s\"},",$1,$2,$3,$4,$5,$10,$11,$12,$13
  }'|sed 's/,$//'
  printf '%s' '},"mem":{'
  grep -E '^(MemTotal|MemFree|SwapTotal|SwapFree):' /proc/meminfo|tr 'A-Z' 'a-z'|awk -F' ' '{gsub(/:/,""); printf "\"%s\":\"%s\",",$1,$2}'|sed 's/,$//'
  printf '%s' '}}'
}

Вы могли хлюпать он вниз в это:

{ printf '%s' '{"load":["'$(cut -d' ' --output-delimiter='","' -f-3 /proc/loadavg); printf '%s' '"],"net":{'; tail -n+3 /proc/net/dev|awk -F' ' '{ gsub(/:/,""); printf "\"%s\":{\"rxbytes\":\"%s\",\"rxpackets\":\"%s\",\"rxerrs\":\"%s\",\"rxdrop\":\"%s\",\"txbytes\":\"%s\",\"txpackets\":\"%s\",\"txerrs\":\"%s\",\"txdrop\":\"%s\"},",$1,$2,$3,$4,$5,$10,$11,$12,$13 }'|sed 's/,$//'; printf '%s' '},"mem":{'; grep -E '^(MemTotal|MemFree|SwapTotal|SwapFree):' /proc/meminfo|tr 'A-Z' 'a-z'|awk -F' ' '{gsub(/:/,""); printf "\"%s\":\"%s\",",$1,$2}'|sed 's/,$//'; printf '%s' '}}'; }

Это должно произвести некоторый (допустимый) JSON, который похож на это:

{"load":["0.00","0.01","0.05"],"net":{"lo":{"rxbytes":"2524231953","rxpackets":"1381864","rxerrs":"0","rxdrop":"0","txbytes":"2524231953","txpackets":"1381864","txerrs":"0","txdrop":"0"},"eth0":{"rxbytes":"2093914043","rxpackets":"2859952","rxerrs":"0","rxdrop":"0","txbytes":"1774385937","txpackets":"1485252","txerrs":"0","txdrop":"0"}},"mem":{"memtotal":"1692584","memfree":"20248","swaptotal":"917500","swapfree":"916288"}}

Вы могли затем добавить | whatever после завершения, изогнутого для передачи по каналу его, ко что.

1
27.01.2020, 23:54
  • 1
    Ничего себе... это является довольно потрясающим. Как Вы придумывали это? Я являюсь новым для избиения сценариев... Я знаю просто некоторый простой материал типа команды. Существует ли супер специальная книга, которую я могу купить, который сделает меня супергероем удара? –  Verber 02.02.2013, 08:03
  • 2
    @Verber Большинство книг по удару ужасен и полон ошибок. Я никогда не находил книг удара, которые являются чем-либо выше OK. Если Вы хотите твердую ссылку, я настоятельно рекомендую BashGuide и Хакеров Bash. –  Chris Down 02.02.2013, 09:13
  • 3
    Хорошо спасибо за предложения... Я почти просто пошел кредитная карта, сумасшедшая на Amazon, покупая книжный –  Verber 02.02.2013, 09:52
  • 4
    ! Этот форум настолько более хорош, чем Переполнение стека... Никакое преступление любому здесь, но на том, ТАКИМ ОБРАЗОМ, это походит на меня всегда, не имеет парней, у которых есть серьезные дефициты, которые им нравится вынимать на других. –  Verber 02.02.2013, 10:03
  • 5
    Ya, Chris прав. Большинство книг Bash отчасти сосет. В дополнение к сайтам он дал, я отсылаю к tldp.org/LDP/abs/html тонну... и много Googleing. Тот сценарий, который я дал Вам, является большим количеством строковой обработки, чем сценарии - если Вы желаете для управления данными много, необходимо изучить изучение определенных sed/awk/Perl/whatever, которые горячий язык дня. Та вещь существует долбаное бельмо из-за форматирования JSON. :) –  livingstaccato 02.02.2013, 10:05

Вы могли бы хотеть изучить i3status. Это действительно не разработано с этой целью, но это кажется, что выполнило бы Ваши требования вполне приятно.

0
27.01.2020, 23:54
  • 1
    Хм. Вы ищете команду, которая свяжет всю эту информацию в одну строку (как разграниченная запятая), или Вы ищете способ получить все эти данные из единственной команды нормализованным способом? –  livingstaccato 01.02.2013, 23:29
  • 2
    я ищу единственную команду нормализованным способом: 1 для пропускной способности, 1 для использования ЦП, 1 для Памяти usuage. Я буду выполнять вызовы к каждому из них индивидуально так лучше разделять их. –  Verber 02.02.2013, 07:39
  • 3
    я действительно смотрел на i3status..., выглядит довольно хорошим. Там какой-либо путь состоит в том, чтобы только назвать его однажды? Или это просто отсечет вперед отдельно, пока Вы не остановите его? –  Verber 02.02.2013, 08:02
  • 4
    @Verber i3status | head -1 –  Chris Down 02.02.2013, 09:11
  • 5
    а-а-а! это работает. Команда ниже на самом деле - то, в чем я буду нуждаться. Легкий захватить его с JSON, с помощью нового Файла HTML API... затем в flotr2 должен работать потрясающий. Я подброшу немного сообщения, когда я буду сделан. человек –  Verber 02.02.2013, 09:54

Теги

Похожие вопросы