Прочитать все, что было выведено и отображено в окне терминала?
416
Topher
Я унаследовал сложный сценарий оболочки, работающий на OSX, который запускается в crontab. В рамках скрипта я хотел бы периодически читать все в окне терминала и записывать его в другой файл ... вроде как файл журнала, который я могу просмотреть позже.
Я пытаюсь захватить вещи, которые были ECHO'd в скрипте, а также любые сообщения об ошибках, отображаемые на терминале. (т. е. /Users/topher/program.sh: строка 58: В доступе отказано)
Это возможно? Какую команду можно прочитать с терминала или с выхода программы?
Спасибо! Тофер
3 ответа на вопрос
0
BloodPhilia
Если команда, которую вы запускаете из cron, выглядит следующим образом, все сгенерированные выходные данные будут записаны в logfile.logфайл
/Users/topher/program.sh > logfile.log
Приведенная выше команда очистит logfile.logфайл и заполнит его выводом, сгенерированным program.shскриптом. Команда ниже добавит вывод.
/Users/topher/program.sh >> logfile.log
0
Benjamin Bannier
Используйте teeдля вывода на экран и в файл.
./some/thing | tee thing.log
Возможно, вы захотите перенаправить, stderrчтобы stdoutсбросить их обоих в файл журнала.
./some/thing 2>&1 | tee thing.log
0
garyjohn
Я не знаю о терминальном приложении OS X, но некоторые терминалы, такие как, xtermмогут быть запущены с опцией, которая записывает все, что появляется на дисплее, в файл. Другая возможность - запустить scriptпрограмму, которая записывает все символы в терминал и из терминала в файл.