2007-02-28 Wed
rsyncで任意のファイルだけをバックアップ
サーバを入れ替えたときに、サーバと開発環境を全く同じにしました。
# 今後はChangeLogで作業ログを管理しながら手動で同期しますが。
そのときにrsyncを使って、chalowで生成したファイルをアップロード
できるように設定することにしました。
まず、rsyncをサーバとクライアントの両方にインストール。
% apt-get install rsync
chalowで生成するHTMLファイルはひとつのディレクトリに、
どばっと生成されるので、単にrsyncするとファイル以外に、
画像ディレクトリなども同期することになっちゃいました。
それでも良いのですが、HTMLファイルだけ同期したいことが多いので、
cdとfindを使って任意のディレクトリ内の任意のファイルだけを
同期できるようにしたいと思います。以下がその設定です。
#!/bin/sh cd $HOME/public_html # すべてのhtml find *.html |rsync -avz -e ssh $HOME/public_html --files-from=- overlasting.dyndns.org:$HOME/public_html # 新しく追加したhtml #find *.html |rsync -uavz -e ssh $HOME/public_html --files-from=- overlasting.dyndns.org:$HOME/public_html # 全部 #rsync -avz -e ssh $HOME/public_html --files-from=- overlasting.dyndns.org:$HOME/public_html
cdで、HTMLが生成されるディレクトリに移動して、find *.htmlします。
次に、findで作ったリストをパイプで渡して、
--files-from=-で受け取ります。これでOK。
スクリプトを実行してみたら、きちんと動作してくれました。
こんな感じのスクリプトを書いておけば、
Subversionのdbファイルのバックアップとかも簡単そうです。
近日中に設定しようっと。
投稿者:としのり 日時:23:59:59 | パーマリンク | コメント | トラックバック() |

