Невозможно перенаправить вывод команды в файл (для статуса постфикса) - PullRequest
3 голосов
/ 14 декабря 2011

Я пытаюсь запустить следующую команду:

postfix status > tmp

однако полученный файл никогда не имеет никакого записанного содержимого, а вместо этого вывод все еще отправляется на терминал.

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

postfix status 2>&1 > tmp

Другие команды работают без проблем.

Ответы [ 3 ]

5 голосов
/ 28 июня 2012
script -c 'postfix status' -q tmp
1 голос
/ 14 декабря 2011

Похоже, что он пишет в терминал вместо стандартного вывода. Я не понимаю, что трубка для «эхо», вы имели в виду трубку для «кошка»?

Я думаю, что вы всегда можете использовать команду 'script', которая регистрирует все, что вы видите на терминале. Вы должны запустить «скрипт», затем свою команду, а затем выйти.

0 голосов
/ 14 декабря 2011

Спасибо другому пользователю SO, который удалил свой ответ, так что теперь я не могу поблагодарить, я был на правильном пути. Я нашел ответ здесь:

http://irbs.net/internet/postfix/0211/2756.html

Так что для тех, кто хочет быть в состоянии уловить ответ posfix, я использовал следующий метод.

Создайте скрипт , который заставляет вывод идти туда, куда вы хотите. Я сделал это так:

#!/bin/sh
cat <<EOF | expect 2>&1 
set timeout -1 
spawn postfix status
expect eof 
EOF

Затем я запустил скрипт (скажем, script.sh) и мог оттуда направить / перенаправить. то есть script.sh> file.txt

Мне нужно было это для PHP, чтобы я мог использовать exec и фактически получить ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...