Сообщение об ошибке:
stdin: is not a tty
предполагает, что что-то в ваших хронах пытается прочитать данные из стандартного ввода. Задание, вызванное cron , не должно делать этого (если, конечно, его стандартный ввод не перенаправлен). Небольшой эксперимент показывает, что стандартный ввод задания cron пуст и не является tty. Если я бег vi
как хроны (не пытайтесь повторить это дома), я получаю сообщение об ошибке нечетного по электронной почте, включая эти предупреждения:
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
Таким образом, вы, по-видимому работаете что-то в вашем cron, что (a) предполагает, что он может читать от stdin
, и (b) предполагает, что stdin
подключен к терминалу, т. е. это какая-то интерактивная команда.
Если вы можете, вы должны отследить, какая команда делает эти предположения, и исправить ее, а не просто отбросить сообщение об ошибке.(Последний напоминает решение проблемы сигнальной лампы на приборной панели вашего автомобиля, накрывая ее лентой.)
Либо не вызывайте интерактивную команду из вашего кронтаба, либо найдите способ сделать любую команду, вызывать запуск в каком-то «пакетном режиме».
С другой стороны, с другой стороны, возможно, что вам необходимо запустить некоторую интерактивную команду из задания cron, и заставить его вести себя правильно слишком сложно. В этом случае вы можете отказаться от сообщения об ошибке, как предлагает Steve Kehlet's answer.
Если у вас есть трудности отслеживания проблемы, несколько полезных трюков:
Test хрон рабочих мест временно работает их каждую минуту:
* * * * * some-command
так что вы только должны ждать меньше минут, чтобы увидеть результаты. Если команда является скриптом, попробуйте уменьшить ее до минимального примера, который показывает проблему.
Вы также можете обновить свой вопрос, чтобы показать нам свою запись crontab и скрипт, который вы используете (если скрипт не слишком велик).
Возможно, вы захотите добавить фактическую запись crontab в свой вопрос, так как это поможет многому определить, какое должно быть перенаправление выходных данных. Скорее всего, вы ищете что-то, что перенаправляет стандартную ошибку на '/ dev/null', что достигается добавлением' 2>/dev/null' в конце команды. –
но мне нужны ошибки Сообщения для уведомлений ... так что я бы только подавил этот вывод: stdin: не является tty ..... я должен знать, что происходит – user3201974
Если вы «должны знать, что происходит», вы необходимо более подробно объяснить вашу проблему. Обновите свой вопрос, чтобы показать нам строку из вашего crontab. Сценарий, выполняемый из cron, не должен начинать читать с 'stdin' в первую очередь; это, вероятно, корень вашей проблемы. –