イントラ内にあるlinuxのsambaサーバーのファイルを、おなじくlinuxのほかのサーバーからscpでコピーするのにはまった話。
ssh2_scp_recvでコピーするには、ファイル名を明記しないと操作できない(ワイルドカードはNG)。sambaサーバー側は、ログインシェルはrsshにすると、ファイルリストが取得できない。bash等にすればよいが、いくらイントラでもセキュリティ的にNGなので、rsshで行う(実は、rsshの設定でもはまりこんだが、バージョンを2.3.3にしたら何故か巧く行くようになった)
phpサイトのオンラインマニュアルに、opendirを使用してファイルリストを取得するサンプルが記載してあったので、そのまましてみたがエラーで取得できない。
あれこれ試行錯誤をして発見
$dir = “ssh2.sftp://$sftp/outgoing”
の、outgoingはルートから指定する必要がある。
コメント