PHPでバッチ処理の中でSCPでリモートからファイルを持ってくるプログラムを作成しています。
バッチの中で、scp -B ....という形でコマンドを打てるようになったのですが、ファイルが取得に失敗した場合、
scp: warning: Missing destination file.
という表示が出た後にSCPのオプションが表示されるようになりました。
こちらが出さずにエラー終了する方法はありませんでしょうか?
exec( "scp -B ... 2> /dev/null");
などとしても出てきますか?
http://www.h7.dion.ne.jp/~matsu/feature/bash/basic/redirect-...
> exec( "scp -B ... 2> /dev/null");
scpはコマンド。
2>/dev/nullは、SHELLのパラメータになるので動作せず
scp は、 パラメータに 2 > /dev/nullが指定
されたと思って動作しています。
対策としては、2> /dev/null を消す。
http://www.opaopa.org/~yuyama/manual/php/data/function.exec....
ありがとうございます。
前の回答は、ポイント不要
scpに-qオプションをつけたら出なくなるかもしれません。
http://www.unixuser.org/~euske/doc/openssh/jman/scp.html
================================================
scp.shを作成
chmod 755 scp.sh
呼び出し方法をscpからscp.shに変更する。
PHPで呼び出しする場合、パラメータパスワード
等の固定部分があれば scp.shに事前記述
した方がよいかも。
#!/bin/bash
scp $* 2>/dev/null >/dev/null
RC=$?
exit $RC
エラーは事前で行うことにしましたのでいったんこちらの質問を閉じさせていただきます。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | haru1234 | 12回 | 10回 | 0回 | 2006-08-03 15:47:29 |
ありがとうございます。こちら、試してみます。