stdout в несколько файлов

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BonanZant
проходил мимо
Сообщения: 7
Зарегистрирован: 2014-02-03 12:00:21

stdout в несколько файлов

Непрочитанное сообщение BonanZant » 2014-02-03 12:16:10

Добрый, день, форумчане!
Прошу помощи в реализации небольшого скрипта перенаправления вывода в несколько файлов.
Есть скрипт:

Код: Выделить всё

#!/bin/sh
DIR=/var/queue/log
NAME=queue_log_$(date +%Y%m%d%H%M%S)
pfctl -vvsq > $DIR/$NAME
Команда pfctl -vvsq выводит статистику по очередям раз в 5 секунд. Возможно ли реализовать, что бы при каждом новом выводе данные записывались в новый файл типа log_$(date +%Y%m%d%H%M%S)?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: stdout в несколько файлов

Непрочитанное сообщение FreeBSP » 2014-02-03 13:28:10

12 ежеминутных записей в крон типа
* * * * * * root script
* * * * * * root sleep 5 & script
...
* * * * * * root sleep 55 & script
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Neus
капитан
Сообщения: 1935
Зарегистрирован: 2008-09-08 21:59:56

Re: stdout в несколько файлов

Непрочитанное сообщение Neus » 2014-02-03 13:49:57

оберни то что в {} в цикл бесконечный:

Код: Выделить всё

#!/bin/sh
DIR=/var/queue/log
{
NAME=queue_log_$(date +%Y%m%d%H%M%S)
pfctl -vvsq > $DIR/$NAME
sleep 5
}
и запускай его /path/to/script &

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: stdout в несколько файлов

Непрочитанное сообщение FreeBSP » 2014-02-03 14:12:22

так поедет..
положим, что команда выполняется 0,001 сек, тогда уже через 1000 циклов, меньше 2 часов, цикл съедет на секнду, через 4 дня - на минуту, и это при фиксированном времени выполнения проги.
крон не гарантирует, что всегда все будет идеально, он бывает запаздывает, в зависимомости от загруженности, но от такой езды предохранит
тоесть эти 5 сек вставляются в разные моменты времени, в кроне - между запусками, в скрипте - между окончанием одного и запуском следующего
Последний раз редактировалось FreeBSP 2014-02-03 14:14:21, всего редактировалось 1 раз.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

BonanZant
проходил мимо
Сообщения: 7
Зарегистрирован: 2014-02-03 12:00:21

Re: stdout в несколько файлов

Непрочитанное сообщение BonanZant » 2014-02-03 14:14:00

FreeBSP писал(а):12 ежеминутных записей в крон типа
* * * * * * root script
* * * * * * root sleep 5 & script
...
* * * * * * root sleep 55 & script
Не подходит, т.к. pfctl -vvsq работает в реальном времени, как, например, tcpdump -i re0 -n -nn -ttt.
Neus писал(а):оберни то что в {} в цикл бесконечный:

Код: Выделить всё

#!/bin/sh
DIR=/var/queue/log
{
NAME=queue_log_$(date +%Y%m%d%H%M%S)
pfctl -vvsq > $DIR/$NAME
sleep 5
}
и запускай его /path/to/script &
Попробовал - не получилось. Продолжает писать всё в один файл.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: stdout в несколько файлов

Непрочитанное сообщение FreeBSP » 2014-02-03 14:16:24

тогда в пайпе обрабатывай выхлоп и раскидывай его по файлам
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

BonanZant
проходил мимо
Сообщения: 7
Зарегистрирован: 2014-02-03 12:00:21

Re: stdout в несколько файлов

Непрочитанное сообщение BonanZant » 2014-02-03 14:17:40

FreeBSP писал(а):тогда в пайпе обрабатывай выхлоп и раскидывай его по файлам
Прошу подкинуть мануал для изучения.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: stdout в несколько файлов

Непрочитанное сообщение FreeBSP » 2014-02-03 14:37:01

https://www.google.ru/search?q=shell+scripting
https://www.google.ru/search?q=shell+pipe
например
что то с ходу и не подскажу хороших мануалов для новичка по сприптописанию
опять же, обработчик текста можно на любом языке писать, sh php perl c/c++
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

BonanZant
проходил мимо
Сообщения: 7
Зарегистрирован: 2014-02-03 12:00:21

Re: stdout в несколько файлов

Непрочитанное сообщение BonanZant » 2014-02-03 14:46:12

FreeBSP писал(а):https://www.google.ru/search?q=shell+scripting
https://www.google.ru/search?q=shell+pipe
например
что то с ходу и не подскажу хороших мануалов для новичка по сприптописанию
опять же, обработчик текста можно на любом языке писать, sh php perl c/c++
Спасибо, попробую разобраться. Обработчик уже почти написан на php. Сейчас стоит задача реализации shell-скрипта по сбору данных. Всё это делается для визуализации мониторинга потребления интернет-канала, в разрезе очередей (отделов).

Аватара пользователя
Neus
капитан
Сообщения: 1935
Зарегистрирован: 2008-09-08 21:59:56

Re: stdout в несколько файлов

Непрочитанное сообщение Neus » 2014-02-03 15:16:16

BonanZant писал(а):
Neus писал(а):оберни то что в {} в цикл бесконечный:

Код: Выделить всё

#!/bin/sh
DIR=/var/queue/log
{
NAME=queue_log_$(date +%Y%m%d%H%M%S)
pfctl -vvsq > $DIR/$NAME
sleep 5
}
и запускай его /path/to/script &
Попробовал - не получилось. Продолжает писать всё в один файл.
т.е. команда "pfctl -vvsq" сама раз в 5 сек выдает вывод на stdout?

BonanZant
проходил мимо
Сообщения: 7
Зарегистрирован: 2014-02-03 12:00:21

Re: stdout в несколько файлов

Непрочитанное сообщение BonanZant » 2014-02-03 18:18:10

Neus писал(а):т.е. команда "pfctl -vvsq" сама раз в 5 сек выдает вывод на stdout?
Всё верно.