rsyncを使って、ファイルを転送。ローカルからローカルでもOKだし、どっちかがリモートの場合は、同時にsshを使えばOK。
htmlや画像など、サイトのデータであれば、Dreamweaverで転送するのがよいのだが、ファイル数が膨大な場合や、バックアップ用途として使いたい場合は、やはりrsyncのほうが便利。
しかし、単純にrsyncを使うだけだと、困るときもある。例えば、手元のDreamWeaverから、LAN内のテスト用のホストAにファイルを転送する。
ホストAからは、rsyncを用いて、実機のホストBに転送するとする。
Dreamweaver(ローカル)→ホストA(テスト機)→ホストB(実機)
で、何が困るかというと、Dreamweaverでチェックイン/アウトの機能を使ってると、ホストA上に、チェックイン/アウトするファイルと同名で、****.LCKという、ロックファイルが生成される。チェックアウトすると消えるはず(あれ?チェックインだっけ??)
また、デザインノートを保持するにしている場合、各ディレクトリに、"_notes"というファイルができ、hogehoge.mnoというファイルができる。(DWのデザインノートファイル)
ホストAから、ホストBに対し、普通にrsyncでコピーすると、これらのファイルもまるごとコピーされてしまう。実害は無いが、不要なファイルは極力実機に置くべきではない(*.bakや、emacsで作成されるバックアップファイルとか)
また、ホストAがMac OS Xの場合、.DS_storeという、MacのFinder上でアイコンの位置などを記憶しているデータファイルも、一緒にコピーしてしまう。
不要なファイルがコピーされてしまうというのは、僕的には非常にキモチが悪い。
(※OS X 10.4以前のrsyncはファイルのリソースフォークをコピーしてくれないので、場合によってはファイルが壊れてしまう可能性あり。OS Xのファイルをrsyncする場合は、10.4以降をオススメする。。(あれ?10.3だったっけ?))
・・・まずは、オプションの説明など。
rsync (+ ssh) で簡単バックアップより
-v バックアップ時にバックアップしているファイル名を表示する
-r 指定したディレクトリ以下の各ディレクトリも再帰的にバックアップする
-l シンボリック・リンクをそのままにバックアップする(シンボリック・リンク先の内容をコピーせずにリンクのままコピー)
-H ハード・リンクをそのままにバックアップする
-p パーミッション属性を保存したままバックアップする
-o 所有者属性を保存したままバックアップ(root のみ可能)
-g グループ属性を保存したままバックアップ
-t タイムスタンプを保存したままバックアップ
-D デバイスファイルを保存したままバックアップ(root のみ可能)
-z データーを圧縮して転送する
-u 追加されたファイルだけバックアップする
--existing 更新されたファイルだけをバックアップし、追加されたファイルはバックアップしない
--delete バックアップ元で削除されたファイルはバックアップ先でも削除する
--exclude 'PATTERN' PATTERN で指定したパターンにマッチするファイルはバックアップしない
-a 上記のオプションのうち rlptgoD を指定する
まず、普通に転送。
たとえば、
/home/aaa /home/bbb
の、aaaがファイルなのか、ディレクトリなのか、bbbが存在するか、ディレクトリなのかで、動作が変わるし、ディレクトリの場合は、"/"をつけるかつけないかで、動作は変わる。どう変わるかは、頭では分かってるけど、ここに書き出すのは面倒なので省略。
で、rsyncするときに、特定のファイルを除くことができる。exclude指定である。
DreamweaverのLCKファイルを転送したくない場合は、
user@hostname:/home/site/public_html/
で、OK。"_notes"も転送したくない場合は、
-e ssh public_html user@hostname:/home/site/public_html/
と、excludeを単に複数記述すればOK。転送したくないものが多数ある場合、ファイルに記載しておいて、そのファイルを指定する--exclude-from=FILE というのもある。(ただ、ファイルフォーマットをどうすればいいのかマニュアルを見ても分からない(汗))
excludeは結構複雑な記述ができ、特定のルールがあるので細かいことはマニュアルとかGoogleでチェックされたし。
Dreamweaverから、リモートホストを簡単に切り替える機能があったら、いいのになぁ。。同期とかがややこしくなるのかな。
まぁ、そんな感じ。