Отклонение файла пишет для обработки

Правильная команда - этот:

:syntax enable
3
22.06.2013, 16:32
2 ответа

Вы могли заменить выходной файл FIFO и заставить Вашу другую программу получить свой вход от него.

Например:

mkfifo Epson4880_audit.txt
# launch your program
grep "." Epson4880_audit.txt

Обратите внимание, что это, как гарантируют, не будет работать. Некоторая программа проверяет, что их вывод является реальным файлом. И если Вы действительно хотите сохранить журнал строк, второй процесс должен удостовериться, что распечатал их, когда они прибывают. Например, выполнение tee real_Epson4880_audit.txt | grep ".". Также обратите внимание, что Вы не сможете запустить свою первую программу без второго, потому что первый процесс будет вынужден ожидать читателя. В случае Вы хотите запустить первую программу без второго, необходимо будет удалить FIFO сначала.

4
27.01.2020, 21:14
  • 1
    Право, я имел в виду случай FIFO RDWR. Я исправляю ответ. –  lgeorget 22.06.2013, 00:13
  • 2
    я собираюсь отметить это корректный ответ как Вас точно, рассматривает мой вопрос о перенаправлении записей файла. В конечном счете я буду, вероятно, использовать подход @slm и контролировать файл с подобными fswatch потому что это кажется более простым, и меньше работы (в некотором отношении) для реализации. –  orionrush 22.06.2013, 16:52

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

Вот некоторые ресурсы для запущения Вас с понимания iNotify:

Даже при том, что эти страницы показывают код C/C++, Вы не должны разрабатывать свои собственные инструменты для взаимодействия с ним. Существуют инструменты командной строки, которые можно использовать, чтобы подписать файл и/или каталог и затем получить уведомления.

Примечание: На OSX Вы будете использовать что-то названное подобное kqueue. Я нашел этот поток, который обсуждает много опций на Переполнении стека, названном: существует ли команда как “часы” или “inotifywait” на Mac?.

Существуют инструменты, которые предлагают подобные средства inotifywait на OSX такой как launchd, kqwait, fswatch или watchdog.

Другой подход, который Вы могли проявить с этим, должен посмотреть на то, как контроль инструментов, таких как Nagios контролирует файлы журнала для действия. Существует богатство плагинов к Nagios, которые делают точно, что Вы пытаетесь сделать. Некоторые из них контролируют файл только для действия, в то время как другие контролируют файлы для определенных строк. Смотрите на страницу плагинов.

Плагины Nagios - категория: файлы журнала

2
27.01.2020, 21:14
  • 1
    iNotify является Linux только, OP упомянул OSX, где я предполагаю, что это - kevent/kqueue как на BSDs. –  Stéphane Chazelas 22.06.2013, 00:14
  • 2
    'я' в iNotify бросил меня, печально среда OSX - благодарит за подсказку, хотя - это могло бы помочь кому-то еще. –  orionrush 22.06.2013, 00:18
  • 3
    @orionrush - видят ссылку, на которой я обеспечил ТАК. Существуют другие инструменты, такие как fswatch и сторожевой таймер. –  slm♦ 22.06.2013, 00:22
  • 4
    некоторые хорошие подсказки там, я должен буду провести некоторое исследование... –  orionrush 22.06.2013, 01:13
  • 5
    К сожалению, у меня нет точек, чтобы-проголосовать за это. Это - твердое предложение, и Вы изобразили схематически среду очень хорошо. Спасибо за добавление в потоке на эквивалентах OSX. –  orionrush 22.06.2013, 16:56

Теги

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