Что означает «> /dev /null 2 ​​& 1» в этой статье основы crontab? [дубликат]

sys.stderr

Это похоже на потому что он также непосредственно выводит в консоль. Но разница в том, что он печатает только сообщения об исключениях и ошибках. (Вот почему он называется стандартной ошибкой).

Проиллюстрируем это на примере.

import sys

stdout_fileno = sys.stdout
stderr_fileno = sys.stderr

sample_input = 

for ip in sample_input:
    # Prints to stdout
    stdout_fileno.write(ip + '\n')
    # Tries to add an Integer with string. Raises an exception
    try:
        ip = ip + 100
    # Catch all exceptions
    except:
        stderr_fileno.write('Exception Occurred!\n')

Выход

Hi
Exception Occurred!
Hello from AskPython
Exception Occurred!
exit
Exception Occurred!

Как вы можете заметить, для всех входных строк мы пытаемся добавить к Integer, что вызовет исключение. Мы перехватываем все такие исключения и печатаем еще одно сообщение отладки с помощью .

Аналоги > и >> в PowerShell

Если вы знакомы с операторами командной строки Linux, то вы можете знать, что оператор «>» перенаправляет вывод в файл, если файл существует, то он перезаписывается, если файл не существует, то он создаётся и в него записывается содержимое.

В PowerShell этот оператор также работает, например, в следующей команде результат работы командлета будет сохранён в файл man.txt:

Get-Help about_Comparison_Operators -Full > man.txt

В Linux существует ещё один оператор для перенаправления стандартного вывода, это «>>», который работает аналогично предыдущему, но если файл уже существует, то вместо перезаписи, новые данные дописываются в файл, например, следующая команда допишет выводом командлета содержимое файла man.txt, а если его нет, то создаст этот файл:

Get-Help about_Comparison_Operators -Full >> man.txt

В PowerShell вы можете использовать «>» и «>>» если вам достаточно простого перенаправления вывода в файл. Также имеется командлет Out-File который кроме выполнения перенаправления вывода имеет дополнительную функциональность.

Как исправить ошибку «Не могу загрузить файл»?

Если ваш файл меньше квоты в 100 ГБ, но все еще не продвигается, возможно, что-то не так с системой обмена файлами — SharePoint и OneDrive. В этом разделе мы увидим, как обойти такое непредсказуемое поведение.

Связанный: Как установить изображение профиля Microsoft Teams

Устранение неполадок SharePoint и OneDrive

Если у вас возникли проблемы с загрузкой файлов на собрания или чаты Microsoft Teams, вам следует проверить, не работают ли службы временно или недоступны. Как уже говорилось, Microsoft использует SharePoint и OneDrive для бизнеса, чтобы удовлетворить все ваши потребности в совместном использовании файлов. Итак, в зависимости от того, куда вы пытаетесь отправить файл, вам нужно будет последовательно устранять неполадки с SharePoint и OneDrive.

Поскольку у SharePoint нет отдельного веб-сайта, вам необходимо получить к нему доступ через Microsoft Teams. Перейдите на вкладку «Файлы» слева и нажмите «Microsoft Teams». Здесь у вас должен быть доступ ко всем файлам, к которым предоставлен общий доступ в SharePoint. Если вы не можете получить доступ к этой области, проблема заключается в SharePoint, а не в Teams.

В OneDrive, с другой стороны, есть специальная область для устранения неполадок. Просто перейдите на онлайн-портал Microsoft Office и щелкните значок OneDrive в левой части экрана. Если вы не можете получить доступ к разделу и увидеть все сохраненные файлы, возможно, сервер OneDrive временно отключен.

Связанный: 11 способов исправить неработающий звук Microsoft Teams, отсутствие проблем со звуком

Загрузить как Zip-файл

Хотя Microsoft Teams поддерживает почти все обычные типы файлов, приложение часто сталкивается с проблемами при обработке файлов мультимедиа, а точнее видео файлов. Итак, если вы столкнулись с проблемой только при загрузке медиафайлов, мы рекомендуем заархивировать их и поделиться файлом Zip. Получатели, конечно, не смогут запустить его на платформе, но, по крайней мере, ваш файл легко дойдет до места назначения.

Поделиться ссылкой на файл

Конечно, делиться файлами напрямую с членами команды — это удобно, но это не самый надежный процесс. Итак, если это не слишком большая проблема, рассмотрите возможность загрузки файлов на сервер обмена файлами по вашему выбору — Google Диск или OneDrive — и поделитесь ссылкой на файл с членами вашей команды. Обязательно дайте им разрешение на редактирование файла, если это необходимо.

Проверить разрешение SharePoint

Если вы пытаетесь загрузить файлы на канал, убедитесь, что у вас есть на это разрешение. Однако, если вы впервые сталкиваетесь с этой ошибкой, возможно, кто-то внес изменения в сайт SharePoint Online, что не позволило вам получить доступ к системе обмена файлами. Попросите администратора вашей организации разобраться в этом вопросе и восстановить ваше разрешение.

Связанный: Как решить проблему Microsoft Teams, постоянно появляющуюся на экране

Проверьте ваше интернет-соединение

Ни одно из решений или обходных путей не помогло вам? Подумайте о том, чтобы дважды проверить свое интернет-соединение на этом этапе. Зайдите на несколько обычных веб-сайтов и посмотрите, все ли работает должным образом. Вы также можете воспроизвести пару видеороликов и загрузить файл на сервер. Если ваше интернет-соединение действительно является виновником, вы, вероятно, не сможете смотреть требовательные видео или загружать файлы среднего размера без потери пакетов.

Основные команды PuTTY

Как говорилось ранее, для использования удаленного компьютера нам необходимо вводить различный набор команд. Их огромное множество, но для первоначального изучения достаточно знать лишь их небольшую часть. 

ls — предназначена для вывода файлов, содержит в себе набор команд:

  • ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
  • ls -lha — также выводит файлы, но показывает размер файла в байтах;
  • ls -lha | less — используется для постраничного просмотра документов.

cd — необходима для перемещения между директориями, например, cd перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd ~ открывает корневую папку.

echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».

sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.

df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df .

mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv .

rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm .

cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp .

mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.

cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat .

mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.

chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod .

pwd — при первом запуске терминала мы оказываемся в домашнем каталоге пользователя. Если вдруг каталог был изменен, то проверить это можно с помощью данной команды.

touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch .

man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.

locate — предназначена для поиска файла в системе Linux.

Это была лишь небольшая часть команд, которые можно использовать при подключении по SSH. Если вы только начинаете изучать основы администрирования серверов, то этого списка будет достаточно.

Перегрузка operator

Перегрузка аналогична перегрузке (оба являются бинарными операторами), за исключением того, что у первого типы параметров разные.

Рассмотрим выражение . Если оператор – это , каковы операнды? Левый операнд – это объект , а правый операнд – это объект вашего класса . на самом деле является объектом типа . Следовательно, наша перегруженная функция будет выглядеть так:

Реализация для нашего класса довольно проста – поскольку C++ уже знает, как выводить значения с помощью , а все наши члены являются , мы можем просто использовать для вывода переменных-членов нашего класса . Вот приведенный выше класс с перегруженным .

Это довольно просто – обратите внимание, насколько наша строка вывода похожа на строку в функции , которую мы написали ранее. Наиболее заметным отличием является то, что стал параметром (который будет ссылкой на при вызове функции)

Самая сложная часть здесь – это тип возвращаемого значения. Для арифметических операторов мы вычисляли и возвращали один ответ по значению (потому что мы создавали и возвращали новый результат). Однако если вы попытаетесь вернуть по значению, вы получите ошибку компиляции. Это происходит потому, что специально запрещает копирование.

В этом случае мы возвращаем левый параметр в качестве ссылки. Это не только предотвращает создание копии , но также позволяет нам «объединять в цепочку» команды вывода, например,

Изначально вы могли подумать, что, поскольку не возвращает значение вызывающей стороне, мы должны определить функцию как возвращающую . Но подумайте, что произойдет, если наш вернет . Когда компилятор вычисляет , из-за правил приоритета/ассоциативности, он вычисляет это выражение как . вызовет нашу перегруженную функцию , возвращающую . Тогда частично вычисленное выражение становится: , что не имеет смысла!

Вместо этого, используя параметр в качестве возвращаемого значения, возвращает . Тогда наше частично вычисленное выражение становится: , которое затем также вычисляется!

Чтобы доказать, что это работает, рассмотрим следующий пример, в котором используется класс с перегруженным , который мы написали выше:

Этот код дает следующий результат:

Как настроить PuTTY

В настройках программы нет ничего сложного. Давайте откроем программу и посмотрим, что в ней есть. После запуска перед нами отобразится окно конфигурации приложения, где слева находятся различные категории, а справа – их настройки.

Программа включает в себя 4 основных раздела:

  • Session — основная вкладка, предназначенная для подключения к удаленному компьютеру. Здесь вводятся параметры подключения, порт, адрес, а также вносятся так называемые пресеты, которыми можно воспользоваться, чтобы не вводить каждый раз данные для входа. Достаточно один раз прописать настройки сессии, сохранить ее и использовать при следующем запуске программы.
  • Terminal — необходима для включения или отключения возможностей терминала.
  • Window — здесь производятся все настройки интерфейса: внешний вид окна, цвет, шрифт и кодировка.
  • Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации и других значений.

Нам потребуется всего две вкладки: Session и SSH. Первым делом перейдем ко второй и убедимся, что версия протокола стоит в значении «2». Как правило, сейчас используется понятие SSH-2, так как первая версия практически не применяется из-за существенных недостатков, например, ошибки в схеме обеспечения безопасности.

Вернемся к разделу Session, где находятся основные параметры, которые потребуются нам для подключения к серверу по SSH. Давайте немного остановимся и поговорим о них:

  1. Первый блок включает в себя основные параметры, необходимые для подключения: окно ввода IP-адреса и порта, строку с выбором типа подключения.
  2. Следующий блок предназначен для создания пресетов, которые можно использовать для быстрого подключения к удаленному компьютеру. В строку «Saved Sessions» вводится название сессии, оно сохраняется с помощью кнопки «Save». Чтобы воспользоваться сохраненным пресетом, достаточно его загрузить с помощью кнопки «Load».
  3. Последний блок – параметры закрытия окна при выходе. Доступные значения: always, never, only on clean exit.

Как видите, в настройках PuTTY нет ничего сложного. Теперь давайте перейдем к подключению по протоколу SSH.

Как подключиться к серверу без пароля

Не всегда удобно каждый раз вводить пароль для входа на удаленное устройство. Комфортнее, когда вход выполняется автоматически и без лишних усилий. В PuTTY существует такой способ – использование авторизации по ключу SSH. Настроить его можно следующим образом:

  1. Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
  2. Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
  3. Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
  4. Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
  5. Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
  6. Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.

Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.

Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов

Спасибо за внимание!

stdout и stderr

Всякий раз, когда запускается какая-либо утилита командной строки, она генерирует два типа вывода: стандартный вывод выполнения команды отправляется в stdout, а сообщения об ошибках (если таковые есть) — в stderr.

По умолчанию stdout и stderr связаны с окном (или консолью). Это означает, что всё, что отправляется в stdout и stderr, обычно отображается на нашем экране. Но с помощью перенаправления вывода мы можем изменить это поведение. Например, мы можем перенаправить вывод stdout в файл. Таким образом, вместо отображения информации о выполнении команды на экране терминала, она будет сохранена в файле, который мы позже сможем прочитать. Или же можно перенаправить stdout на физическое устройство, скажем, на цифровой ЖК-дисплей.

В Linux-системах stdout имеет файловый дескриптор , а stderr — файловый дескриптор . Используя данные дескрипторы, мы можем перенаправлять вывод из stdout и stderr в другие файлы:

    используется для перенаправления стандартного вывода данных (stdout);

    используется для перенаправления вывода сообщений об ошибках (stderr). Например, отправляет сообщения об ошибках в «чёрную дыру», а — в файл error.log.

    используется для перенаправления как стандартного вывода данных (stdout), так и вывода сообщений об ошибках (stderr).

8 ответов

Лучший ответ

Я думаю, что есть более элегантный способ решить проблему: отправить stdout / stderr в syslog с идентификатором и указать вашему менеджеру syslog разделить его вывод по имени программы.

Используйте следующие свойства в файле служебной единицы systemd:

Затем, если ваш дистрибутив использует rsyslog для управления системными журналами, создайте файл в со следующим содержанием:

Теперь сделайте файл журнала доступным для записи для syslog:

Перезапустите rsyslog () и наслаждайтесь! Ваша программа stdout / stderr по-прежнему будет доступна через journalctl (), но они также будут доступны в выбранном вами файле.

259

kubanczyk
11 Июн 2019 в 16:02

Мы используем Centos7, приложение для весенней загрузки с systemd. Я запускал Java, как показано ниже. и установка StandardOutput в файл не работала для меня.

Ниже временное решение, работающее без установки StandardOutput. запуск java через sh, как показано ниже.

2

Santhosh Hirekerur
3 Дек 2019 в 01:06

Вы можете получить такую ​​ошибку:

На странице руководства :

На странице руководства объясняются другие параметры, связанные с ведением журнала. См. Также справочные страницы и .

Или, может быть, вы можете попробовать такие вещи (все в одной строке):

51

Community
20 Июн 2020 в 09:12

Я бы предложил добавить файлы и в сам файл systemd .

Ссылка:

Как вы настроили, ему не должно понравиться:

Должен быть:

Это работает, если вы не хотите перезапускать службу снова и снова .

Будет создан новый файл, а не добавлен к существующему.

Используйте вместо:

ПРИМЕЧАНИЕ. Убедитесь, что вы уже создали каталог. Я предполагаю, что он не поддерживает создание каталога.

46

Rajat jain
1 Авг 2019 в 14:14

Короткий ответ:

Если вы не хотите, чтобы файлы очищались каждый раз при запуске службы, используйте вместо этого append:

6

Arnett Rufino
5 Янв 2020 в 14:53

Если по какой-то причине нельзя использовать rsyslog, это подойдет:

22

Tigra
11 Сен 2017 в 20:44

Если у вас более новый дистрибутив с более новым ( версия 236 или новее), вы можете установить значения или на .

Длинная история:

В более новых версиях есть относительно новая опция (запрос github с 2016 г. и улучшение объединено / закрыто 2017 ish), где вы можете установить значения или на . Параметр задокументирован в самой последней {{X5} } справочную страницу.

Эта новая функция является относительно новой и поэтому недоступна для старых дистрибутивов, таких как centos-7 (или любые предыдущие версии CentOS).

85

Trevor Boyd Smith
1 Янв 2018 в 19:04

Предположим, что журналы уже помещены в stdout / stderr , а журнал модуля systemd находится в

Настроить rsyslog (служба системного журнала)

Перезапустите rsyslog

3

Hieu Huynh
30 Июн 2018 в 16:21

6 ответов

155

предназначен для перенаправления

— черная дыра, куда отправляются любые отправленные данные

— это дескриптор файла для стандартной ошибки

предназначен для перенаправления

— это символ дескриптора файла (без него следующий будет считаться именем файла)

— это дескриптор файла для стандартного вывода

Поэтому перенаправляет вывод вашей программы на . Включите как , так и .

Более подробная информация доступна на странице перенаправления ввода-вывода на странице документации Linux Documentation .

будет отправлять вам только по электронной почте, если есть какой-то результат работы. Когда все перенаправлено на , выход отсутствует и, следовательно, не отправит вам по электронной почте.

37

— это файл устройства, который действует как черная дыра. Все, что написано на нем, отбрасывается или исчезает. Когда вы запускаете скрипт, который дает вам выход, и если мы добавим в конце скрипта, мы просим сценарий написать все, что генерируется из сценария (как выходных, так и сообщений об ошибках), в .

Чтобы разбить его:

  • — это дескриптор стандартной ошибки или
  • — это дескриптор стандартного вывода или

запрашивает все как (т. е. обрабатывать все сообщения об ошибках, сгенерированные из сценарий как стандартный вывод). Теперь у нас уже есть в конце скрипта, что означает, что весь стандартный вывод () будет записан в . Поскольку теперь переходит в (из-за ) и и попадает в черную дыру . Другими словами, скрипт отключен.

Кстати, вам нужно иметь перед . Это должно быть:

12

Это стандартное перенаправление ввода-вывода.

Всегда открываются три файла по умолчанию.

  • stdin (0)
  • stdout (1)
  • stderr (2)

Итак, в этом примере stdout () перенаправляется на .

Устройство — это файл устройства, который отбрасывает все записанные на него данные.

Затем stderr затем перенаправляется в stdout (), поэтому оба stdout и stderr перейдут к

Таким образом размещение этого в конце задания crontab будет подавлять все выходные данные и ошибки из команды.

Ссылка

6

Из руководства cron (8) :

Итак, что предлагает ваша статья, это не производить вывод, не отправляя почты.
Другой способ (более удобный?) Для отключения почты — использовать параметр , т. Е.

Теперь к синтаксису: это специфично для языка оболочки Bourne (и его производных, таких как , и т. д.).

будет перенаправлять на дескриптор файла (или стандартный вывод, если не указано), в дескриптор файла .

Дескриптор файла может быть именем файла адреса потока. — это адресный оператор, как на языке C.

Обычно дескриптор файла — это стандартный вывод (aka stdout ), а дескриптор файла — стандартная ошибка (aka stderr ). Часть

перенаправляет stdout на /dev /null.

перенаправляет поток ошибок в выходной поток, который был перенаправлен на /dev /null. Таким образом, никакой выпуск не создается, и никакая почта не отправляется.

Предупреждение: порядок перенаправления имеет значение:

не совпадает с

Попробуйте выполнить эти две команды с непривилегированным пользователем:

В самом деле, в более позднем случае файловый дескриптор установлен на текущий адрес файлового дескриптора « 1 (который в данный момент равен stdout ) и то дескриптор файла перенаправляется на . Файловый дескриптор по-прежнему перенаправляется на stdout , независимо от того, что происходит с файловым дескриптором .

2

Обычно, когда выполняет cronjob, он отправляет результат команды, заданной в cronjob, в учетную запись пользователя, выполняющую cronjob. Поэтому, когда ваш cronjob выполняет , например, вывод отправляется пользователю по электронной почте.

Чтобы быть понятным, подразумевается стандартный вывод () команды.
Теперь, если вы выполните команду в cornjob следующим образом:

  • означает перенаправление chanel 2 () в chanel 1 ()). Оба выхода теперь находятся на одном канале ().
  • : означает, что стандартный вывод (и стандартный вывод ошибки) отправляется на . — специальный файл:

Итак, вы отбрасываете вывод, и cron не может отправить сообщение.

1

В справочном руководстве Redirection Bash говорится:

кратко: все сообщения STDERR и STDOUT будут перенаправлены на

Операторы перенаправления

В следующей таблице описаны операторы перенаправления потоков ввода и вывода команд.

Оператор перенаправления Описание
> Записывает данные на выходе команды вместо командной строки в файл или на устройство, например, на принтер.
< Читает поток входных данных команды из файла, а не с клавиатуры.
>> Добавляет выходные данные команды в конец файла, не удаляя при этом существующей информации из файла.
>& Считывает данные на выходе одного дескриптора как входные данные для другого дескриптора.
<& Считывает входные данные одного дескриптора как выходные данные другого дескриптора.
| Считывает выходные данные одной команды и записывает их на вход другой команды. Эта процедура известна под названием «канал».

По умолчанию, входные данные команды (дескриптор STDIN) отсылаются с клавиатуры интерпретатору команд Cmd.exe, далее Cmd.exe отправляет выходные данные команды (дескриптор STDOUT) в окно командной строки.

В следующей таблице представлены доступные дескрипторы.

Дескриптор Числовой эквивалент дескриптора Описание
STDIN Ввод с клавиатуры
STDOUT 1 Вывод в окно командной строки
STDERR 2 Ошибка вывода в окно командной строки
UNDEFINED 3-9 Эти дескрипторы определяются индивидуально для каждой прикладной программы.

Номера от 0 до 9 представляют первые 10 дескрипторов. Для запуска программы и перенаправления любого из 10 дескрипторов используется интерпретатор команд Cmd.exe. Для задания требуемого дескриптора перед оператором перенаправления введите его номер. Если дескриптор не определен, то по умолчанию оператором перенаправления ввода «» будет единица (1). После ввода оператора «» необходимо указать, откуда читать и куда записывать данные. Можно задать имя файла или любой из существующих дескрипторов.

Для задания перенаправления в существующие дескрипторы используется амперсанд (&), затем номер требуемого дескриптора (например, &номер_дескриптора). Например, для перенаправления дескриптора 2 (STDERR) в дескриптор 1 (STDOUT) введите

sys.stdin

Модуль Python предоставляет нам все три файловых объекта для stdin, stdout и stderr. В качестве объекта входного файла мы используем . Это похоже на файл, где вы можете открывать и закрывать его, как и любые другие файлы в Python.

Давайте разберемся на простом примере:

import sys

stdin_fileno = sys.stdin

# Keeps reading from stdin and quits only if the word 'exit' is there
# This loop, by default does not terminate, since stdin is open
for line in stdin_fileno:
    # Remove trailing newline characters using strip()
    if 'exit' == line.strip():
        print('Found exit. Terminating the program')
        exit(0)
    else:
        print('Message from sys.stdin: ---> {} <---'.format(line))

Вывод

Hi
Message from sys.stdin: ---> Hi
 <---
Hello from AskPython
Message from sys.stdin: ---> Hello from AskPython
 <---
exit
Found exit. Terminating the program

Выше фрагмент кода продолжает чтение входных данных из и выводит сообщение на консоли ( ) до тех пор , слово не встречаются.

Примечание. Обычно мы не закрываем объект файла по умолчанию, хотя это разрешено. Итак, — допустимый код Python.

Теперь, когда мы немного знаем о , перейдем к .

Еще примеры использования /dev/null

Допустим, мы хотим посмотреть, как быстро наш диск может считывать последовательные данные. Тест не очень точный, но его вполне достаточно. Для этого мы можем использовать команду . С помощью мы можем указать команде , что данные следует отправлять в /dev/null. Параметр указывает местоположение файла-источника, из которого будут считываться данные:

Другой пример. Допустим, у нас появилось желание проверить, как быстро будет скачиваться файл через наше сетевое соединение, но при этом мы не хотим без необходимости записывать данные на наш диск. Для этого достаточно указать /dev/null в качестве имени сохраняемого файла:

Перенаправление всего вывода в /dev/null

Иногда полезно избавиться от всех выходных данных. Есть два способа сделать это:

Часть означает «перенаправить данные из stdout в /dev/null», а часть означает «перенаправить данные из stderr в stdout». Таким образом мы перенаправили весь вывод команды в пустоту.

Примечание: В этом случае мы должны ссылаться на стандартный вывод (stdout) при помощи знака амперсанда — , а не просто . Запись перенаправит данные из stdout в файл с именем .

Стоит отметить, что здесь очень важен порядок: если вы измените параметры перенаправления следующим образом:

…то это сработает не так, как задумывалось. Часть перенаправит stderr в stdout, отобразит вывод на экране, после чего перенаправит stdout в /dev/null. Конечным результатом станет то, что вместо искомой информации вы увидите сообщения об ошибках. Если вы не можете запомнить правильный порядок составляющих, есть более простое перенаправление:

В этом случае эквивалентно выражению «перенаправить как stdout, так и stderr в /dev/null».

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: