1 .\" (c) 1998 by James R. Van Zandt <jrv@vanzandt.mv.com> -*- nroff -*-
3 .\" Japanese Version Copyright (c) 2003 NAKANO Takeo all rights reserved.
4 .\" Translated Wed 29 Jan 2003 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
6 .TH mirrordir 1 "1998 November 1" "Linux"
8 pslogin \- 強力なストリーム cipher 暗号化と diffie-hellman 鍵交換を用いた安全なリモート tcp ログイン
10 forward \- 任意の tcp ソケットを安全かつ暗号化されたチャネルにフォワードする
12 copydir, mirrordir \- 変更された最小の部分のみを用いて
13 (ローカル、FTP 経由、安全な tcp 接続経由で)
16 recursdir \- ファイルの操作/検索や tar ファイル作成のために、ローカルまたはリモートのディレクトリを再帰的に探索する
20 [\fB-a\fP, \fB--access-times\fP]
22 [\fB-m\fP, \fB--strict-mtimes\fP]
28 [\fB-A\fP, \fB--mtime-threshold\fP \fIext\fP]
30 [\fB--time-offset\fP [[\fI+\fP]|\fI-\fP][\fIH\fP]\fIH\fP[\fI:MM\fP]]
32 [\fB-A\fP, \fB--always-write\fP]
34 [\fB-r\fP, \fB--restore-access\fP]
40 [\fB-D\fP, \fB--only-delete\fP]
42 [\fB-b\fP, \fB-S\fP, \fB--backup-extension\fP, \fB--suffix\fP \fIext\fP]
44 [\fB-N\fP, \fB--num-backups\fP \fInum\fP]
46 [\fB-O\fP, \fB--backup-outdate\fP \fIsec\fP]
48 [\fB-B\fP, \fB--block-size\fP \fIbytes\fP]
50 [\fB-M\fP, \fB--max-bytes\fP \fInum\fP[\fBK\fP|\fBM\fP|\fBG\fP]]
52 [\fB-s\fP, \fB--starting-file\fP \fIpath\fP]
54 [\fB-i\fP, \fB--ignore-next-exclude\fP]
56 [[\fB-i\fP] \fB-X\fP, \fB--exclude\fP \fIpath\fP] [[\fB-i\fP] \fB-X\fP, \fB--exclude\fP \fIpath\fP] ...
58 [[\fB-i\fP] \fB-F\fP, \fB--exclude-from\fP \fIfile\fP] ...
60 [[\fB-i\fP] \fB-G\fP, \fB--exclude-glob\fP \fIexpr\fP] [[\fB-i\fP] \fB-G\fP, \fB--exclude-glob\fP \fIexpr\fP] ...
62 [[\fB-i\fP] \fB-R\fP, \fB--exclude-regexp\fP \fIexpr\fP] [[\fB-i\fP] \fB-R\fP, \fB--exclude-regexp\fP \fIexpr\fP] ...
64 [\fB-C\fP, \fB--exclude-script\fP [\fIexpr\fP|\fIfile\fP]] [\fB-C\fP, \fB--exclude-script\fP [\fIexpr\fP|\fIfile\fP]] ...
66 [\fB-h\fP, \fB--help\fP]
68 [\fB-v\fP, \fB--verbose\fP] [\fB-v\fP, \fB--verbose\fP] ...
70 [\fB-V\fP, \fB--version\fP]
72 [\fB-k\fP, \fB--keep-files\fP]
74 [\fB-l\fP, \fB--no-hard-links\fP]
76 [\fB--follow-symlinks\fP]
78 [\fB-L\fP, \fB--strict-locking\fP]
80 [\fB-p\fP, \fB--password\fP \fIpassword\fP]
82 [\fB-P\fP, \fB--password-exact\fP \fIpassword\fP]
86 [\fB--no-warn-first-login\fP]
88 [\fB--read-password-from-stdin\fP]
90 [\fB--allow-empty-ftp-dirs\fP]
92 [\fB--no-allow-empty-ftp-dirs\fP]
98 [\fB--proxy-host\fP \fIhost\fP]
102 [\fB-z\fP, \fB--gzip\fP]
104 [\fB--gzip-backups\fP]
106 [\fB--case-insensitive\fP]
112 [\fB--no-use-passive-connections\fP]
114 [\fB-K\fP, \fB--key-size\fP \fIbits\fP]
116 [\fB--download-scripts\fP]
118 [\fB--tar-file\fP \fIfilename\fP]
120 [\fB--tar-block-size\fP \fIN\fP]
122 [\fB-t\fP, \fB--dry-run\fP, \fB--test-only\fP]
124 [\fB--nice\fP \fInum\fP] \fIcontrol mirror\fP
127 [\fB-c\fP | \fB--copy-mode\fP | \fB--recurs-mode\fP ]
128 -[\fBabBCdDFGhklMmNOopRrstvVX\fP] \fIsrc\fP [\fIsrc\fP ...] \fIdest\fP
131 -[\fBabBCdeFGhklMmNOopRrstvVX\fP] \fIsrc\fP [\fIsrc\fP ...] \fIdest\fP
134 -[\fBabBCdeFGhklMmNOopRrstvVX\fP] \fIsrc\fP [\fIsrc\fP ...]
137 [\fB--key-size\fP \fIbits\fP]
138 [\fBmc://\fP][\fIusername\fP\fB@\fP]\fIhostname\fP[\fB:\fP\fIportnumber\fP][\fB/\fP\fIpath\fP]
142 .BR mirrordir " [" --exclude " \fIpath\fP] " "\fIcontrol mirror\fP"
145 \fIsrc\fP [\fIsrc\fP ...] \fIdest\fP
148 \fIsrc\fP [\fIsrc\fP ...] [\fB-C\fP \fIprogram\fP]
151 [\fIusername\fP\fB@\fP]\fIhostname\fP[\fB:\fP\fIportnumber\fP]
154 はディレクトリを操作したりミラーする際に便利なユーティリティの集まりである。
158 や、任意の TCP ソケット接続を暗号化された安全なチャネルにフォワードする
172 .\"nakano control は訳者の判断で追加.
173 修正時刻 (modification time) またはサイズが異なるファイルがコピーされる。
174 ファイルの許可属性・所有者・修正時刻・アクセス時刻
175 (--access-time が用いられた場合のみ)・スティッキービット・
177 シンボリックリンクはリンク先の解決をされずにそのままコピーされる。
178 シンボリックリンクの修正・アクセス時刻 (シンボリック自身のもので、
179 シンボリックが指すファイルのものではないことに注意) は保存\fIされない\fP。
180 ハードリンクされたファイルは単にコピーされる。
181 生成時刻は、私の知る限り Unix では設定できない。
188 にないファイルやディレクトリは削除されるからである。もし
192 のすべてのファイルやディレクトリが削除される。もし
196 のすべてのファイルやディレクトリがコピーされる。
204 の完全なレプリカにし、またその際にあらゆるものを
205 (定期的バックアップという目的に合致するなら)
208 はサブディレクトリの一番深いところまで降りていく。
209 ディレクトリミラーの際には、それに必要な最小の変更のみを調べ、
212 アクセス時刻の複製は通常は必要なく、また不要な負荷を与えることになる。
217 には、何の変化も与えない。--restore-access
218 が与えられると、アクセス時刻は読み込みのたびに、
221 --strict-locking オプションをオンにすると、
223 にあるコピー作業中のファイルは「共有読み込み (shared reading)」
225 他のプロセスがそのファイルに頻繁に書き込みを行っている場合でも、
226 ファイルが不完全な状態や壊れた状態ではコピーされないことを保証する。
231 問題の報告を stderr へのエラーメッセージとして行い、
238 は (たとえ空であっても) 存在していなければならない。
240 ディレクトリのすべてのファイルを削除する前に、
242 は \fB*--keep-me\fP というファイル (ここで \fB*\fP は 0 または 1 つの文字)
244 このファイルが存在すると、エラーメッセージを出して中断する。
245 よって再帰的に削除されてはまずいディレクトリがあったら、
246 それぞれにこのようなファイルを作っておけば良い。
250 は \fBmirrordir\fP \fI-ck --no-erase-directories\fP ...
251 と等価である (-c には -k が含まれるが)。よって
255 とよく似ているが、ファイル名は URL でも良く、
261 を使うほうがよい。本当に消してよい場合に限り、
267 コマンドライン上でディレクトリを降りてゆくだけで何も行わない。
268 これは \fBmirrordir\fP \fI--recures-mode\fP ...
271 オプションが追加される前にできたプログラムで、より厳密な
273 として、あるいは見つかったすべてのファイルを
274 tar ファイルにパックする目的に、それぞれ利用できる。
276 .\"nakano envoke は evoke の typo かな?
279 これまでに挙げた 3 つとはほとんど関係がない。
283 を用いて安全なログインセッションを開始する。
284 これは \fBmirrordir\fP \fI--login-mode\fP \fI--secure\fP ...
296 これは任意のサービスを安全なチャネルにフォワードできる。
302 通常のファイル名に替えて URL を使える点にある。
303 よってファイルをネットワーク越しに操作できる。
304 現在サポートされている URL のタイプは、
305 \fBftp://\fP と \fBmc://\fP である
306 (\fBhttp://\fP はファイルシステムではないので、サポートされていない)。
307 \fBmc://\fP は \fBMidnight Commander\fP ファイルシステムで、
309 デーモンによってサービスされるものである。
311 強く安全なファイル転送およびログインを提供するという長所がある。
316 コマンドには glob 表現も利用できる。
320 は、強力なストリーム cipher 暗号化と、
321 何種類かの鍵サイズでの Diffie-Hellman 鍵交換をサポートしている。
325 .BR --secure ", " --key-size ", " --download-scripts
343 .IP \fB--restore-access\fP
347 .IP \fB--access-times\fP
353 すべてのファイルを書き変えるよう強制する。
359 指定したディレクトリを再帰的に読み、それらに対しては何も行わない。
363 と共に指定してシェルコマンドを実行したりするのに便利である。
365 .BR system() ", " exec() ", " popen
377 の代わりに使えるような、安全な暗号化された接続を提供する。
383 を用いた場合は、コマンドラインにはパスを 1 つだけ指定しなければならない。
385 [\fBmc://\fP][\fIusername\fP\fB@\fP]\fIhostname\fP[\fB:\fP\fIportnumber\fP][\fB/\fP\fIpath\fP]
388 ログイン後直ちに、シェルプロンプトから \fBcd\fP \fI/path\fP
391 は文字 \fB#\fP, \fB$\fP, \fB>\fP を調べ、
395 はずっと止まったままになる。この動作を避けるには、
399 とすれば良い。するとログインディレクトリに留まったままになる。
400 あるいはシェルプロンプトを変更して、これらの文字を含めるようにしてもよい。
408 と同じように振る舞う。このオプションを用いると、暗黙のうちに
411 コピー先の既存のファイル・ディレクトリのうち、
412 コピー元と同じ名前を持つものはすべて上書きされるが、
413 これ以外の理由でファイルやディレクトリが削除されることはない。
414 コピー元には複数のファイルやディレクトリを指定できる。
415 コピー先のパスはディレクトリでなければならない。
417 \fB--no-erase-directories\fP
419 コピー先のディレクトリとコピー元のファイルがおなじ名前で、
421 エラーメッセージを表示して終了する。これは
425 \fB--erase-directories\fP
427 コピー先のディレクトリとコピー元のファイルがおなじ名前の場合、
428 コピー先のディレクトリは再帰的に削除される。これは
432 \fB--allow-empty-ftp-dirs\fP
433 ftp サーバには、 . とか .. といったディレクトリを生成しないものがある。
434 そのような場合、ディレクトリへの読み取り許可がないように見えてしまう。
435 このオプションを用いると、この動作を変更し、
436 このような完全に空のディレクトリを単に空であるとみなしてエラーにしない。
437 \fBunable to open directory: *: Permission denied\fP
438 というエラーになった場合は、このオプションを試してみるとよい。
439 このオプションはデフォルトでは有効になっている (次項を参照のこと)。
441 \fB--no-allow-empty-ftp-dirs\fP
442 現在はディレクトリに cd してアクセス許可を調べるためにようになったので、
443 デフォルトの動作は空のディレクトリを許可するようにした。
446 \fImirror\fP に対して、利用しているディスクスペースを
448 これは容量の限られているドライブに対してバックアップを取る場合、
449 転送の最中に \fIcontrol\fP に \fImirror\fP を増加させてしまうような
451 一度このオプションをつけて \fBmirrordir\fP を実行すれば、
452 次にこのオプションをつけて実行したときには、
453 利用できる領域を越えないことが通常は保証される。
455 \fB-i\fP, \fB--ignore-next-exclude\fP
456 このオプションを指定すると、次の --exclude- タイプのオプションは、
457 対象ファイルが mirror ディレクトリにあろうと無かろうと、
461 オプションで \fBIGNORE\fP が返った場合と同じ効果を持つ。
462 これは特定のファイルを決して変更しないようにするのに利用できる。
466 .B mirrordir /mnt/1 /mnt/2 -i --exclude /mnt/1/etc/named.boot
467 とすればよい。mirror ディレクトリではなく、
468 control ディレクトリのフルパスで指定することに注意。
469 .B --exclude /mnt/2/etc/named.boot
471 後者では、ファイルを削除したくない場合には
472 そのファイルが control ディレクトリに存在しなければならない
473 (たとえサイズ 0 であっても) という馬鹿げた動作となる。
475 \fB--exclude\fP \fIpath\fP
478 を除外する。コマンドラインにたくさんの exclude パスを指定すると、
479 動作が遅くなってしまう。除外されたパスは、
480 mirror ツリーに存在する場合は削除される
481 (そのディレクトリまたはファイルが存在していない場合と同様である)。
482 これらのファイルを削除せずに無視して保持しておきたい場合は、
483 --ignore オプションを用いること。
485 除外するファイルが長いリストになる場合は、
489 \fB--exclude-glob\fP \fIglob\fP
492 にマッチするファイルするディレクトリを除外する。
493 ファイルへのマッチではフルパスを用いない。
494 シェルにおいては、glob 表現を適切な引用符で括り、
497 \fB--exclude-regexp\fP \fIregex\fP
500 にマッチするファイルやディレクトリを除外する。
501 シェルにおいては、正規表現を適切な引用符で括り、
504 \fB--exclude-script\fP [\fIexpr\fP|\fIfile\fP]
506 各ファイルに対する処理を行なう前に、スクリプト \fIexpr\fP を実行する。
508 C 言語スタイルの文ブロックからなり、\`\fBreturn\fP \fIexpression\fP;\'
517 のいずれかであり、そのファイルに対して成すべき動作を示す。
519 にセミコロン (;) が含まれていない場合は、
520 これはファイル名とみなされ、そのファイルがロードされる。
521 それ以外の場合は、テキストは高速化のために
528 が返った場合は、コマンドラインにあるその他の
532 インタープリタがおかしなエラーを報告したり、
533 セグメンテーションフォールトを起こした場合は、
534 その原因となったスクリプトを私に送ってほしい。
536 このスクリプト言語自体は、C プログラミング言語のサブセットである。
537 例えば以下のようなものは正しいスクリプトである。
540 /* PATH はファイルのフルパス名で、DIR は末尾に
541 スラッシュ (/) の無いディレクトリ、CWD は
542 カレントワーキングディレクトリ、dpath() は
543 フォワードスラッシュ (/) の個数-1 を返す。*/
544 if (depth (DIR) - depth (CWD) > 3) {
545 printf ("%s: excluded\\n", PATH);
551 このスクリプト言語は代入演算子をサポートしない。
552 したがってユーザ定義変数をサポートしない。
555 マクロの展開は、ディレクトリにもファイルと等しく同じように適用される。
561 パス・拡張子の無いファイル名。末尾にドット (.) は付かない。
564 ファイルの拡張子。先頭にドット (.) は付かない。
567 ファイル名の無いディレクトリ。末尾にスラッシュ (/) は付かない。
578 C のすべての論理演算子・算術演算子・ビット演算子がサポートされている。
596 \fB^\fP で、これらは全て C のものと同じ意味を持つ。
599 各々は整数 (C での \fBlong int\fP 型) を返す。
600 これらはそのファイルに対する \fBlstat\fP
601 (または \fB--follow-symlinks\fP が用いられている場合は \fBstat\fP)
606 \fBstat.st_dev\fP - デバイス
608 \fBstat.st_ino\fP - i-ノード
610 \fBstat.st_mode \fP - 許可属性 (permission)
612 \fBstat.st_nlink\fP - ハードリンクの数
614 \fBstat.st_uid\fP - 所有者のユーザ id
616 \fBstat.st_gid\fP - 所有者のグループ id
618 \fBstat.st_rdev \fP - デバイスタイプ
620 \fBstat.st_size \fP - ファイルサイズ (バイト単位)
622 \fBstat.st_blksize\fP - ファイルシステム I/O のブロックサイズ
624 \fBstat.st_blocks\fP - アロケート済みのブロック数
625 .\"nakaon allocated の typo?
627 \fBstat.st_atime\fP - 最後にアクセスされた時刻 (秒単位)
629 \fBstat.st_mtime\fP - 最後に変更された時刻 (行単位)
631 \fBstat.st_ctime\fP - 作成された時刻
635 \fBstrncmp\fP(\fIstring1\fP, \fIstring2\fP, \fIinteger\fP);
636 string1 が string2 より小さい場合は 0 以下の整数を、
640 \fBglob\fP(\fIglob\fP, \fIstring\fP);
645 下層の実装における効率を良くしたい場合は、
646 あなたが書くコードでの glob 表現をひとつに限ってみること。
648 \fBregexp\fP(\fIregexp\fP, \fIstring\fP);
653 下層の実装における効率を良くしたい場合は、
654 あなたが書くコードでの正規表現をひとつに限ってみること。
656 \fBstrstr\fP(\fIstring1\fP, \fIstring2\fP);
660 の位置を返す。現れない場合は 0 を返す。
665 これらは、指定された条件が真の場合に非ゼロの値を返す。
667 \fBS_ISLNK\fP(\fIinteger\fP); - ファイルはシンボリックリンク
669 \fBS_ISREG\fP(\fIinteger\fP); - ファイルは通常のファイル
671 \fBS_ISDIR\fP(\fIinteger\fP); - ファイルはディレクトリ
673 \fBS_ISCHR\fP(\fIinteger\fP); - ファイルはキャラクタデバイス
675 \fBS_ISBLK\fP(\fIinteger\fP); - ファイルはブロックデバイス
677 \fBS_ISFIFO\fP(\fIinteger\fP); - ファイルは fifo
679 \fBS_ISSOCK\fP(\fIinteger\fP); - ファイルはソケット
683 \fBstrcat\fP(\fIstring1\fP, \fIstring2\fP);
691 \fBdepth\fP(\fIstring\fP);
693 に現れるフォワードスラッシュ (/) の個数から 1 を引いたものを返す。
695 \fBprintf\fP(\fIformat\fP, ...);
697 のように動作する。ただし重要な例外がある:
699 のフォーマット指定以外は使ってはならない。
700 これ以外の指定を行なったときの変換結果は未定義である。
701 例えば、\fB"%d"\fP ではなく \fB"%ld"\fP を用いること。
706 \fBsystem\fP(\fIcommand\fP);
709 を実行する。しかし C 言語のものとは異なり、
715 \fBexec\fP(\fIargv0\fP, \fIargv1\fP, ...);
723 これは \fBsh\fP を経由しないので \fBsystem\fP より速い。
725 \fBpopen\fP([\fIstring\fP, ] \fIshell_command\fP);
733 の標準入力に与え、成功したら 0 を返す。
735 以下の整数定数も利用可能で、stat.h で定義されているマクロ
740 \fBS_IFMT S_IFSOCK S_IFLNK S_IFREG S_IFBLK S_IFDIR S_IFCHR S_IFIFO
741 S_ISUID S_ISGID S_ISVTX S_IRWXU S_IRUSR S_IWUSR S_IXUSR S_IRWXG
742 S_IRGRP S_IWGRP S_IXGRP S_IRWXO S_IROTH S_IWOTH S_IXOTH\fP
746 文を用いて返し、呼出し元に意図を伝える必要がある。
760 そのファイルが mirror ディレクトリにあろうと無かろうと、
764 そのファイルが control ディレクトリに存在しないものとみなす。
765 よって mirror ディレクトリからは削除される
785 .\"nakano 原文 1,2 は typo。
790 \fBif\fP (\fIinteger\fP) {
811 \fBreturn\fP \fIexpression\fP;
820 \fBexit\fP(\fIinteger\fP);
823 通常 C スクリプトは、特定のファイルを除外するために用いる。
824 これはスクリプト言語の実装としてはやりすぎで、
825 機能のすべてを一般用途向けに書いたわけではない。
826 典型的なスクリプトは、例えばデバイスファイルを除外する、
830 if (S_ISSOCK(stat.st_mode) || S_ISFIFO(stat.st_mode)
831 || S_ISBLK(stat.st_mode) || S_ISCHR(stat.st_mode)) {
839 C スクリプトはファイルを検索するためにも利用できる
844 /* core ファイルを全て削除する */
845 /* この例は \fB例\fP セクションに移動した。 */
850 \fB--exclude-from\fP \fIfile\fP
853 に書かれているリストに含まれるパスを除外する。
854 空行とコメント行 (行頭の文字が # の行) は無視される。
855 このファイルのリストはソートされ二分木探索されるので、
856 たくさんのファイル名を除外したい場合には、
857 ここにそれらのファイルを書く方が性能は良くなる。
858 このオプションは複数指定でき、複数個のファイルを指定できる。
861 の最後に与えたパスは、改行で終らなければならない。
863 \fB--backup-extension\fP \fIlevel\fP
864 ファイルを削除したり置き換えたりする前に、
867 は C 形式のフォーマット文字列で、例えば .ORIG.%d
868 (% へのシェル代入に注意) のようにする。
872 がファイル名に追加され、古いファイルほど大きな番号を持つ。
874 \fB--backup-outdate \fIsec\fP
876 秒よりも古いバックアップファイルを削除する。
878 \fB--nice\fP \fInum\fP
879 時々スリープして、他のプロセスに対して行儀良く振る舞う。
880 --nice を指定すると、プロセスはアクティブであった時間の
882 倍の時間スリープする。したがって 1 を指定すると
883 (非常におおざっぱに言えば) コピーに要する時間は 2 倍になり、
886 CPU 負荷を小さくして行ないたい場合に利用するとよい。
887 システムによっては --nice は利用できないかもしれない。
890 .\"nakano than は then の typo
891 通常はファイルの許可属性設定が行なわれる。
892 アクセス権限が制限されていて、許可属性を変更できない場合は、
893 このオプションを指定すれば許可属性設定を無効にできる。
896 .\"nakano than は then の typo
898 アクセス権限が制限されていて、所有者を変更できない場合は、
899 このオプションを指定すれば所有権設定を無効にできる。
901 \fB--mtime-threshold\fP \fIsec\fP
902 mtime の違いがこの値よりも小さい場合には、
903 ファイルは上書きされない。ftp サイトをミラーした場合、
904 そのミラー中の mtime は分の単位の精度しか持たないので、
905 これを nfs ミラーしようとするとすべてのファイルがコピーされる。
906 これを直すには --mtime-threshold 60 を用いればよい。
908 \fB--time-offset\fP [[\fI+\fP]|\fI-\fP][\fIH\fP]\fIH\fP[\fI:MM\fP]
909 vfs な (つまり ローカルでない) ディレクトリの時刻オフセットを設定する。
910 例えば私は New York より 8 時間東にいるので、
912 .B --time-offset -8:00
915 \fB--test-only, --dry-run\fP
919 これはディレクトリ間の比較をするのにも効果的な方法である。
921 すなわち、このオプションが\fB本当に\fI変更をしないかどうかは、
924 \fB--skip-symlinks\fP
925 シンボリックリンクは、読み込まれなかったかのように扱われる。
926 よってそれらが mirror ディレクトリにあると、削除される。
939 \fB--no-hard-links\fP
943 指定されると、ハードリンクは通常ファイルのようにコピーされる。
945 \fB--follow-symlinks\fP
949 指定されると、シンボリックリンクは通常ファイルとしてコピーされる。
950 Debian ツリーをミラーするときに便利である。
952 シンボリックリンクは control と mirror の両方で解決される、
954 依ってシンボリックリンクが mirror ディレクトリに存在していると、
955 それらはそのままシンボリックリンクのまま残る。
961 \fB--strict-locking\fP
962 ファイルを読み込むとき、共有読み込みのロックを作成する。
968 同時にそれらに書き込みを行なおうとするかもしれない)。
969 このオプションは仮想ファイルシステムに対しては効力を持たない。
971 .BR "--max-bytes " [[ \fInum\fP [ k | M | G ]] "" | \fInum\fP ]
972 このバイト数を越えると `filled up all blocks - first file/dir not mirrored:
973 \fIpath\fP' というメッセージが標準出力に表示される。
974 残りのファイルは \fImirror\fP から削除されるが、
975 これはリストされた順序で行なわれる。よって
977 が走り続けていると、アーカイブの大きさが \fInum\fP を越えることがある。
979 \fInum\fP は利用できるスペースより小さくしておくこと。
981 完全にいっぱいになる前に `No space left on device'
984 には \fB--starting-file\fP \fIpath\fP オプションがあり、
985 これを用いると別のデバイスで作業を継続できる。
994 (大文字小文字を区別する) のいずれかを後置でき、
995 それぞれキロバイト、メガバイト、ギガバイトを指定する。
996 どれかひとつのファイルがこの数値よりも大きいと、
1001 .BR "--password " \fIpassword\fP
1002 FTP 接続・mc:// 接続に対するパスワードを設定する。
1004 デフォルトで「ログイン名@ローカルマシン名」になっている。
1005 それ以外のログインパスワードは、プロンプトが出て尋ねられる。
1007 パスワードをスクリプトに含めるのはセキュリティ上のリスクがある。
1012 オプションを指定しないかたちの方がずっと良い。
1017 \fB--password-exact\fP \fIpassword\fP]
1018 匿名パスワードの前に \fB-\fP を前置しない。
1019 ftp の匿名パスワードでは、通常パスワード文字列の前に
1021 Midnight Commander vfs がなぜこのようにしていたのか知らないが、
1022 あるユーザがこの問題に突き当たったので、
1031 を用いるとき、非対話的なアクセスをテストしてみたいことがあるだろう
1032 (例えばシェルスクリプトで用いたいときなど)。
1035 をこのオプションとともに実行し、終了ステータスを見ればよい。
1037 は、ユーザがパスワードサーバにログインできるかどうかを調べるために、
1040 \fB--no-warn-first-login\fP
1041 あるマシンに対して最初に安全な接続を試みた時は、
1043 よって「間に人」攻撃に対して無防備である。
1045 ユーザにプロンプトが出され、継続したいかどうか尋ねられる。
1046 このオプションはこの警告を出さないようにし、
1049 \fB--read-password-from-stdin\fP
1050 パスワードをコマンドラインから指定するのではなく、
1052 これは見えないパスワードをタイプ入力するのと同じではない。
1058 は、ユーザがパスワードサーバにログインできるかどうかを調べるために、
1063 をスキャンする。デフォルトでこのオプションは on になっている。
1069 \fB--proxy-host\fP \fIhost\fP
1070 ftp ダウンロードのプロキシを設定する。
1072 あるいは実際に動作するかどうかは私にはわからない。
1078 (\fIこの機能はβ段階である\fP) 私は
1080 用に安全なソケット層を実装した。これはこのオプションで有効となり、
1082 の接続 (すなわち \fBmc://\fP 形式の URL) に適用される。
1091 をインクルードし、そのプログラムを際コンパイルすれば、
1092 通常のソケットが全て安全なソケットになる
1093 (これは Unix のソケットコールを用いる、あらゆるプログラムに当てはまるが、
1097 で、デフォルトでコンパイルされ、インストールされる。
1101 \fBmc://\fP ファイルシステムは
1103 オプションで利用できる (\fBsecure-mcserv -h\fP とすればヘルプが表示される)。
1105 は、DES などのブロック cipher よりずっと安全で高速なストリーム cipher を、
1106 公開鍵サーバ認証 (Diffie-Hellman 及び p-NEW スキーム) の
1108 .\"nakano この辺おかしいかもしれない。
1111 を見てほしい。デフォルトの鍵のサイズは 512 ビットである。
1116 .B -O3 -fomit-frame-pointer -s -Wall
1117 オプションをつけると、鍵生成が高速化される。
1119 .BR "--key-size " \fIbits\fP
1120 デフォルトの鍵サイズは 512 ビットである。
1121 サイズを変更するには素数を生成して fileld.c に書き込まなければならないので、
1122 field.c にリストされているサイズだけがサポートされており、
1123 .\"nakano primes はミスだろう。
1124 現時点ではこれは 512, 768, 1024, 1536 である。
1125 遅い計算機を用いている場合には、中程度のセキュリティとなる 768 を奨める。
1126 それ以外なら、長い目で見れば 1536 も非合理で偏執的な値、というわけでもない。
1127 巨大企業・良くつないでくるハッカー・政府などがあなたの接続を
1128 盗聴している心配がなければ、512 でも構わないだろう。
1129 ストリーム cipher は \fBbits\fP/2 の長さを持つので、クラックされる確率は、
1130 宝くじを換金しているあいだに隕石にぶち当たる確率よりは低い。
1131 ただしある人間が接続を盗聴し、長い間出力をとり続ければ、
1133 20 年も経てば、1536 ビットの鍵も小さいと考えられるかもしれない。
1134 また (ここで用いられている) 離散対数問題は、
1135 素因数分解よりも解くのが難しいと考えられているので、
1136 鍵は RSA よりも実効的にやや大きいことになる。
1137 これは私の (どちらかというと無学な) 意見である。
1139 \fB--download-scripts\fP
1141 には 2 つの版、\fIInternational\fP 版と \fIUS\fP 版がある
1143 を見よ)。\fIUS\fP 版は暗号化に類するコードを一切含んでいない。
1144 その代わり、必要なアルゴリズムを (\fB南アフリカ\fP にある)
1145 .B encrypt.obsidian.co.za
1147 これらは高速かつネイティブな、C 形式のインタープリタ言語で書かれている。
1148 これらは 4 つのスクリプトからなる。それぞれ、
1149 Diffie-Hellman 鍵交換サーバ、Diffie-Hellman 鍵交換クライアント、
1150 ストリーム cipher の初期化、実際にストリーム cipher を用いた暗号化、
1153 は、あなたがセキュリティ機能を用いようとすると、
1154 自動的にこれらのスクリプトをダウンロードする。しかしこの
1155 .B --download-script
1156 オプションを用いると、いつでもダウンロードを実行できる。
1157 \fIInternational\fP 版にはストリーム cipher が組み込まれていて、
1159 これらは配布に含まれているのでダウンロードの必要はない。
1160 Diffie-Hellman 交換をスクリプトで用いても、速度的な劣化は生じない。
1162 スクリプトと組み込みの間の違いが結構大きいかもしれない。
1173 .B --download-scripts
1176 \fB-z\fP, \fB--gzip\fP
1179 実際には符号化よりも低いレベルにある圧縮ソケット層を呼出す。
1184 ライブラリを用いて行なう。圧縮の程度は、
1185 転送時間を最小化するように動的に設定される。
1186 高速なイーサネット接続なら無圧縮にまで低くなりうるし、
1187 モデム経由の遅い接続では最大圧縮にまで高くなる。
1188 このアルゴリズムは、TCP の write コールが、
1191 する (つまり圧縮する) 時間の 2〜5 % の範囲になるように、
1194 \fB--gzip-backups\fP
1195 バックアップは通常は単にファイルのコピーである。
1196 このオプションを指定すると各ファイルは圧縮され、
1199 バックアップの拡張として、あなたが自分で
1200 .B --backup-extension
1205 \fB--case-insensitive\fP, \fB--for-Robert-Seese\fP
1206 ファイル名やリンク名の比較に、大文字小文字の違いを無視する。
1207 これは、特定の頭の悪い OS と通信するときに便利だろう。
1208 このオプションがすべての状況で正しく動作するかどうかは、あまり自信が無い。
1213 すべての新しいファイル名を大文字または小文字に変換する。
1214 .B --case-insensitive
1215 と共に用いると、新しいファイルを作成する場合にのみ適用される。
1216 .B --case-insensitive
1217 なしで指定すると、既存かどうかに関らす、
1218 すべてのファイルが大文字・小文字に変換される。
1220 古いファイルを一度消してから、新しいファイルを再度コピーする。
1221 これは、特定の頭の悪い OS と通信するときに便利だろう。
1222 このオプションがすべての状況で正しく動作するかどうかは、あまり自信が無い。
1224 \fB--no-use-passive-connections\fP
1225 .B could not setup passive mode
1226 というエラーメッセージを受け取った場合、
1227 このオプションを有効にする必要があると考えられる。
1228 私は `passive' の意味するところを完全には理解していないので、
1231 \fB--tar-file\fP \fIfilename\fP
1234 と共にのみ用いる。tar アーカイブを GNU
1238 に保存する。先頭の特殊なプレフィックスと末尾のスラッシュは削除される。
1240 .I http://machine/dir/file
1243 になる。ファイル名の先頭文字が | の場合、
1244 テキストの残りは出力がパイプされるコマンドとみなされる。
1245 よって gzip 圧縮アーカイブは、例えば以下のようにすれば作成できる。
1247 recursdir ftp://machine/dir --tar-file '| gzip -d > foo.tar.gz'
1249 \fB--tar-block-size\fP \fIN\fP
1250 tar 出力のブロックサイズを 512 * \fIN\fP にする。
1251 これはデータをアーカイブに書き込むときの単位である。
1253 これはブロックデバイスに書き込むときに限って意味を持つ。
1258 .BR "--block-size " \fIbytes\fP
1259 デフォルトのブロックサイズは 1024 バイトである。
1261 ファイルサイズは隣接するブロック末尾に切り上げられる。
1262 実際のブロックサイズがこの値よりも大きいと、
1263 書き込み時に実際に利用されるブロック数よりも、
1267 オプションを用いるときには、実際のブロックサイズと同じ、
1268 またはより大きな値を指定することがとても大切である。
1274 control のファイルよりも「古い」場合に限って上書きコピーを行なう。
1276 ファイル間に修正時刻の「何らかの」差異があれば、コピーを行なう。
1283 ファイルのコピーを mtime に基づいて行ない、
1286 .BR "--starting-file " \fIpath\fP
1290 が読まれるまでは、ファイルやディレクトリは除外ファイル
1293 にある場合は削除される) のように扱われる。
1295 を含むディレクトリは、存在していなければ作成される。
1297 が読み込まれると、ファイルやディレクトリは通常にミラーされる。
1301 またはそのサブディレクトリが存在していない場合は、
1302 .\"nakano path がなくてサブディレクトリがある場合ってあるの?
1310 が見つからない場合に、ファイルシステム全体が削除されるのを防ぐためである。
1313 Midnight Commander の仮想ファイルシステム
1314 (Virtual File System: \fBVFS\fP) を利用する形でサポートされている。
1315 要するにつまり、URL もローカルディレクトリと同じようにサポートされている。
1318 mirrordir --verbose \\
1319 ftp://lava.obsidian.co.za/pub/mirrordir \\
1324 mirrordir --verbose /home/mirrordir \\
1325 ftp://psheer@lava.obsidian.co.za/home/ftp/pub/mirrordir
1327 も動作する。ただし後者ではまずパスワードを尋ねられる。
1328 ftp サーバに「アップロード」を行う場合は、
1329 --strict-mtimes オプションは on にすべきでない。
1330 ftp では修正時刻の設定はできないので、
1336 で修正時刻とアクセス時刻をセットしようとしていることに気づくだろう。
1337 用いている VFS のタイプにおける制限をユーザに知らせるために、
1338 これらのメッセージは残しておくつもりである。
1339 これらの試行は、明らかな性能の劣化としては現われない。
1340 しかしこのプロトコルを用いたアップロードの性能が悪い場合は、代わりに
1343 なおダウンロードは常にアップロードよりも高速である。
1345 一般に cron ジョブでは ftp アップロードを用いるべきではない。
1346 またディレクトリの同期を取る目的にも向いていない。
1347 ディレクトリを同期したい場合は、反対側からのダウンロードを用いること。
1348 アップロードは一回きりのアップロードにしか有用でない。
1352 を用いて行える、ちょっと気の効いた作業を紹介する。
1357 古い版をパッチを適用するために保管しておきたいとする。
1363 \fB mirrordir -v tree tree.OLD\fP
1369 を実行すれば、最小限の変更のみ (つまり更新されたファイルのみ)
1378 定期的なバックアップをテープアーカイブに行っていることがある。
1380 あるパーティションと同一のコピーを恒常的に保持しているシステムもあるだろう。
1383 システムに 2 台のドライブを装備する。ひとつは普段用いるもの、
1384 もう一つはバックアップするためのものである。
1390 変更されたファイルのバックアップには、様々なオプションが利用できる。
1391 バックアップディレクトリはユーザから読み取り可能にしておき、
1392 各人のバックアップファイルを閲覧できるようにしておくといいだろう。
1393 特定のファイルの古いバージョンを取り戻したいユーザは、
1396 は変更されたファイルの最小限だけを処理するので、非常に高速である。
1397 一日に何回も実行したり、あるいは --nice オプションを付けて
1398 途切れることなく実行させることさえ可能である。
1400 マシンが壊れたときに対する備えをさらに強固にしたければ、
1401 FTP を用いてリモートマシンにバックアップを行うこともできる。
1404 .B 2 台のマシンを毎時バックアップする
1407 というマシン上で、私は次のような cron ジョブを 6 時間ごとに実行している。
1412 # (this is just in case of any bugs I don't know about,
1413 # but I don't think it is necessary)
1415 killall mirrordir >& /dev/null
1417 killall -9 mirrordir >& /dev/null
1421 echo "mirrordir says (if it said nothing it is bad):" ; \\
1422 mirrordir mc://dar1:12346/ -p abcdefg /mnt/dar1/ \\
1423 -i --exclude-regexp '^mc://dar1:12346/var/lock/subsys/atd' \\
1424 --exclude-regexp '^mc://dar1:12346/proc/' \\
1425 --exclude-regexp '^mc://dar1:12346/mnt/[^/]*/.*$' \\
1426 -i --exclude-regexp '^mc://dar1:12346/boot/' \\
1427 -i --exclude-regexp '^mc://dar1:12346/etc/lilo.conf' \\
1430 if (S_ISDIR (stat.st_mode)) {
1431 if (!regexp ("^mc://dar1:12346/[^/]*$", PATH))
1432 printf ("Backing up: %s\n", PATH);
1438 | tee --ignore-interrupts --append /var/log/mirrordir.log \\
1439 | mail -s 'dar1 backup results' psheer@obsidian.co.za
1450 \fBsecure-mcserv -p 12345 -d\fP
1456 \fBcopydir --secure -K 512 -z \\
1457 mc://alan@turing.co.uk:12345/usr/src/linux/.config .\fP
1460 とすれば、512 ビットの鍵を用いた安全なファイルコピー (圧縮つき) ができる。
1464 \fBpslogin mc://alan@turing.co.uk:12345/\fP
1467 とすれば、このマシンに安全にログインできる。
1473 ftp サイトでは ls の -R オプションが禁止されていることが多いので、
1481 \fBmirrordir -v ftp://metalab.unc.edu/pub /home/ftp/pub\fP
1488 よくある FTP 転送は、--copy-mode オプションを用いた
1491 また別々の ftp サイトにすら (間接的にではあるが)、
1496 \fBcopydir -v mirrordir-0.9.15.tar.gz \\
1497 mirrordir.lsm ftp://metalab.unc.edu/incoming/Linux\fP
1501 を sunsite にアップロードする。
1503 anonymous でない ftp 転送のパスワードは、標準的な ftp の慣習に従って
1505 ファイルに置き、--netrc オプションを用いるのがよい。
1507 .B ftp://myname@machine/
1512 \fBrecursdir / -C\fP
1514 .B 'if (!glob ("*.c", FILE)) printf ("%s\\\\n", PATH);'
1516 とするとシステムにあるすべての C ファイルを表示する。
1518 \fBrecursdir / -C\fP
1520 .B 'if (S_ISCHR(stat.st_mode)) printf ("%s\\\\n", PATH);'
1522 とすればシステムにあるすべてのキャラクタデバイスを表示する。
1524 .B FTP サイトをテープにバックアップする
1526 リモートサイトをテープにバックアップするには
1529 \fBrecursdir ftp://user@remote.machine/ \\
1530 --exclude-regexp '//[^/]*/proc/' --tar-file /dev/mt\fP
1538 これはシステムからすべての core ファイルを削除する:
1543 if (strncmp (PATH, "/proc", 5)) {
1544 if (S_ISREG (stat.st_mode) && !strcmp ("core", FILE)) {
1545 if (strstr (popen ("file " + PATH), "ELF 32-bit LSB core")) {
1546 l = l + stat.st_size;
1547 printf ("removing: %s, cumu. total = %ldkB\\n", PATH, l >> 10);
1548 exec ("rm", "-f", PATH); /* could also use system() */
1559 一時的なファイルを保管させたいディレクトリ。
1561 まずファイルをこの一時ディレクトリにダウンロードし、
1562 正しい場所にそのファイルをコピーする。後述の \fBバグ\fP を参照のこと。
1565 デフォルトでは現在進行中のファイルがあるディレクトリに保存される。
1574 何らかのエラー (書き込みエラー、許可属性エラーなど) が起った。
1575 この場合、エラーの詳細は stderr に書き込まれているはずである。
1578 あるファイルが利用中でコピーできなかったが、それ以外は成功した。
1579 この場合は `unable to open control file for writing'
1580 というエラーが書き込まれているはずである。
1581 標準エラーでこのメッセージを grep し、これらのファイルに対してのみ
1582 もう一度 mirrordir を実行すればよい。
1588 ロックファイル (や pid ファイル?) をそのファイルもロック付きで作成するため、
1593 を停止させるか、このファイルを対象から除外しなければならない。
1595 サマータイムの時間補正があるところと ftp でミラーを行うと、
1596 1 時間の時間のオフセットが生じるように見える。
1597 とりあえずの回避策としては --time-offset を用いてほしい。
1603 のせいで CPU が食い尽くされ、停止してしまうように見えるバグは修正された。
1605 コマンドラインから多数の --exclude 式を指定すると、
1606 処理が遅くなる。たくさんのファイルのリストを除外対象したい人は、
1611 シンボリックリンク (それが指すファイルではない)
1612 の修正時刻とアクセス時刻は複製されない。
1614 以前にあった、ハードリンクファイルが通常ファイルとして扱われてしまうという
1615 制限は解決された。--no-hard-links オプションを指定すれば、
1616 0.9.8 以前の動作をエミュレート可能である。
1618 ハードリンクがデバイスをまたいで作成されているかどうかはチェックしていない。
1619 この場合はそれに見合ったエラーが報告されることになろう。
1621 ftp ファイルシステムは、まずファイルを一時ディレクトリに
1622 \fB*ftpfs*\fP という名前でダウンロードする。
1623 これはスペースの無駄だが、vfs ライブラリのデフォルトの動作なのだ。
1624 このディレクトリに十分な容量がないと、おそらく
1627 上述の \fB環境変数\fP を参照のこと。
1629 ファイル除外に用いる C スクリプト言語は、
1639 .B /etc/ssocket/accept.cs
1640 このスクリプトは、接続のサーバ側で、鍵交換と署名生成を行う。
1642 .B /etc/ssocket/connect.cs
1643 このスクリプトは、接続のクライアント側で、鍵交換と署名生成を行う。
1645 .B /etc/ssocket/arcinit.cs
1646 ストリーム cipher 暗号化を初期化する
1649 .B /etc/ssocket/arcencrypt.cs
1653 .B /etc/ssocket/private/
1654 このディレクトリには、ホストの秘密鍵が置かれる。
1655 鍵はそれぞれ別々のファイルに保存される。
1656 ファイル名は 512, 1024 などである。
1658 鍵管理用のユーティリティが必要になるので、
1660 すぐに Reiser ファイルシステムが標準的になるだろうから、
1661 データベースファイルはいずれにしても不要になるだろう。
1663 .B /etc/ssocket/public/
1664 こちらは公開鍵のもの。後は \fB/etc/ssocket/private/\fP と同様。
1666 mirrordir は作成者の発明であり、
1667 いかなる OS の標準にも従っていない (そうするべきではあるが!)
1670 \fBftp://metalab.unc.edu/pub/Linux/system/backup\fP または
1671 \fBftp://lava.obsidian.co.za/pub/linux/mirrordir\fP
1674 Paul Sheer <psheer@obsidian.co.za> <psheer@icon.co.za>
1675 .\" man page by Jim Van Zandt <jrv@vanzandt.mv.com>
1677 \fBmirror\fP(1), \fBpavuk\fP(1), \fBcp\fP(1), \fBscp\fP(1),
1678 \fBfind\fP(1), \fBmc\fP(1), \fBftp\fP(1), \fBssh\fP(1),
1679 \fBtar\fP(1), \fBrlogin\fP(1), \fBrlogind\fP(8), \fBforward\fP(1)