- PR -

PHP/scp+expectについて

1
投稿者投稿内容
ebi
会議室デビュー日: 2007/08/21
投稿数: 7
投稿日時: 2007-11-27 00:59
お世話になっています。

ブラウザからphpにアクセスした時にexecからscpをexpectで自動化したスクリプトを使って
ファイルをコピーしようとしています。
これ自体はできたのですが、たまにコピーできないことがあって困っています。
コピー元、コピー先は常に同じ場所なので権限関係の問題ではないと思っており、
原因がわからない状態です。

何かあったら教えて頂けると助かります。
よろしくお願いします。
// execからパスなしの鍵を使って直接scpを使う方法も試してみましたが
// コマンドが実行されなかったみたいなので
// このやり方でやっています(ここらへんも再確認する必要はありそうですが・・・)

最後にコードを張っておきます。

xyz.php
--------------------------------------------------
<?php
unlink( "./xyz" );

exec( "sh auto_scp.sh root password 192.168.1.100 /usr/local/sample/xyz ./" );

if( file_exists( "./VR101_C_start.sh" ) )
echo "ok";
else
echo "no";
?>

auto_scp.sh
--------------------------------------------------
#! /bin/sh

# $1: ユーザ名
# $2: パスワード
# $3: 接続先のIPアドレス
# $4: コピー先
# $5: コピー元

expect -c "
set timeout 20
spawn scp -q $1@$3:$4 $5

expect {

\\"Are you sure you want to continue connecting (yes/no)?\\" {

send \\"yes\\r\\"

expect \\"password:\\"

send \\"$2\\r\\"

} \\"password:\\" {

send \\"$2\\r\\"

}

}

interact

"
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-11-27 03:49
timeoutとか。
エラー出力をファイルに記録してみてはいかがでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)