Вопрос

I am trying to use exec(), system(), passthru() or anything to read in the output of iscsiadm -m session, am not having much luck, and a little lost.

What I (think i) know:

  • It is not a sudoers or permission problem, as the results are the same in a terminal or browser (and my sudoers is already successfully setup to use iscsiadm for login/out)
  • Executing the following command from a terminal, iscsiadm -m session > /tmp/scsi_sess yields an empty scsi_sess file

What I need to know:

  • Where is the output getting sent, that I can not read it with a bash or php script but can see it in the terminal?
  • How can I read the output, or get output sent somewhere that I can read it?
Это было полезно?

Решение

With your syntax you're catching only the stdout. You should redirect the stderr on the stdout with

iscsiadm -m session 2>&1 /tmp/scsi_sess

Remember, when you do a redirect with > file and you still see output, that output is from stderr and not from stdout

http://en.wikipedia.org/wiki/Standard_streams

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top