У меня есть следующая запись в кронтабе:Перенаправление вывода в хронах
0 5 * * * /bin/bash -l -c 'export RAILS_ENV=my_env; cd /my_folder; ./script/my_script.rb 2>&1 > ./log/my_log.log'
Результат этого является то, что я получаю выход ./script/my_script.rb
./log/my_log.log
в. Такое поведение желательно. Любопытно, что я также получаю вывод в своей местной почте. Мне интересно, как вывод моего сценария записывается по почте. Поскольку я перенаправляю вывод в файл журнала, я бы ожидал, что мое задание cron не будет выводиться, и, таким образом, я не получил бы почту, когда будет выполняться задание cron. Может ли кто-нибудь пролить свет на то, как почта может получить вывод ./script/my_script.rb
?
N.B. вы также можете использовать '&>' для перенаправления обоих одновременно. Он работает в zsh и bash. – Kevin
У меня создалось впечатление, что мой синтаксис перенаправлен stderr в stdout и stdout в файл журнала, нет? Не могли бы вы объяснить немного дальше? Спасибо за помощь. –
Ваш перенаправленный stderr туда, куда шел stdout (т. Е./Dev/stdout), а затем stdout в файл журнала. Stderr не изменяется после второго перенаправления. Он по-прежнему будет/dev/stdout. – dogbane