Как скрыть вывод приложения оболочки в Linux?

Можно ли, возможно, разместить программное обеспечение уведомления на другом хосте в другом местоположении/на другое Интернет-соединение, но иметь ли его, решают к субдомену текущего домена? Например, если Вы в настоящее время контролируете по example.com, Вы могли бы переместить свой сервис в monitor.example.com и начать отправлять уведомления оттуда.

Что касается утилиты, Вы могли бы изучить Nagios - это - довольно полный комплект контролирующих инструментов, которые могут наблюдать веб-сервисы, FTP, электронную почту, работы. Можно разместить его отдельно и просто настроить все основные сервисы для отправки состояния в хост Nagios, затем настроить Nagios для отправки предупреждений, если это не получает известие от основного сайта в течение определенного промежутка времени или если основной сайт начинает действовать неожиданно.

44
задан 17 July 2009 в 05:59
5 ответов

Можно перенаправить вывод любой программы так, чтобы это не было замечено.

$ program > /dev/null

Это перенаправит стандартный вывод - Вы будете все еще видеть любые ошибки

$ program &> /dev/null

Это перенаправит весь вывод, включая ошибки.

68
ответ дан 28 November 2019 в 19:40
  • 1
    Первый didn' t работают на wget –  Jader Dias 17 July 2009 в 06:07
  • 2
    That' s вызывают использование wget stderr для некоторых it' s вывод. Второй должен работать. –  theotherreceive 17 July 2009 в 06:08
  • 3
    Кстати, Вы могли бы хотеть сохранить это вывод wget к файлу журнала, поэтому когда/если Ваша загрузка прекращает работать, можно выяснить почему. Если it' s в сценарии так или иначе. Если это - одноразовый выполненный тип, то да, к мусору –  Matt Simmons 17 July 2009 в 06:17

Существует три устройства IO, доступные на командной строке.

 standard in - 0 
 standard out - 1 
 standard error - 2 

Чтобы перенаправить стандарт (вывод по умолчанию) в файл (и перезаписать файл), использовать

 command > file.log 

Для добавления к file.log используйте 2> s

 command >> file.log

для перенаправления стандартной погрешности к file.log использовать

 command 2> file.log

и добавлять

 command 2>> file.log

Объединить выводы в один поток и отправить их всех в одно место

 command > file.log 2>&1 

Это отправляет 2 (stderr) в 1 (stdout) и отправляет stdout в file.log

Заметьте, что также возможно перенаправить стандарт в в команду, которая ожидает stdin

 command << file.txt 

Править
Для получения дополнительной информации проверьте Усовершенствованное Руководство по созданию сценариев Bash

30
ответ дан 28 November 2019 в 19:40

Если Вы просто хотите скрыть вывод (и не сохранить его в файл), можно использовать:

Отредактированный:

Команда $ и>/dev/null

3
ответ дан 28 November 2019 в 19:40
  • 1
    Это перенаправит вывод в файл, названный пустым указателем –  theotherreceive 17 July 2009 в 06:03
  • 2
    Это генерировало пустой файл –  Jader Dias 17 July 2009 в 06:04
  • 3
    Вы wouldn' t означали/dev/null, не так ли? –  Babu 17 July 2009 в 06:09
  • 4
    Да, я имел бы, Господин. Я подразумевал, что $ управляют & >/dev/null. Мои извинения за ввод слишком быстро для моей собственной пользы. –  Lucho 17 July 2009 в 06:13

Для Mac OS X (10,6 "Snow Leopard"):

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

stty flusho; command ;stty -flusho

или если Вы просто хотите скрыть вход от терминала между прочим:

stty  -echo; command ;stty  echo

См. stty (1) страница руководства для получения дополнительной информации

Для Linux все, что я знаю, - то, что Ubunutu (10.04 "Ясных") и некоторый "Debian/Arch" (прокомментировал ниже - tnx hendry) не имеет flusho установка (и я ничего не вижу другое соответствующее в странице справочника). echo установка работ над Ubuntu так или иначе.

2
ответ дан 28 November 2019 в 19:40

Скрыть stdout

./command >/dev/null

Скрыть stdout и stderr

./command >/dev/null 2>&1

Hide stdout и stderr и отпустите терминал (запустите команду в фоновом режиме)

./command >/dev/null 2>&1 &
12
ответ дан 28 November 2019 в 19:40

Теги

Похожие вопросы