Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
stdout в файл, перенаправление динамического вывода в файл
 
День добрый. Есть шелл-скрипт выполняющий сканирование обращения к определенной директории и выводящий это в реальном времени на экран, т.е.на стандартный stdout. Задача - перенаправить вывод в файл (или распаралелить - на экрани в файл). Пробовал стандатно

Код
./script.sh 1>/home/log.txt


в таком случае в файл записывается лишь первая строка отображающаяся скриптом (в моем случае это системное время) и она не меняется, хотя время идет. Пробовал подставлять ключик -n для указания количества строк но это ни к чему не привело.

Вопрос - как направить динамичный вывод (изменяющийся в реальном времени) в файл?
 
куда -н ? ...
скрипт в студию
 
Возникла мысль - можно ли делать перехват stdout от определенной задачи время отвремени по крону? Такой вариантподошел бы.

Зачем вам тело скрипта?) он просто висит задачей и отображает на консоль результаты
 
смущает ">", а не ">>", да и "скрипт в студию" для того что бы видеть что он должон что то выводить
 
На консоль он выводит обращения к директориям. Тупо появляется ip и время входа в директорию. Иначе выводится: "Активных клиентов: 0".  Мне тупо вывод надо направить в файл. Желательно время от времени, ибо смысл перезаписывать файл каждое мнгновение.

Зачем писать в файл в реальном времени? Чтобы натравив на него скажем веб-сервер смотреть статистику в браузере.
Изменено: Doctor Psyho - 04.02.2011 14:51:31
 
попробуйте так:

Код
./script.sh | /home/log.txt
 
Цитата
Micha Dump пишет:
./script.sh | /home/log.txt
Неправельные рекамендации даёте (:
 
2 Micha Dump:
"|" обозначает что данные из первой команды будут отданы на обработку второй команде.
в примере
Код
./script.sh | /home/log.txt
нету второй команды...
2 Doctor Psyho
эм... а всётаки не могли вы показать ту часть скрипта где делаете вывод сообщения в консоль (именно те которые на записываются в log.txt)
 
Цитата
Doctor Psyho пишет:
./script.sh 1>/home/log.txt
Пробуем так:
Код
./script.sh 1>/home/log.txt 2>&1
- это если не stdout.

либо:
Код
./script.sh 1>>/home/log.txt
-это если каждый раз закрывает stdout и открывает снова.

ЗЫ: не проще скрипт переписать, что бы писал и туда и сюда?
 
Без листинга скрипта подсказать трудно, но можешь попробовать так:
Код
./script.sh 2>&1 | tee -a script.log

Скрипт будет выводить лог в файл и на stdout.
Страницы: 1
Читают тему