[PHP-users 34581] Re: php(コマンドライン版でない!)からrsyncでサイトを同期させる方法

kato @ officeants.net kato @ officeants.net
2009年 5月 16日 (土) 01:28:35 JST


山本さま
下記メールありがとうございます。

>  rsync で、パスワードを聞かれない方法はあります。
> ssh をパスワード認証でなく、key ファイル認証に変更し、
> key ファイル作成時、passphraseをNULLで作成する事です。
> 接続先のサーバ環境の変更が必要かもしれませんので、ダメかも。
おっしゃるとおりなのです。
レンタルサーバーの制限で、keyファイルをサーバー側でできませんでした。

↓
> #expectコマンドで、ファイル内にパスワードを記載するよりは、
> #key ファイル認証の方が安全な気がする。。
そうですね。
パスワード自体、テストサーバーに残してしまうことになりますからね。。

ですが、いろいろな制限がある中でしたので、結局
大家さま案の結局expectで作成しました。
シェルスクリプト.sh
#!/usr/bin/expect --

set timeout 25
spawn /bin/bash
send "su aaaa\r"
sleep 1
expect -re ":"
send "パス\r"
expect -re ""
send
"/usr/bin/rsync --progress --dry-run -azC --force --delete --exclude-from=/h
ome/aaa/www/trunk/sf_root/rsync_setting/rsync_exclude.txt
/home/animeca/aaa/trunk aaa@ホスト:/home/aaa/www/trunk\r"
expect -re "password:"
sleep 3
send "パスワード\r"
expect -re "total size is"
send "exit\r"

これを、phpで呼び出すことで、、とりあえず完成しました。
(蛇足ですが、PHPオンリーでもし作成したい場合phpのExpect関数らしきものがあり
ました。。)

大家さま
かめおやじさま
山本さま
いおいろアドバイスありがとうございました。
おかげさまでなんとか、、理想に近い?形でできました。

__
加藤



PHP-users メーリングリストの案内