Cron отправляет вывод по почте. Если вы хотите увидеть выходные данные в терминале, вы можете войти в файл и использовать tail -f для просмотра выходных данных в терминале, который вы хотите увидеть в выходных данных.
Вход в файл
- Самый простой ответ - войти прямо в файл с записью в crontab, например:
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Альтернативные способы входа:
- Если ваша программа представляет собой сценарий, в который можно писать, вы можете изменить его, чтобы перенаправить вывод в файл журнала с помощью.
echo output > log.txt
Или вы можете использовать скрипт- обертку, описанный ниже.
- Если ваша программа является бинарной или недоступной для записи другим способом, вы должны написать скрипт- обертку, чтобы записать вывод в файл.
Пример программы и сценария оболочки:
$ cat program.sh wrapper.sh
#!/bin/bash
# sample program
echo "arg 1=$1 arg2=$2 arg3=$3"
echo "sample error" >&2
#!/bin/bash
# sample wrapper
exec ./program.sh "$@" >log.txt 2> error.txt
Пример прогона 1:
$ ./wrapper.sh 1 2 3 ; cat error.txt log.txt
sample error
arg 1=1 arg2=2 arg3=3
Пример прогона 2:
$ ./wrapper.sh "A B C" D E ; cat error.txt log.txt
sample error
arg 1=A B C arg2=D arg3=E
Просмотр вывода в терминале:
Теперь, когда вы регистрируете как стандартную ошибку, так и стандартную ошибку в файле, в любом терминале вы можете запустить tail -f
один или оба файла, например tail -f log.txt
или tail -f log.txt error.txt
около того, что tail будет отслеживать или, скорее, следовать файлам изменений для внесения изменений. хвостовая страница
$ tail -f log.txt error.txt
==> log.txt <==
arg 1=1 arg2=2 arg3=3
==> error.txt <==
sample error
Регистрация файлов, добавленных впоследствии:
Если позднее log.txt или error.txt добавляются из вашей программы или из другого терминала, например $ echo "more output" >> log.txt
, вывод отображается на работающем терминале$ tail -f log.txt error.txt
==> log.txt <==
more output
Кроме того, в $ echo code red >> error.txt
результате:
==> error.txt <==
code red