PHPからrsyncのトリガーを引きたい場合の設定
PHPで更新ボタンを押したらrsyncを発動させるみたいなボタンを作る方法
【バックアップ元】
1.まずはapacheでsuできるように
# vi /etc/passwd
apacheユーザの最後の/sbin/nologinを/bin/bashに変更。
2.apacheユーザの秘密鍵と公開鍵を置く場所を作る
# mkdir /var/www/.ssh
# chmod 700 /var/www/.ssh
# chown apache.apache /var/www/.ssh
3.apacheユーザの秘密鍵と公開鍵を作る
# su - apache
$ ssh-keygen -t rsa
空でenter
【バックアップ先】
4.こちらもapacheでsuできるように
# vi /etc/passwd
apacheユーザの最後の/sbin/nologinを/bin/bashに変更。
5.公開鍵を置くフォルダを作る
# mkdir /var/www/.ssh
# chmod 700 /var/www/.ssh
# chown apache.apache /var/www/.ssh
【バックアップ元】
6.一旦exitでapacheを抜けて、作った鍵を転送する
# scp /var/www/.ssh/id_rsa.pub [バックアップ先IP]:/var/www/.ssh/
【バックアップ先】
7.送られてきたファイルの名前変更
# cat /var/www/.ssh/id_rsa.pub >> /var/www/.ssh/authorized_keys
【バックアップ元】
8.apacheにsuしてからsshで接続
ssh [バックアップ先IP]
なにも聞かれなかったら一旦成功!
【バックアップ元】と【バックアップ先】両方
9.rsyncで同期するフォルダにapacheへの権限を付与
chgrp -R apache /var/www/html/test
chown -R apache:apache /var/www/html/test
chmod -R 777 /var/www/html/test
【バックアップ元】
10.apacheにsuしてからrsyncのテスト
# rsync -auz -e ssh /var/www/html/test/ apache@[バックアップ先IP]:/var/www/html/test/
エラーが出ず、うまく転送されればOK!
あとは、PHPのexec関数とかでサクッと導入してやればOK!
exec('rsync -auz -e ssh /var/www/html/test/ apache@[バックアップ先IP]:/var/www/html/test/');