[2002/9/23]sitecopy を使ってローカルファイルと
.Mac の idisk 上のファイルとの同期を取る
homepage.mac.com の内容を更新したい場合など、
idisk 上のファイルを更新する度に idisk をマウントするのは面倒です。
また、マウントした状態で idisk のサーバが応答しなくなった場合や
WebDAV ファイルシステムの状態がおかしなことになった時にイライラさせられることになるので、
マウントしっぱなしという使い方もしたくありませんでした。
そこで
sitecopy
を使ってローカルファイルの変更を idisk に転送する方法を取っています。
コマンドラインのみで転送が行えるので、処理の自動化が容易になります。
人手で変更を加えるのはローカルファイルのみで、
ローカルのファイルをサーバに転送するのに sitecopy を使う、
という管理方針に基づいた方法を以下に書いています。
-
最初に sitecopy を使う場合、ホームディレクトリで次の操作が必要です。
% mkdir -m 700 .sitecopy
% touch .sitecopyrc
% chmod 600 .sitecopyrc
.sitecopy ディレクトリは各サイトの管理情報が置かれます。
ここにはサーバにあるファイルのファイルサイズや変更日時が記載されたファイルが置かれます。
このファイルとサーバの状態とが一致していないと sitecopy は正しく動作しないことになります。
-
ローカルディレクトリ
/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 という名前のファイル/ディレクトリを無視する設定を行っています。
また、ファイル名が ~ で終わるファイルも無視する設定を行っています。
-
最初にサイトの同期を行う方法として sitecopy は何通りか想定していますが、
手動で行うのが手っ取り早いようです。
-
まず idisk とローカルとの内容を(マウントしてコピーするなどして)一致させて、
% sitecopy --catchup sitename
を実行すれば、sitecopy でサーバのファイルを管理する準備は整います。
-
idisk サーバ側にファイルがなく、ローカルにのみある場合は、
% sitecopy --init sitename
% sitecopy --update sitename
で1回目の同期を行うことも可能です。
この場合もサーバ側に空のフォルダは存在する必要があります。
-
一般的には WebDAV サーバにに既にファイルがあって、ローカルにファイルがない時、
% sitecopy --fetch sitename
% sitecopy --synch sitename
を実行すればサーバのファイルをローカルに取り込みつつ sitecopy
の管理下に置くことが出来るはずなのですが、idisk のサーバに対しては
sitecopy --fetch
が正常に実行できず、403 Forbidden
というエラーが返ってくるのでこの方法は使えません。
サーバ側でこのコマンドに必要な操作を許可していないようです。
-
以上の設定が終了すれば、ローカルファイルを更新した時には
% sitecopy --update sitename
を実行することでサーバに変更が加えられたファイルを転送することが出来ます。
sitecopy 以外の方法でサーバのファイルを変更すると、
再度ローカルファイルとの同期を取るのは手動で行う必要があります。
sitecopy は MacOSX でも実行可能ですが、
私は実際には html ファイルは CVS で管理しているので、
- MacOSX で編集、commit
- CVS から最新版を取り出して sitecopy で web サーバに転送
という方法で運用しています。上記の 2 は
syncsite.sh
という sh スクリプトを CVS サーバである
NetBSD/i386 マシンで定期的に自動実行させています。
nand@mac.com
目次へ
$Revision: 1.9 $ $Date: 2004/02/04 17:54:36 $