前の日 / 次の日 / 2007-02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

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 | コメント | トラックバック |