アプリ版:「スタンプのみでお礼する」機能のリリースについて

linuxのサーバーが2台ありまして
クライアントがブラウザ上でボタンを押したら
サーバAにあるファイルをサーバBにコピーして同期をとりたいのですが、手順がわかっていてもそれをPHPで実現できずにいます。
PHPプログラム自体はサーバCに置いてあります。

手順として
1.sshでサーバBに接続
2.rootにログイン
3.rsyncでAよりBに該当ファイルの上書き
4.rootログアウト
5.切断
という流れなのですが。

ご教授いただければ幸いです。
よろしくお願いいたします。

A 回答 (3件)

サーバーBにはApache+PHPは実装できないのですか?


それであれば、サーバーBにHTTPベースでログインして
sudo経由でsystem系関数でrsyncコマンドを発行して
やるだけでいけそうですが・・・
    • good
    • 0
この回答へのお礼

クライアントの意向で
サーバBにはファイルのみしか置けないのです。


書き忘れてしまいましたが、PHPのバージョンは4.3.9です。

お礼日時:2006/06/29 11:55

であればソケット関数を参照ください。


AがクライアントとしてBに接続することになります。
ただ、rootになるようなコマンドをソースに
埋め込むことになるので運用には厳重注意が必要です

参考URL:http://www.php.net/manual/ja/ref.sockets.php
    • good
    • 0
この回答へのお礼

こういう関数もあるのですね
プログラム実行関数の方ばかり注目していました。

とりあえず、コチラを参考に作業してみます。

ありがとうございました。

お礼日時:2006/06/29 18:27

余計な事かもしれませんが、やはりrootでログイン、というのがとても気になりますね。


rootでログインするには、どうしてもrootのパスワードを書いておく必要がありますから。

サーバBでsudoを使って一般ユーザ(ログインユーザ)にrsync権限を与えておいて、rsyncで上書きさせるスクリプトをシェルスクリプトにしておけば、WEBサーバから見る事は出来なくなります。仮に見えたとしても、rsyncの実行しか出来ないです。

おまけでした。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。

ログイン~コピーの動作はシェルスクリプトの方で処理するようにしました。

とりあえず自分の希望の動作はできるようになったようです。

お礼日時:2006/06/30 15:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!