Intereting Posts
Увеличивает ли / var размер? Как получить использование физической памяти в Solaris с помощью командной строки Как я могу получить версию сервера Fedora и Opensuse? Почему окно входящих вызовов Skype исчезает в Awesome WM? Как определить максимальное число, которое нужно передать, чтобы сделать -j опцией? Ожидайте парики, когда я использую одинарную кавычку в Использовать трекер от поставщика поиска гномов (для поиска в «Деятельности») | GNOME 3.16 Сценарий оболочки выдает неполадку при запуске из файла sh. Но если ввести вручную, то команды работают Какая программа постоянно читает электронные письма и может выполнять действия при определенных условиях? Ожидание сбоя сценария при запуске из cron, но работает при запуске вручную Не администратор, как установить локальный GCC вместо предоставления? Утерянные учетные данные для виртуальной машины Linux Не удалось установить статический IP-адрес У вас есть сценарий bash для ожидания пароля Отфильтруйте пути из текстового файла, который глубже, чем их непосредственный предшественник

Почему возможно> / dev / null 2> & 1 не работает?

Запуск Ubuntu 16.04 Я добавил следующее в / etc / crontab:

* * * * * root wget https://www.exmaple.org/bus/ >/dev/null 2>&1 

Задача cron работает правильно, но результат записывается как файл в / root /, а не отбрасывается, как ожидалось. Будучи новичком в Linux, я полагаю, что мне не хватает чего-то элементарного, но честный поиск не принес ничего, что кажется родным.

>/dev/null отбрасывает стандартный вывод команды. В вашем примере нет ни одного. 2>&1 заставляет стандартную ошибку команды отбрасываться. В вашем примере это содержит информацию о состоянии и ошибках, отображаемую wget.

Если URL-адрес действителен (например, если сервер возвращает некоторый контент для страницы), wget сохраняет содержимое страницы в файле. Это не показывает стандартный вывод wget и стандартную ошибку wget: это некоторые данные, которые wget сохраняет в файле. На это не влияют перенаправления, так как wget выводит на файл, который открывается по имени, а не на стандартный поток.

Если вы не хотите сохранять выход в любом месте, скажите wget, чтобы сохранить его в /dev/null :

 wget -O /dev/null … 

Обратите внимание, что ошибки в задании cron полезны, но Ubuntu отбрасывает их по умолчанию. Вывод задания cron (стандартный вывод и стандартная ошибка) отправляется локальной почтой; см. Как администраторы должны читать почту root? как это сделать. Раздражающе, wget производит много выходных данных, даже если все работает нормально, у него нет возможности отображать только ошибки. Вы можете обойти это, сохранив вывод и отбросив его, если команда выполнена успешно:

 trace=$(wget … 2>&1) || echo "$trace" >&2