[2002/9/23]sitecopy を使ってローカルファイルと .Mac の idisk 上のファイルとの同期を取る

homepage.mac.com の内容を更新したい場合など、 idisk 上のファイルを更新する度に idisk をマウントするのは面倒です。 また、マウントした状態で idisk のサーバが応答しなくなった場合や WebDAV ファイルシステムの状態がおかしなことになった時にイライラさせられることになるので、 マウントしっぱなしという使い方もしたくありませんでした。
そこで sitecopy を使ってローカルファイルの変更を idisk に転送する方法を取っています。 コマンドラインのみで転送が行えるので、処理の自動化が容易になります。
人手で変更を加えるのはローカルファイルのみで、 ローカルのファイルをサーバに転送するのに sitecopy を使う、 という管理方針に基づいた方法を以下に書いています。
  1. 最初に sitecopy を使う場合、ホームディレクトリで次の操作が必要です。
    % mkdir -m 700 .sitecopy
    % touch .sitecopyrc
    % chmod 600 .sitecopyrc
    .sitecopy ディレクトリは各サイトの管理情報が置かれます。 ここにはサーバにあるファイルのファイルサイズや変更日時が記載されたファイルが置かれます。 このファイルとサーバの状態とが一致していないと sitecopy は正しく動作しないことになります。
  2. ローカルディレクトリ /Users/nand/Sites/macosx と idisk の idisk.mac.com/nand/Sites/macosx との同期を取りたい場合、 .sitecopyrc に次のように書きます。
    site macosx
    server idisk.mac.com
    protocol webdav
    username nand
    password xxxx
    local /Users/nand/Sites/macosx
    remote /nand/Sites/macosx
    exclude CVS
    exclude "*~"
    site 行には適当に付けたサイト名 (以下 sitename) を書きます。 サイト名は sitecopy にどのサイトを操作するのか示す識別子です。 ここでは CVS という名前のファイル/ディレクトリを無視する設定を行っています。 また、ファイル名が ~ で終わるファイルも無視する設定を行っています。
  3. 最初にサイトの同期を行う方法として sitecopy は何通りか想定していますが、 手動で行うのが手っ取り早いようです。
  4. 以上の設定が終了すれば、ローカルファイルを更新した時には
    % sitecopy --update sitename
    を実行することでサーバに変更が加えられたファイルを転送することが出来ます。
sitecopy 以外の方法でサーバのファイルを変更すると、 再度ローカルファイルとの同期を取るのは手動で行う必要があります。
sitecopy は MacOSX でも実行可能ですが、 私は実際には html ファイルは CVS で管理しているので、
  1. MacOSX で編集、commit
  2. CVS から最新版を取り出して sitecopy で web サーバに転送
という方法で運用しています。上記の 2 は syncsite.sh という sh スクリプトを CVS サーバである NetBSD/i386 マシンで定期的に自動実行させています。
nand@mac.com     目次へ $Revision: 1.9 $ $Date: 2004/02/04 17:54:36 $