Заставить Centos работать на Виртуальном Поле, в /etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Вы, возможно, должны были бы перезагрузить.
- Как просто Вывод STDOUT и поймать STDERR в файл? (я пытался ./test|Tee 2> Журнал, но не работает)
$ ./test 2>log
OUT!
$ cat log
ERR!
- Как просто вывести и ловить STDERR в файл?
$ ./test 2>&1 >/dev/tty | tee log
OUT!
ERR!
$ cat log
ERR!
Если это выражение должно было быть частью более крупного трубопровода, то вы можете избежать использование / dev / tty
. Один из способов сделать это, чтобы поменять STDOUT и STDERR. Чтобы сделать этот своп, нам нужно создать третью ручку файлов, как так:
$ exec 3>&1; ./test 2>&1 1>&3 | tee log; exec 3>&-
OUT!
ERR!
$ cat log
ERR!
Первое утверждение, EXEC 3> & 1
, назначает обработку файлов 3 к текущему stdout (все, что может быть). Затем ./ Тест 2> & 1 1> & 3 | Tee Log
Трубы STDERR в команду Tee
при отправке STDOUT в дескриптор файла 3. Наконец, для хорошей уборки уборки, Exec 3> & -
закрывает ручку файла 3.
Что касается:
Я могу выводить STDERR и завершить stdout в файл журнала:
$. / Test | Tee 1> Журнал Ошибка! log ИЗ!
Это может быть упрощено:
$ ./test >log
ERR!
$ cat log
OUT!
также относительно:
Я могу вывести ничего, кроме как ловить все Stdout и Stderro в файл журнала By:
$ ./test 2> & 1 | Tee 1> Журнал log ИЗ! Ошибка!
Это может быть упрощено:
$ ./test >log 2>&1
$ cat log
OUT!
ERR!
или, с Bash
, но не POSIX Shell, возможна еще прощая форма:
$ ./test &>log
$ cat log
OUT!
ERR!
Перенаправления раковин должны быть достаточно довольно. Во-первых, перенаправить STDERR
в файл ...
$ ./test 2> myfile.txt
Здесь STDOUT
остается экраном, поскольку он не был перенаправлен. MyFile.txt
будет содержать ошибку.
Затем, если вы хотите выводить оба, так и все еще поймать в файл
в файл, вам, вероятно, придется пройти два шага с небольшим количеством замены команды ...
$ ./test 2> >(tee myfile.txt >&2)
Это отправит Поток ошибки к процессу TEE
, который перепечатает их. Stdout
остается нетронутым. Для получения дополнительной информации посмотрите на этот вопрос переполнения стека .
Точно так же, если вы хотите поймать stdout
в файл, и покинуть STDERR
Нетронутые ...
$ ./test > >(tee myfile.txt)
Ладно, парни и девушки...
Просто чтобы обогатить эту тему, я подумал, что было бы лучше опубликовать ответ с общим упрощенным случаем.
Вывод stdout и stderr на терминал и захват stdout и stderr в файл...
Проверить вывод stdout и stderr на терминал и в файл...
rm -f test.log
ping 127.0.0.1 -c 6 2>&1 | tee test.log
cat test.log
Подтвердите вывод stderr на терминал и в файл...
rm -f test.log
ping e.r.r.or -c 6 2>&1 | tee test.log
cat test.log
Спасибо! =Д
[ Ссылка.:https://stackoverflow.com/a/12928057/3223785]