1

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

Я пытаюсь захватить вещи, которые были ECHO'd в скрипте, а также любые сообщения об ошибках, отображаемые на терминале. (т. е. /Users/topher/program.sh: строка 58: В доступе отказано)

Это возможно? Какую команду можно прочитать с терминала или с выхода программы?

Спасибо! Тофер

3 ответа3

0

Если команда, которую вы запускаете из cron, выглядит следующим образом, все сгенерированные выходные данные будут записаны в файл logfile.log

/Users/topher/program.sh > logfile.log

Приведенная выше команда очистит файл logfile.log и заполнит его выводом, сгенерированным скриптом program.sh . Команда ниже добавит вывод.

/Users/topher/program.sh >> logfile.log
0

Используйте tee для вывода на экран и в файл.

./some/thing | tee thing.log

Возможно, вы захотите перенаправить stderr в stdout чтобы выгрузить их обоих в файл журнала.

    ./some/thing 2>&1 | tee thing.log
0

Я не знаю о терминальном приложении OS X, но некоторые терминалы, такие как xterm могут быть запущены с опцией, которая записывает все, что появляется на дисплее, в файл. Еще одна возможность - запустить программу- script , которая записывает все символы в терминал и из терминала в файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .