sitecopy - みる会図書館


検索対象: UNIX MAGAZINE 2000年9月号
7件見つかりました。

1. UNIX MAGAZINE 2000年9月号

連載 IJN Ⅸ便利帖ー⑨ こうしておけば、サ→ヾーに職斤のファイルカ甘前うこと 6 FreeBSD 版は ports や package としてインストールします。 5 rsync のパスは適宜変更してください。 リに保存されている情報を上交して、前回実行時からの更 ル側に保存されている実際のファイルと一信己のディレクト 存します。そして update モードて起動されると、ローカ カノ耳則ク寺定のディレクトリ ($HOME/. sitecopy) に保 終更辛刑該リやファイルサイズ、チェックサムなど ) をロー sitecopy は現在サーバー上にあるファイルの状態 ( 最 仕組み れています。 作する GUI を備えたバージョンの xsitecopy も開発さ copy は GUI をもっていませんが、 GNOME 環竟で動 が上記のページからダウンロードできます 6 。また、 site- ッケージや、 OS/2 、 Windows で重加乍するバイナリなど Linux のいくつかのディストリビューションのためのノヾ と OS / 2 、 Windows (cygwin が必要 ) ー - ヒでイ乍します。 0.9.10 で、 Linux や FreeBSD を含む UNIX 系 OS /sitecopy/ です。原稿執筆時点での最新バージョンは 総本山的なホームページは、 http://www.lyra.org カノ耳則のファイルと同期させるためのソフトウェアです。 sitecopy も rsync と同本兼、サーノヾーのファイノレをロー sitecopy 情報を出力しないようにしています。 この例では引数ー q を利用して、重川乍についての詳しい —delete $HOME/pub1ic-htm1/ www :public—html 0 2 , 14 * * * /usr/local/bin/rsync —Caqz るためには、 crontab に次のような行を追加します 5 。 たとえば、 1 日 2 回、午前 2 時と午後 2 時に同期をと 更新するかによります。 でしよう。同期をとる頻度は、内容をどのくらいの頻度で 録して毎日一定の時刻に同期をとるように設定するとよい 一日のように一度 rsync を実行したら、 crontab に登 ふだんの動イ乍 ウンロードすると整缶生が保たれます。 になるので、それらのファイルをローカノ剛リへいったんダ 110 新をサーバーに反映します。そのあと、サーバー上にある ファイルの状態をふたたびローカル側に保存して、次回の 実行に備えます。 sitecopy は、サーバーへファイルをアップロードする ために、 FTP または WebDAV のどちらかのプロトコル を用います 7 。 FTP いわすと知れた File Transfer Protocol です。たいて いのプロバイダではⅥーⅥーⅥーコンテンツのアップロード 用に FTP を準備しているので、こちらを使うの力勺 だと思います。 、 VebDAV WebDAV (DAV は Distributed Authoring and Versioning の略 ) は HTTP/I.1 に対する拡張として、 RFC2518 て提唱されています。おもな特徴は以下のよう なもので、 WWW を用いた共同作業を : 麪爰するために有 用な機能が追加されています。 ・ネットワーク越しにファイルをロックできる。 ・作者に関する情報などのメタデータを XML のプロバ ティを利用して記述できる。 通常のファイルシステムのように copy や move など の操作ができる。 詳しくは上記の RFC や http://www.webdav.org/ を参照してください。 sitecopy でこのプロトコルを利用すると、 FTP を用い る場合にくらべて以下のような利点があります。 ・ HTTP プロキシーカリ用できる。 ・ 1 回の HTTP コネクションで複数のファイルか冲云送で UNIX MAGAZINE 2000.9 うになっています。 7 開発中の去斤版である sitecopy-apr12. tar. gz では rsh も使えるよ ・ WebDAV を扱えるサーバーがまだ一勺でない。 ・ ASCII モードでファイルを転送できない。 るときなどに不側。 ・ファイルモードを設定できない (CGI プログラムがあ しかし、次のような欠点もあります。 ・サーバー側にシン永リック・リンクを作成できる。 きる。

2. UNIX MAGAZINE 2000年9月号

連載 / IJN Ⅸ便利帖ー⑨ を用意し、それらを区別してディレクトリに保存しておき たいので、ローカル側のディレクトリは 10 行目のように なっています。 この設定ではプロトコルとして FTP を用いるので、 ファイルモードは、、 a Ⅱ " ですべて同期させることができま す。しかしシンポリック・リンクは FTP では実現でき ないので、 12 行目で、、 f 。Ⅱ。 w " を指定しています。また、 ファイルの編集に MuIe を利用することが多いので、 13 行目でバックアッフ・ファイルはアップロードしないよ うに指定しています。 以にの成疋か完了したらいよいよ sitecopy を実行しま す。 sitecopy を実行する前のサーバー側 / ローカノ則双方 のファイルの状態は、以下のように分けることができるで しよう。 1. サーバー側にファイルがまったく存在しない。 2. ローカル側にファイルがまったく存在しない。 3. サーバー側とローカル側でファイルが一致している。 4. ローカル側にサーバー側より新しいファイルが存在す る。 それぞれの場合について、 sitecopy を初めて起動する ときにどんな引数を与えれはよいかを説明します。以下で は、 site の例としてリスト 1 を用います。いすれの場合 も、操イ得冬了後にはサーバー側とローカル側のファイルが 同期している状態になります。 サーパー側にファイルがまったく存在しない このときは次のように実行します。 % sitecopy ー 1 w これで、 sitecopy はサーバー側にはまったくファイル か存在しないと考え、ローカル側のすべてのファイルをサ ーバーヘアップロードします。そして、そのときのファイ ルの情報を $HOME/. sitecopy に保存します。 ローカノ曜リにファイルがまったく存在しない この場合は、ます fetch モードを用いてサーバー側の ファイル情報を $HOME/. sitecopy に保存します。その あと、 synchronize モードてサーバー側にあるファイルを ダウンロードします。具ー勺には次のように実行します。 初回の動作 UNIX MAGAZINE 2000.9 % sitecopy —f www % sitecopy —s www サーパー側とローカノ則でファイルが一致している この場合は何もしなくてもよさそうですが、サーバー側 とローカル側でファイルが一致していることを sitecopy にも教える必要があるので、次のようにして一度 sitecopy を実行しておきます。 % sitecopy —c w ローカノ曜リにサーパー側より新しいファイルが有在する たいていの場合はこの状態だと思います。また、 2 回目 以降の sitecopy の実彳芋はいつもこの状態でしよう。 最初に上記と同様、 fetch モードでサーバー側のファイ ル情報を取得します。こ窈巣作は 2 回目以降は不要です。 % sitecopy —f www そのあと、次のように sitecopy を update モードで新カ 作させます。 2 回目以降はこの操作だけでファイルを同期 させられます。 % sitecopy —u www これで、ローカル側に保存されているファイル清報を利 用して、サーバー側よりも新しい ( と思われる ) ファイル がサーバーヘアップロードされます。 ふだんの動作 sitecopy がきちんと実行できることを確認したら、 rsync のときと同様に、毎日決まった時刻に同期させられ るよう crontab に登録しておきます。たとえば次のよう な行を crontab に追加すれば、毎日 23 時 30 分に site- copy かま行され、ローカル側とサーバー側のファイルが 同期します 10 30 23 * * * /usr/local/bin/sitecopy —u また、このままでは sitecopy の出力結果がメールで届 いてうっとうしい、というときは—q や -qq という引数を 与・えることで出力を担刷できます。 ( みやした・けんすけ京都女子大学 ) 10 sitecopy のバス ( 前変史してください。 115

3. UNIX MAGAZINE 2000年9月号

連載 / IJN Ⅸ便利帖ー⑨ WebDAV を扱える代表的なサーバーとして以下のよう なものがあります。 ・ PyDAV Python て作成された WebDAV サーバーで、 http:// 旧いバージョンのパッケージに倣いました。具イ勺には次 フォルトでは / usr / 10Ca1 となっていましたが、ト述した などをインストールする場所を指定するための引数で、デ これは、バイナリファイルや文書、利用するライプラリ こでは、 --prefix=/usr" という引数を与えました。 ることで、作成する sitecopy の振舞いを変更できます。 クリプトを実行します。このときいろいろな引数を指定す れるので、そこへ移動して configure というシェル・ス すると sitecopy-0.9.10 というディレクトリが作成さ % tar xzf sitecopy-O. 9 . 10. tar ・ gz クトリに展開します。 たソースー式 (sitecopy-O. 9.10. tar. (z) を適当なディレ ます、 sitecopy の WWW ページからダウンロードし ら作成することにします。 バージョンが旧すぎるように思います。そこで、ソースか というパッケージがみつかりました。しかし、これはやや rpmfind を使って探してみると、 sitecopy-0.7.8ー1. rpm には当該パッケージをみつけることができませんでした。 Linux 用のパッケージへのリンクがあったのですが、私 ーヒ述した sitecopy の WWW ページには Red Hat Red Hat Linux をインストールするガ去を説明します。 こでは Red Hat Linux と FreeBSD に sitecopy インストール バージョン 5.0 以降では WebDAV を利用できる。 ・ Microsoft IIS 取得できる。 。 http://www.webdav.org/mod-dav/から Apache のモジュールとして利用できる WebDAV サ Apache mod-dav どの制限がある。 執芋点では、ユーサー認証がサポートされていないな sandbox.xerox.com/webdav/から取彳昇できる。原稿 UNIX MAGAZINE 2000.9 のように実行します。 % cd sitecopy—O. 9.10 % . /configure ——prefix=/usr configure が正常に終了すると、、、 make を実行して sitecopy をコンノヾイルしなさい " という意味のメッセー ジカ咄力されます。それに従って make を実行し ( 引数 は不要です ) 、正常に終了したら、表示されるメッセージ に従い make install を実行します。最後の操作にはスー パーユーサーの権限が必喫です。 % make % su Password : # make insta11 すると、以下のファイルがインストールされます。 ・ sitecopy 本体 (/usr/bin にインストール ) ・メッセージ・カタログ (/usr/share/locale 以下の適 切なディレクトリにインストール ) 文書ファイル (/usr/doc/sitecopy にインストール ) メッセージ・カタログとは、いろいろな国・士或の言語 でメッセージを表示させるためのものです。このバージョ ンの sitecopy は日本語のメッセージも出力することがで きます 8 。 これでインストールは完了です。なお、 configure に --enable—gnomefe" という引数を与えると、前述した GNOME 工竟で動作する GUI 付きの sitecopy を作る ことができます。これには GTK 十のバージョン 1.2.7 以 降が必要です。 FreeBSD FreeBSD の場合はとても簡単で、 ports コレクション がインストール済みなら次のように実行するだけです。 # cd /usr/ports/www/sitecopy # make insta11 もちろん、 package からインストールすることも可能で す。この場合は rsync と同様、以下のように実行します。 ます近隣の FTP サーノヾーから sitecopy の package をダウンロードし、その後 pkg-add でインストールしま す ( 原不丸嶇寺点 : での package の最新版は 0.9.5 でした ) 。 8 竟変数 LANG の値を、 ja " にすると、日本語メッセージを出力しま す。 111

4. UNIX MAGAZINE 2000年9月号

連載 / IJN Ⅸ便利帖ー⑨ # fetch ftp://ftp4.jp ・ freebsd.org/pub/ FreeBSD/ports/i386/packages—4.0—re1ease/A11/ sitecopy-O. 9.5 . tgz # pkg—add sitecopy-0.9.5. tgz こ巣作は次のように 1 行ですませることもできます。 # pkg-add ftp://ftp4.jp.freebsd ・ org/pub/— FreeBSD/ports/i386/packages—4.0—re1ease/A11/ sitecopy—O . 9.5 . tgz FreeBSD の場合は、 rsync と同様に sitecopy も /usr local/bin にインストールされます。 ル宀 sitecopy を起動するためには、適切な設定ファイル ($HOME/. sitecopyrc) と、ファイルの情報を保存して おくディレクトリ ($HOME/. sitecopy) をそれぞれ作る 必要があります。これらのファイルとディレクトリは、所 有者自身しかアクセスできないようにしておくことも必要 です。具イ純勺には以下のようにします。 % mkdir —m 700 ~ /. sitecopy % touch ~ / . sitecopyrc % chmod 600 ~ / . sitecopyrc 次に、設定ファイルの内容を記述します。この設定フ ァイルには複数のサーバーに関する設定を言当でき、その 設定に付けた名前を起重加に引数として与えることで各設 定内容を参照できます。それぞれの名前は、、 site" という キーワードに続けて記述します。 1 つのサーバーに関する設定は図 3 のような書式になり ます。 個々のキーワードの意味は以下のようになっています。 ・ site 次の、、 site " が出現するかファイルの終りに達するまで を 1 つのサーバーに関する成疋として、 sitename て指 定される名前を付ける。 ・ server ファイルをアップロードするサーバーのホスト名または IP アドレスを指定する。 ・ port ファイルをアップロードするために使うポート番号を指 定する。 FTP や HTTP て利用する一ヨ勺なポート番 号 ( 21 や 80 など ) とは異なるものをサーバーかイ吏用し ているときは、それを指定する。 112 図 3 sitecopy の書式 Site S te れ 07 れ e server 、ゼ、 - れ 0 ? れ e [ port 0 - れ m 7 、 ] [ proxy—server ro 工リ - れ ame ] proxy-port 〃 07 、 t - れれ、 ] [ url siteURL ] [ protocol {ftplhttp} ] [ ftp nopasv [ ftp showquit ] [ http expect safe [ state {checksum timesize username 社、れ 07 れ e password 佖 SS ? 07 ・ d remote 7 ℃ mote -7 、 00 な市 7 ℃ c め 07 、リ 10Ca1 / 0C0 な root - 市 7 ℃ c 型 [ permissions {ignorelexeclall} ] [ symlinks {ignorelfollowlmaintain [ nodelete ] nooverwrite [ checkmoved [ renames tempupload ] exclude 〃 0 れ、れ [ ignore 佖 ttet 、れ ascii 、れ ・ proxy-server プロキシー・サーバーを指定する。現在のバージョンで は WebDAV でしかサポートされていない。 ・ proxy-port プロキシー・サーバーで使用するポートを指定する。 れも、現在のバージョンでは WebDAV でしかサポー トされていない。 ・ url 自分の WWW コンテンツの URL を指定する。末尾 に、、 / " を付けてはならない。 ・ protocol FTP と HTTP のうちどちらを用いてファイルのアッ プロードをおこなうかを指定する。 WebDAV を使うと きは、、 http" を指定する。デフォルトは、、 ftp ・ ftp FTP サーバーが passive モード (PASV) をサポート していないときは、 n 。 pasv " を指定する。企業などで、 サーバーとのあいだにファイアウォールがあるときなど は、 passive モードでの接続が必須である場合が多い。 また、 FTP コネクションの終了時にサーバーが出力す るメッセージを表示させたい場合は、、 showquit" を指 UNIX MAGAZINE 2000.9

5. UNIX MAGAZINE 2000年9月号

UN Ⅸ便利帖 宮下イ甫 WWW コンテンツを同期させる コンテンツの同期 図 1 ホーム・ディレクトリか甬 ふだん使っている計算機 インターネットの発展により、個人で WWW ページを もつ人が多くなってきました。継続的に WWW ページを 系財寺するとなると、そのコンテンツの管理か重要です。私 は大学の石幵究室のサーバーを利用していますが、このよう な場合、 WWW サーバーにログインしたときのホーム・ ディレクトリとふだん使っているホーム・ディレクトリ か共通で、 $HOME/public-html 以下か直接 WWW コ ンテンツになっているのカ立イ勺だと思います ( 図 1 ) 。 のような工竟では、 $HOME/public-htmI 内のファイル をエデイタで直オ欝糒集できるので、、、 WWW コンテンツ を編集結果に同期させる " という問題は起こりません。 しかし、 WWW サーバーから参照される自分のコンテ ンツが、ふだん使っているホーム・ディレクトリとは別の 場所に置かれている場合があります ( 図 2 ) 。たとえは、企 業などでファイアウォールの外側に WWW サーバーが ある場合、または一殳のプロバイダにダイヤルアッフて接 続して WWW コンテンツを転送している場合などか該当 するでしよう。このようなときには、ローカノ則のファイ ルをエデイタなどで作成、編集して、その結果をサーバー ヘアップロードする " 操作が必要になります。 今回は、このような目的に適したソフトウェアを紹介し ます。 rsync は rsh ( または ssh) を用いてローカル側とサー WWW サーバーでシェルが使える ( ログインできる ) バー側のファイルを同期させるソフトウェアです。同一 場合には、 rsync というアプリケーションカイ甦リです。そ ホスト内の異なるディレクトリの内容を同期させるのに うでない場合 (FTP でしかアクセスできないときなど ) も利用できます。オンライン・マニュアルに rsync には、 sitecopy というアプリケーションがあります。両 faster, flexible replacement for rcp と書いてあると 方とも、 GNUGPL に従って配布されているソフトウェ おり、 rsync は従来からある rcp というソフトウェアの マウント マウント ホーム・ディレクトリ 図 2 ホーム・ディレクトリか甬てない WWW サーバー ふだん使っている計算機 内容を同期させる ホーム・ティレクトリ rsync 107 UNIX MAGAZINE 2000.9

6. UNIX MAGAZINE 2000年9月号

連載 / IJN Ⅸ便利帖ー⑨ リスト 1 . sitecopyrc 列 site WWW protocol ftp ur 1 state safe remote 10Ca1 permISSIons s yml inks exclude 13 : 12 : 11 : 10 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 : ・ tempupload www.kyoto-wu.ac ・ JP ftp nopasv mlyasita http : //www.kyoto—wu.ac . jp/%7emiyasita f0110W a11 -/public—html/www/ -/public-html/ timeslze ローカル側で変更されたファイルを、、、 . ⅲ . " を先頭に 付けた名前でアップロードし、全体のアップロードが 終了した点で本当の名前に変更する。 ・ exclude 同期をとる対象に含めたくないファイルの名前を指定す る。指定にはシェルで用いられるワイルドカードか利用 できる。 ・ lgnore 変更があってもサーバー側で更新したくないファイル名 を指定する。 FTP でファイルを転送するときに ASCII モードて転 送したいファイル名を指定する。 成疋ファイルの例 ( 実際に和使っているもの ) をリス ト 1 に示します。左端の数字は説明のために付けた行番号 です。 1 行目で、この成疋全体に、、 www" という名前を付けて います。 2 行目で、アッフロードをおこなうサーバー名を www.kyoto-wu.ac.jp としています。その際のプロト コルとして FTP を利用し、 passive モードにする必要は ないので 4 行目では、、 nopasv" を指定しています。 サーバーに FTP て接続するときのユーサー名は、、 mi- yasita" とし、そのときに使うパスワードは、一には聿い ていません。これは、前述したようにホーム・ディレクト リにある . netrc というファイルに石当してあります。 . netrc は、 FTP て頻繁に接続するサーバーがあるとき や、 MH の inc コマンドで POP サーバーに接続してメ ールを取得するときなどにイ叫リなファイルです。詳しくは ・ aSC11 114 ftp のオンライン・マニュアルなどに譲りますが、たとえば 以下のように言当しておくと 9 、 ftp コマンドなどを使って www.kyoto-wu.ac.jp に接続する際にユーザー名やパス ワードを手で入力する手間が省けます。このファイルには パスワードが平文で記述されているので、所有者のみがア クセスできるパーミッションにしておく必要があります。 machine www . kyoto—wu. ac ・ JP login llllyasita password abcde123 パスワードは、安全のためある程度の日判間隔で変更し ますが、そのときにあちこちの設定ファイルを更新するの は面倒なので、私はそ、きるだけ . netrc にまとめておきた いと思い、こうしています。 今回使用したノヾージョンの sitecopy は、 . netrc か ・ sitecopyrc のどちらかにノヾスワードか第己述されていない と実行できません。しかし、平文でパスワードを記述し たファイルを作成すると、それが第三者に洩れる可能陸 か高くなります。このようなファイルを作成するときは、 その危険性を十分認識したうえで作業するようにしてくだ さい。 ファイルの情報は最終更新琲刻とサイスで保存するよう にしました。私はリピジョン管理システムを利用していな いため、わざわざチェックサムを引算する必要はないだろ うと思ったからです。また、念のため safe モードにして あります ( 8 行目 ) 。 サーバー側のディレクトリは、 FTP で鮟続したときの ホーム・ディレクトリ直下にある public-html です。ま た、ほかにもいくつかの W Ⅵー W サーバー用にコンテンツ 9 パスワードは架空のものです。鳬っため。 UNIX MAGAZINE 2000.9

7. UNIX MAGAZINE 2000年9月号

連載 / UN Ⅸ便利帖ー⑨ ・ http 定する。 かかわらずそのファイルの最終更辛刑寺刻か変更されてし ときなどのように、ファイル内容は刻ヒしていないにも のリビジョン管理システムがチェックアウトをおこなう の場合とくらべて動作か遅くなる。しかし、 RCS など を計算するためにファイル全体を読むので、 timesize MD5 チェックサムを引算して保存する。チェックサム する。 こで、、 checksum" を指定すると、ファイルの これらが変化していればファイルが変更されたと判断 この場合、最終更新時刻とファイルサイズを保存し、 ル情報の形式を指定する。デフォルトは、、 timesize 。 ディレクトリ $HOME/. sitecopy に保存されるファイ ・ state れない。 があると警告さファイルのアッフロードはおこなわ ていると、第三者によって内容か改竄されている可能 での更辛刑該リを調査する。この 2 つの更辛刑該リが異なっ イルをサーバーにアップロードする際に再度サーバー上 てそのファイルがローカノ耳則で更新されたら、そのファ 上での更辛刑寺刻を取得してローカル側に保存する。そし をアッフロードするときに、そのファイルのサーバー safe モードを有効にする。 safe モードでは、ファイル ・ safe 要な帯域や時間を節約できる。 を中幻するための機能で、ファイルのアップデートに必 する。これは 1 回の HTTP の接続で複数のファイル tation をサポートしているときは、 exp ect " を孑旨定 利用する WebDAV サーノヾーが 100-continue expec- パスワードを指定する。パスワードは平文で言己される ・ password 定する。 サーバーにファイルをアッフロードするユーザー名を指 ・ username まう場合には、無駄なアップロードを担制できる。 サーバーに関する項目があれば、パスワードはそこて指 にしておかなけ川まならない。 $HOME/. netrc にこの ので、この成疋ファイルは所有者しか参照できないよう UNIX MAGAZINE 2000.9 定することもできる。 ・ remote サーバー側でファイルを保存するためのディレクトリを 指定する。ディレクトリは絶対パスで言己するか、 FTP を用いるときはログイン・ディレクトリからの相対パス (-/public-html/ など ) でも指定できる。 ・ 10 cal ローカル側でファイルを保存しているディレクトリを 指定する。 remote と同様に、絶対パスでも、ホーム・ ディレクトリからの相対パスでも言当できる。 perm1SS10ns ファイルモードに関する設定をおこなう。ローカル側 の各ファイルのモード ( パ ミッション ) を無視する (ignore) 、実行ファイルについてのみサーバー側を一 致させる (exec) 、すべてのファイルについて一致させ る (all) のいすれかを指定する。現在のバージョンでは FTP を用いたときのみ有効。 ・ symlinks ローカル側で作られたシンポリック・リンクについて、 それを無視する (ignore) か、その実体をアップロード する (follow) か、サーバー側でもシンポリック・リン クを作成する (maintain) かを指定する。デフォルト では ignore カ甘旨定される。 maintain は WebDAV を 利用していて、かっサーバーが WebDAV Advanced Collections を実装していないと実現できない。 ・ nodelete ローカル側で削除されたファイルをサーバー上からは削 除したくないときに指定する。 ・ nooverwrite サーバー上でファイルの上書きか許されていないときに 指定する。これを指定すると、変更のあったファイルは いったんサーバーから削除さ新たにアップロードさ れる。 ・ checkmoved ローカル側て彩動されたファイルをサーバー側でも移動 する。、、 renames" を指定すると、ローカノ剛に夥動ま たは名前を変更されたファイルについて、サーバー側で も移動または名前を変更する。これにより、医に必喫 な帯域や日判を節約することカ、きる。これは、、、 state checksum" を指定したときのみ有効。 113