Search code examples
phplinuxiscsi

php get iscsi output linux


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?

Solution

  • 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