Преобразование выходных данных команды bash в JSON и предоставление их по http на лету - PullRequest
2 голосов
/ 17 марта 2012

Я хочу преобразовать вывод команды ifstat в JSON и передать его по http на лету, чтобы использовать его для графического приложения javascript. Существуют ли какие-либо облегченные решения для командной строки sed или awk, которые я могу использовать? Я не хочу хранить вывод JSON на диске, и было бы неплохо, если бы веб-сервер представлял собой небольшой и легкий инструмент командной строки, в который я могу передавать данные JSON.

РЕДАКТИРОВАТЬ 1:

Это - библиотека графиков потокового вещания, которая будет использовать данные. Я не заинтересован в конкретном веб-сервере; любой веб-сервер, который делает работу, будет в порядке.

1 Ответ

2 голосов
/ 18 марта 2012

Это то, что я пробовал.

Терминал № 1

ifstat -n | awk 'NR>2{print systime(),$0; fflush()}' | tee ifstat.log

Терминал № 2

while :
do
{ 
    echo -e "HTTP/1.1 200 OK"
    echo -e "Content-Type: application/json\n"
    tail -n1 ifstat.log | awk '{ printf("{\"time\":%s, \"in\":%s, \"out\":%s}\n", $1, $2, $3) }'
} | nc -l 8000
done

светлячок

открыто: http://localhost:8000

{"time":1332052321, "in":1.24, "out":2.62}

Я немного знаю о JSON. Возможно, вывод неверен. Вам следует переписать команду awk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...