Manpages

名 前

pslogin − 強 力 な ス ト リ ー ム cipher 暗 号 化 と diffie-hellman 鍵 交 換 を 用 い た 安 全 な リ モ ー ト tcp ロ グ イ ン

forward − 任 意 の tcp ソ ケ ッ ト を 安 全 か つ 暗 号 化 さ れ た チ ャ ネ ル に フ ォ ワ ー ド す る

copydir, mirrordir − 変 更 さ れ た 最 小 の 部 分 の み を 用 い て (ロ ー カ ル 、 FTP 経 由 、 安 全 な tcp 接 続 経 由 で ) デ ィ レ ク ト リ ツ リ ー を コ ピ ー ま た は ミ ラ ー す る

recursdir − フ ァ イ ル の 操 作 /検 索 や tar フ ァ イ ル 作 成 の た め に 、 ロ ー カ ル ま た は リ モ ー ト の デ ィ レ ク ト リ を 再 帰 的 に 探 索 す る

書 式

mirrordir
[-a, --access-times]
[-m, --strict-mtimes]
[--no-mtimes]
[--ignore-size]
[-A, --mtime-threshold ext]
[--time-offset [[+]|-][H]H[:MM]]
[-A, --always-write]
[-r, --restore-access]
[--no-chown]
[--no-chmod]
[-D, --only-delete]
[-b, -S, --backup-extension, --suffix ext]
[-N, --num-backups num]
[-O, --backup-outdate sec]
[-B, --block-size bytes]
[-M, --max-bytes num[K|M|G]]
[-s, --starting-file path]
[-i, --ignore-next-exclude]
[[-i] -X, --exclude path] [[-i] -X, --exclude path] ...
[[-i] -F, --exclude-from file] ...
[[-i] -G, --exclude-glob expr] [[-i] -G, --exclude-glob expr] ...
[[-i] -R, --exclude-regexp expr] [[-i] -R, --exclude-regexp expr] ...
[-C, --exclude-script [expr|file]] [-C, --exclude-script [expr|file]] ...
[-h, --help]
[-v, --verbose] [-v, --verbose] ...
[-V, --version]
[-k, --keep-files]
[-l, --no-hard-links]
[--follow-symlinks]
[-L, --strict-locking]
[-p, --password password]
[-P, --password-exact password]
[--test-login]
[--no-warn-first-login]
[--read-password-from-stdin]
[--allow-empty-ftp-dirs]
[--no-allow-empty-ftp-dirs]
[--netrc]
[--no-netrc]
[--proxy-host host]
[--secure]
[-z, --gzip]
[--gzip-backups]
[--case-insensitive]
[--to-lower]
[--to-upper]
[--no-use-passive-connections]
[-K, --key-size bits]
[--download-scripts]
[--tar-file filename]
[--tar-block-size N]
[-t, --dry-run, --test-only]
[--nice num] control mirror

mirrordir [-c | --copy-mode | --recurs-mode ] -[abBCdDFGhklMmNOopRrstvVX] src [src ...] dest

copydir -[abBCdeFGhklMmNOopRrstvVX] src [src ...] dest

recursdir -[abBCdeFGhklMmNOopRrstvVX] src [src ...]

pslogin [--key-size bits] [mc://][username@]hostname[:portnumber][/path] し か し 通 常 は 単 に :
mirrordir
[--exclude path] control mirror
copydir
src [src ...] dest
recursdir
src [src ...] [-C program]
pslogin
[username@]hostname[:portnumber]

説 明

mirrordir は デ ィ レ ク ト リ を 操 作 し た り ミ ラ ー す る 際 に 便 利 な ユ ー テ ィ リ テ ィ の 集 ま り で あ る 。 ssh(1) の 代 替 に な る コ マ ン ド pslogin や 、 任 意 の TCP ソ ケ ッ ト 接 続 を 暗 号 化 さ れ た 安 全 な チ ャ ネ ル に フ ォ ワ ー ド す る forward(1) も 含 ま れ て い る 。

mirrordir は 2 つ の デ ィ レ ク ト リ controlmirror と の 間 で 異 な る フ ァ イ ル を 、 control か ら mirror へ と コ ピ ー す る 。 修 正 時 刻 (modification time) ま た は サ イ ズ が 異 な る フ ァ イ ル が コ ピ ー さ れ る 。 フ ァ イ ル の 許 可 属 性 ・ 所 有 者 ・ 修 正 時 刻 ・ ア ク セ ス 時 刻 (--access-time が 用 い ら れ た 場 合 の み )・ ス テ ィ ッ キ ー ビ ッ ト ・ デ バ イ ス タ イ プ が 複 製 さ れ る 。 シ ン ボ リ ッ ク リ ン ク は リ ン ク 先 の 解 決 を さ れ ず に そ の ま ま コ ピ ー さ れ る 。 シ ン ボ リ ッ ク リ ン ク の 修 正 ・ ア ク セ ス 時 刻 (シ ン ボ リ ッ ク 自 身 の も の で 、 シ ン ボ リ ッ ク が 指 す フ ァ イ ル の も の で は な い こ と に 注 意 ) は 保 存 さ れ な い 。 ハ ー ド リ ン ク さ れ た フ ァ イ ル は 単 に コ ピ ー さ れ る 。 生 成 時 刻 は 、 私 の 知 る 限 り Unix で は 設 定 で き な い 。

mirrordir危 険 な コ マ ン ド で あ る 。 mirror に あ っ て control に な い フ ァ イ ル や デ ィ レ ク ト リ は 削 除 さ れ る か ら で あ る 。 も し control が 完 全 に 空 の 場 合 に は 、 mirror の す べ て の フ ァ イ ル や デ ィ レ ク ト リ が 削 除 さ れ る 。 も し mirror が 完 全 に 空 の 場 合 に は 、 control の す べ て の フ ァ イ ル や デ ィ レ ク ト リ が コ ピ ー さ れ る 。 要 す る に mirrordirmirror を デ ィ レ ク ト リ ツ リ ー control の 完 全 な レ プ リ カ に し 、 ま た そ の 際 に あ ら ゆ る も の を (定 期 的 バ ッ ク ア ッ プ と い う 目 的 に 合 致 す る な ら ) 可 能 な 限 り 複 製 し よ う と す る 。 当 然 mirrordir は サ ブ デ ィ レ ク ト リ の 一 番 深 い と こ ろ ま で 降 り て い く 。 デ ィ レ ク ト リ ミ ラ ー の 際 に は 、 そ れ に 必 要 な 最 小 の 変 更 の み を 調 べ 、 可 能 な 限 り 効 率 的 に 動 作 し よ う と す る 。 ア ク セ ス 時 刻 の 複 製 は 通 常 は 必 要 な く 、 ま た 不 要 な 負 荷 を 与 え る こ と に な る 。 よ っ て こ れ は オ プ シ ョ ン に な っ て い る 。 デ ィ レ ク ト リ control に は 、 何 の 変 化 も 与 え な い 。 --restore-access が 与 え ら れ る と 、 ア ク セ ス 時 刻 は 読 み 込 み の た び に 、 元 の 時 刻 に 再 設 定 さ れ る 。

--strict-locking オ プ シ ョ ン を オ ン に す る と 、 control に あ る コ ピ ー 作 業 中 の フ ァ イ ル は 「 共 有 読 み 込 み (shared reading)」 に ロ ッ ク さ れ る 。 こ れ に よ っ て 、 他 の プ ロ セ ス が そ の フ ァ イ ル に 頻 繁 に 書 き 込 み を 行 っ て い る 場 合 で も 、 フ ァ イ ル が 不 完 全 な 状 態 や 壊 れ た 状 態 で は コ ピ ー さ れ な い こ と を 保 証 す る 。 通 常 mirrordir は 問 題 が あ っ て も 中 断 せ ず 、 問 題 の 報 告 を stderr へ の エ ラ ー メ ッ セ ー ジ と し て 行 い 、 動 作 を 継 続 す る 。 デ ィ レ ク ト リ mirrordest は (た と え 空 で あ っ て も ) 存 在 し て い な け れ ば な ら な い 。 デ ィ レ ク ト リ の す べ て の フ ァ イ ル を 削 除 す る 前 に 、 mirrordir*--keep-me と い う フ ァ イ ル (こ こ で * は 0 ま た は 1 つ の 文 字 ) を チ ェ ッ ク す る 。 こ の フ ァ イ ル が 存 在 す る と 、 エ ラ ー メ ッ セ ー ジ を 出 し て 中 断 す る 。 よ っ て 再 帰 的 に 削 除 さ れ て は ま ず い デ ィ レ ク ト リ が あ っ た ら 、 そ れ ぞ れ に こ の よ う な フ ァ イ ル を 作 っ て お け ば 良 い 。

copydirmirrordir -ck --no-erase-directories ... と 等 価 で あ る (-c に は -k が 含 ま れ る が )。 よ っ て copydir は 厳 密 な 意 味 で の cp(1) と よ く 似 て い る が 、 フ ァ イ ル 名 は URL で も 良 く 、 か つ 古 い フ ァ イ ル だ け が 置 き 換 え ら れ る 。 フ ァ イ ル 転 送 に は 、 ほ と ん ど の 場 合 mirrordir で は な く copydir を 使 う ほ う が よ い 。 本 当 に 消 し て よ い 場 合 に 限 り 、 mirrordir を 使 う よ う に す る こ と 。

recursdir は ま た も う 一 つ の プ ロ グ ラ ム で 、 コ マ ン ド ラ イ ン 上 で デ ィ レ ク ト リ を 降 り て ゆ く だ け で 何 も 行 わ な い 。 こ れ は mirrordir --recures-mode ... と 等 価 で あ る 。 こ れ は -C オ プ シ ョ ン が 追 加 さ れ る 前 に で き た プ ロ グ ラ ム で 、 よ り 厳 密 な find(1) と し て 、 あ る い は 見 つ か っ た す べ て の フ ァ イ ル を tar フ ァ イ ル に パ ッ ク す る 目 的 に 、 そ れ ぞ れ 利 用 で き る 。

pslogin は さ ら に も う 一 つ の プ ロ グ ラ ム で 、 こ れ ま で に 挙 げ た 3 つ と は ほ と ん ど 関 係 が な い 。 psloginsecure-mcserv を 用 い て 安 全 な ロ グ イ ン セ ッ シ ョ ン を 開 始 す る 。 こ れ は mirrordir --login-mode --secure ... と 等 価 で あ る 。 psloginlogindir と 呼 ぶ べ き か も し れ な い 。 後 述 の --login-mode を 参 照 の こ と 。

forward は さ ら に も う 一 つ の プ ロ グ ラ ム で 、 最 初 の 3 つ と は ほ と ん ど 関 係 が な い 。 こ れ は 任 意 の サ ー ビ ス を 安 全 な チ ャ ネ ル に フ ォ ワ ー ド で き る 。 詳 細 は forward(1) を 参 照 の こ と 。 こ の パ ッ ケ ー ジ の 重 要 な 点 は 、 通 常 の フ ァ イ ル 名 に 替 え て URL を 使 え る 点 に あ る 。 よ っ て フ ァ イ ル を ネ ッ ト ワ ー ク 越 し に 操 作 で き る 。 現 在 サ ポ ー ト さ れ て い る URL の タ イ プ は 、 ftp://mc:// で あ る (http:// は フ ァ イ ル シ ス テ ム で は な い の で 、 サ ポ ー ト さ れ て い な い )。 mc://Midnight Commander フ ァ イ ル シ ス テ ム で 、 secure-mcserv デ ー モ ン に よ っ て サ ー ビ ス さ れ る も の で あ る 。 こ れ に は 、 暗 号 化 さ れ た 、 強 く 安 全 な フ ァ イ ル 転 送 お よ び ロ グ イ ン を 提 供 す る と い う 長 所 が あ る 。

recursdir コ マ ン ド と copydir コ マ ン ド に は glob 表 現 も 利 用 で き る 。 こ れ ら は 再 帰 的 に 展 開 さ れ る 。

セ キ ュ リ テ ィ と 暗 号 化

mirrordir は 、 強 力 な ス ト リ ー ム cipher 暗 号 化 と 、 何 種 類 か の 鍵 サ イ ズ で の Diffie-Hellman 鍵 交 換 を サ ポ ー ト し て い る 。 安 全 な 接 続 は mc:// の 接 続 で 動 作 す る 。 オ プ シ ョ ン --secure, --key-size, --download-scripts を 参 照 の こ と 。 デ モ は の 節 を 、 公 開 鍵 ・ 秘 密 鍵 の 置 場 所 に つ い て は フ ァ イ ル の 節 を 参 照 の こ と 。

オ プ シ ョ ン

--help 詳 し い ヘ ル プ を 出 力 し て 終 了 す る 。

--verbose

mirror に 対 し て な さ れ た フ ァ イ ル 修 正 に 関 し て 、 詳 し い 出 力 を す る よ う 指 定 す る 。 こ の オ プ シ ョ ン は 複 数 個 指 定 で き 、 た く さ ん 指 定 す る ほ ど よ り 詳 し く 出 力 す る 。 出 力 は 標 準 出 力 に 書 き 出 さ れ る 。

--restore-access 読 み 込 む を 行 う ご と に 、 control の ア ク セ ス 時 間 を 元 に 戻 す 。
--access-times

control の ア ク セ ス 時 刻 も 複 製 す る 。

--always-write 同 じ に 見 え る か ど う か に 関 ら ず 、 す べ て の フ ァ イ ル を 書 き 変 え る よ う 強 制 す る 。
--recurs-mode
こ れ は recursdir で は デ フ ォ ル ト で 有 効 に な る 。 指 定 し た デ ィ レ ク ト リ を 再 帰 的 に 読 み 、 そ れ ら に 対 し て は 何 も 行 わ な い 。 こ の オ プ シ ョ ン は フ ァ イ ル を 検 索 し た り 、 -C と 共 に 指 定 し て シ ェ ル コ マ ン ド を 実 行 し た り す る の に 便 利 で あ る 。 な お C イ ン タ ー プ リ タ で は system(), exec(), popen 関 数 が 利 用 で き る 。
--login-mode
こ の オ プ シ ョ ン は pslogin で は デ フ ォ ル ト で セ ッ ト さ れ る 。 こ れ は secure-mcserv を サ ー バ に 使 う rlogin と だ い た い 同 じ に な る 。 ssh(1) の 代 わ り に 使 え る よ う な 、 安 全 な 暗 号 化 さ れ た 接 続 を 提 供 す る 。 pslogin は 暗 黙 の う ち に --secure も 指 定 す る 。 こ の オ プ シ ョ ン を 指 定 し た り 、 pslogin を 用 い た 場 合 は 、 コ マ ン ド ラ イ ン に は パ ス を 1 つ だ け 指 定 し な け れ ば な ら な い 。 指 定 の 形 式 は [mc://][username@]hostname[:portnumber][/path] で あ る 。 ロ グ イ ン 後 直 ち に 、 シ ェ ル プ ロ ン プ ト か ら cd /path が 実 行 さ れ る 。 pslogin は 文 字 #, $, > を 調 べ 、 プ ロ ン プ ト が 出 た か ど う か 判 断 す る 。 こ れ ら が 見 つ か ら な い と 、 pslogin は ず っ と 止 ま っ た ま ま に な る 。 こ の 動 作 を 避 け る に は 、 /path/ と す れ ば 良 い 。 す る と ロ グ イ ン デ ィ レ ク ト リ に 留 ま っ た ま ま に な る 。 あ る い は シ ェ ル プ ロ ン プ ト を 変 更 し て 、 こ れ ら の 文 字 を 含 め る よ う に し て も よ い 。
--copy-mode
こ れ は copydir で は デ フ ォ ル ト で セ ッ ト さ れ る 。 コ ピ ー 元 ・ コ ピ ー 先 の 各 フ ァ イ ル に 対 し て cp(1) と 同 じ よ う に 振 る 舞 う 。 こ の オ プ シ ョ ン を 用 い る と 、 暗 黙 の う ち に --keep-files を 指 定 し た こ と に な る 。 コ ピ ー 先 の 既 存 の フ ァ イ ル ・ デ ィ レ ク ト リ の う ち 、 コ ピ ー 元 と 同 じ 名 前 を 持 つ も の は す べ て 上 書 き さ れ る が 、 こ れ 以 外 の 理 由 で フ ァ イ ル や デ ィ レ ク ト リ が 削 除 さ れ る こ と は な い 。 コ ピ ー 元 に は 複 数 の フ ァ イ ル や デ ィ レ ク ト リ を 指 定 で き る 。 コ ピ ー 先 の パ ス は デ ィ レ ク ト リ で な け れ ば な ら な い 。
--no-erase-directories
こ の オ プ シ ョ ン を 指 定 す る と 、 コ ピ ー 先 の デ ィ レ ク ト リ と コ ピ ー 元 の フ ァ イ ル が お な じ 名 前 で 、 か つ そ の デ ィ レ ク ト リ が 空 で な い 場 合 、 エ ラ ー メ ッ セ ー ジ を 表 示 し て 終 了 す る 。 こ れ は copydir の デ フ ォ ル ト の 動 作 で あ る 。
--erase-directories
こ の オ プ シ ョ ン を 指 定 す る と 、 コ ピ ー 先 の デ ィ レ ク ト リ と コ ピ ー 元 の フ ァ イ ル が お な じ 名 前 の 場 合 、 コ ピ ー 先 の デ ィ レ ク ト リ は 再 帰 的 に 削 除 さ れ る 。 こ れ は mirrordir の デ フ ォ ル ト の 動 作 で あ る 。
--allow-empty-ftp-dirs

ftp サ ー バ に は 、 . と か .. と い っ た デ ィ レ ク ト リ を 生 成 し な い も の が あ る 。 そ の よ う な 場 合 、 デ ィ レ ク ト リ へ の 読 み 取 り 許 可 が な い よ う に 見 え て し ま う 。 こ の オ プ シ ョ ン を 用 い る と 、 こ の 動 作 を 変 更 し 、 こ の よ う な 完 全 に 空 の デ ィ レ ク ト リ を 単 に 空 で あ る と み な し て エ ラ ー に し な い 。 unable to open directory: *: Permission denied と い う エ ラ ー に な っ た 場 合 は 、 こ の オ プ シ ョ ン を 試 し て み る と よ い 。 こ の オ プ シ ョ ン は デ フ ォ ル ト で は 有 効 に な っ て い る (次 項 を 参 照 の こ と )。

--no-allow-empty-ftp-dirs 現 在 は デ ィ レ ク ト リ に cd し て ア ク セ ス 許 可 を 調 べ る た め に よ う に な っ た の で 、 デ フ ォ ル ト の 動 作 は 空 の デ ィ レ ク ト リ を 許 可 す る よ う に し た 。
--only-delete

mirror に 対 し て 、 利 用 し て い る デ ィ ス ク ス ペ ー ス を 増 加 さ せ る よ う な 変 更 は 一 切 行 な わ な い 。 こ れ は 容 量 の 限 ら れ て い る ド ラ イ ブ に 対 し て バ ッ ク ア ッ プ を 取 る 場 合 、 転 送 の 最 中 に controlmirror を 増 加 さ せ て し ま う よ う な 変 更 が な さ れ る と き に 便 利 で あ る 。 一 度 こ の オ プ シ ョ ン を つ け て mirrordir を 実 行 す れ ば 、 次 に こ の オ プ シ ョ ン を つ け て 実 行 し た と き に は 、 利 用 で き る 領 域 を 越 え な い こ と が 通 常 は 保 証 さ れ る 。

-i, --ignore-next-exclude こ の オ プ シ ョ ン を 指 定 す る と 、 次 の --exclude- タ イ プ の オ プ シ ョ ン は 、 対 象 フ ァ イ ル が mirror デ ィ レ ク ト リ に あ ろ う と 無 か ろ う と 、 そ れ ら を 完 全 に 無 視 す る こ と に な る 。 こ れ は 後 述 す る --exclude-script オ プ シ ョ ン で IGNORE が 返 っ た 場 合 と 同 じ 効 果 を 持 つ 。 こ れ は 特 定 の フ ァ イ ル を 決 し て 変 更 し な い よ う に す る の に 利 用 で き る 。 例 え ば /etc/named.boot を 決 し て 変 更 し た く な い 場 合 に は 、 mirrordir /mnt/1 /mnt/2 -i --exclude /mnt/1/etc/named.boot と す れ ば よ い 。 mirror デ ィ レ ク ト リ で は な く 、 control デ ィ レ ク ト リ の フ ル パ ス で 指 定 す る こ と に 注 意 。 --exclude /mnt/2/etc/named.boot で は 動 作 し な い 。 後 者 で は 、 フ ァ イ ル を 削 除 し た く な い 場 合 に は そ の フ ァ イ ル が control デ ィ レ ク ト リ に 存 在 し な け れ ば な ら な い (た と え サ イ ズ 0 で あ っ て も ) と い う 馬 鹿 げ た 動 作 と な る 。
--exclude
path フ ァ イ ル ま た は デ ィ レ ク ト リ path を 除 外 す る 。 コ マ ン ド ラ イ ン に た く さ ん の exclude パ ス を 指 定 す る と 、 動 作 が 遅 く な っ て し ま う 。 除 外 さ れ た パ ス は 、 mirror ツ リ ー に 存 在 す る 場 合 は 削 除 さ れ る (そ の デ ィ レ ク ト リ ま た は フ ァ イ ル が 存 在 し て い な い 場 合 と 同 様 で あ る )。 こ れ ら の フ ァ イ ル を 削 除 せ ず に 無 視 し て 保 持 し て お き た い 場 合 は 、 --ignore オ プ シ ョ ン を 用 い る こ と 。 除 外 す る フ ァ イ ル が 長 い リ ス ト に な る 場 合 は 、 --exclude-from オ プ シ ョ ン を 利 用 す る こ と 。
--exclude-glob
glob

glob 形 式 の 表 現 glob に マ ッ チ す る フ ァ イ ル す る デ ィ レ ク ト リ を 除 外 す る 。 フ ァ イ ル へ の マ ッ チ で は フ ル パ ス を 用 い な い 。 シ ェ ル に お い て は 、 glob 表 現 を 適 切 な 引 用 符 で 括 り 、 解 釈 さ れ な い よ う に す る 必 要 が あ る 。

--exclude-regexp regex フ ル パ ス 名 が regex に マ ッ チ す る フ ァ イ ル や デ ィ レ ク ト リ を 除 外 す る 。 シ ェ ル に お い て は 、 正 規 表 現 を 適 切 な 引 用 符 で 括 り 、 解 釈 さ れ な い よ う に す る 必 要 が あ る 。
--exclude-script
[expr|file] 各 フ ァ イ ル に 対 す る 処 理 を 行 な う 前 に 、 ス ク リ プ ト expr を 実 行 す る 。 こ の ス ク リ プ ト は C 言 語 ス タ イ ル の 文 ブ ロ ッ ク か ら な り 、 `return expression;´ で 終 了 す る 。 expression の 値 は INCLUDE, EXCLUDE, UNKNOWN IGNORE (上 述 の -ifP を 見 よ ) の い ず れ か で あ り 、 そ の フ ァ イ ル に 対 し て 成 す べ き 動 作 を 示 す 。 expr に セ ミ コ ロ ン (;) が 含 ま れ て い な い 場 合 は 、 こ れ は フ ァ イ ル 名 と み な さ れ 、 そ の フ ァ イ ル が ロ ー ド さ れ る 。 そ れ 以 外 の 場 合 は 、 テ キ ス ト は 高 速 化 の た め に 逆 ポ ー ラ ン ド 形 式 に コ ン パ イ ル さ れ る 。 こ の オ プ シ ョ ン は 複 数 指 定 で き 、 そ の 場 合 ス ク リ プ ト は UNKNOWN 以 外 の 値 が 返 る ま で 、 順 に 実 行 さ れ る 。 UNKNOWN が 返 っ た 場 合 は 、 コ マ ン ド ラ イ ン に あ る そ の 他 の --exclude- 形 式 の オ プ シ ョ ン が 効 力 を 持 つ 。 イ ン タ ー プ リ タ が お か し な エ ラ ー を 報 告 し た り 、 セ グ メ ン テ ー シ ョ ン フ ォ ー ル ト を 起 こ し た 場 合 は 、 そ の 原 因 と な っ た ス ク リ プ ト を 私 に 送 っ て ほ し い 。 こ の ス ク リ プ ト 言 語 自 体 は 、 C プ ロ グ ラ ミ ン グ 言 語 の サ ブ セ ッ ト で あ る 。 例 え ば 以 下 の よ う な も の は 正 し い ス ク リ プ ト で あ る 。

/* PATH は フ ァ イ ル の フ ル パ ス 名 で 、 DIR は 末 尾 に ス ラ ッ シ ュ
(/) の 無 い デ ィ レ ク ト リ 、 CWD は カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ 、
dpath() は フ ォ ワ ー ド ス ラ ッ シ ュ
(/) の 個 数 -1 を 返 す 。 */
if (depth (DIR) - depth (CWD) > 3) {
printf ("%s: excluded\n", PATH);
return EXCLUDE; }
else
return INCLUDE; こ の ス ク リ プ ト 言 語 は 代 入 演 算 子 を サ ポ ー ト し な い 。 し た が っ て ユ ー ザ 定 義 変 数 を サ ポ ー ト し な い 。 以 下 の 定 義 済 み マ ク ロ を 利 用 で き る 。 マ ク ロ の 展 開 は 、 デ ィ レ ク ト リ に も フ ァ イ ル と 等 し く 同 じ よ う に 適 用 さ れ る 。

FILE 現 在 の フ ァ イ ル

(パ ス 無 し )

NAME パ ス ・ 拡 張 子 の 無

い フ ァ イ ル 名 。 末 尾 に ド ッ ト (.) は 付 か な い 。

EXTENSION フ ァ イ ル の 拡 張 子 。 先 頭 に ド ッ ト (.) は 付 か な い 。

DIR フ ァ イ ル 名 の 無 い デ ィ レ ク ト リ 。 末 尾 に ス ラ ッ シ ュ

(/) は 付 か

な い 。

PATH フ ル パ ス の フ ァ イ ル 名

CWD カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ

TIME 現 在 時 刻

(秒 単 位 )

C の す べ て の 論 理 演 算 子 ・ 算 術 演 算 子 ・ ビ ッ ト 演 算 子 が サ ポ ー ト さ れ て い る 。 す な わ ち ( ) >= <= > < != == && || ! - + * / % & ^ で 、 こ れ ら は 全 て C の も の と 同 じ 意 味 を 持 つ 。 さ ら に 以 下 に 示 す マ ク ロ も 利 用 で き る 。 各 々 は 整 数 (C で の long int 型 ) を 返 す 。 こ れ ら は そ の フ ァ イ ル に 対 す る lstat (ま た は --follow-symlinks が 用 い ら れ て い る 場 合 は stat) を 基 に し て い る 。 詳 し い 説 明 は stat(2) を 参 照 の こ と 。

stat.st_dev - デ バ イ ス
stat.st_ino
- i-ノ ー ド
stat.st_mode
- 許 可 属 性 (permission)
stat.st_nlink
- ハ ー ド リ ン ク の 数
stat.st_uid
- 所 有 者 の ユ ー ザ id
stat.st_gid
- 所 有 者 の グ ル ー プ id
stat.st_rdev
- デ バ イ ス タ イ プ
stat.st_size
- フ ァ イ ル サ イ ズ (バ イ ト 単 位 )
stat.st_blksize
- フ ァ イ ル シ ス テ ム I/O の ブ ロ ッ ク サ イ ズ
stat.st_blocks
- ア ロ ケ ー ト 済 み の ブ ロ ッ ク 数
stat.st_atime
- 最 後 に ア ク セ ス さ れ た 時 刻 (秒 単 位 )
stat.st_mtime
- 最 後 に 変 更 さ れ た 時 刻 (行 単 位 )
stat.st_ctime
- 作 成 さ れ た 時 刻 以 下 の 関 数 は ブ ー ル 値 を 返 す 。
strncmp
(string1, string2, integer);

string1 が string2 よ り 小 さ い 場 合 は 0 以 下 の 整 数 を 、 マ ッ チ す る 場 合 は 0 を 、 大 き い 場 合 は 0 以 上 の 整 数 を 返 す 。

glob(glob, string);

string が glob 表 現 glob に マ ッ チ す る 場 合 は 0 を 返 す 。 下 層 の 実 装 に お け る 効 率 を 良 く し た い 場 合 は 、 あ な た が 書 く コ ー ド で の glob 表 現 を ひ と つ に 限 っ て み る こ と 。

regexp(regexp, string);

string が 正 規 表 現 regexp に マ ッ チ す る 場 合 は 0 を 返 す 。 下 層 の 実 装 に お け る 効 率 を 良 く し た い 場 合 は 、 あ な た が 書 く コ ー ド で の 正 規 表 現 を ひ と つ に 限 っ て み る こ と 。

strstr(string1, string2);

string1 の 長 さ の 範 囲 に 最 初 に 現 れ る string2 の 位 置 を 返 す 。 現 れ な い 場 合 は 0 を 返 す 。 以 下 の 関 数 も ブ ー ル 値 を 返 す 。 こ れ ら は stat(2) で 説 明 さ れ て い る マ ク ロ に 対 応 し て い る 。 こ れ ら は 、 指 定 さ れ た 条 件 が 真 の 場 合 に 非 ゼ ロ の 値 を 返 す 。

S_ISLNK(integer); - フ ァ イ ル は シ ン ボ リ ッ ク リ ン ク
S_ISREG
(integer); - フ ァ イ ル は 通 常 の フ ァ イ ル
S_ISDIR
(integer); - フ ァ イ ル は デ ィ レ ク ト リ
S_ISCHR
(integer); - フ ァ イ ル は キ ャ ラ ク タ デ バ イ ス
S_ISBLK
(integer); - フ ァ イ ル は ブ ロ ッ ク デ バ イ ス
S_ISFIFO
(integer); - フ ァ イ ル は fifo
S_ISSOCK
(integer); - フ ァ イ ル は ソ ケ ッ ト 以 下 の 関 数 は 文 字 列 を 操 作 す る 。
strcat
(string1, string2);

string1string2 を 連 結 し て 返 す 。 + 演 算 子 も 文 字 列 を 連 結 す る こ と に 注 意 。

depth(string);

string に 現 れ る フ ォ ワ ー ド ス ラ ッ シ ュ (/) の 個 数 か ら 1 を 引 い た も の を 返 す 。

printf(format, ...);

printf(3) の よ う に 動 作 す る 。 た だ し 重 要 な 例 外 が あ る : long int の フ ォ ー マ ッ ト 指 定 以 外 は 使 っ て は な ら な い 。 こ れ 以 外 の 指 定 を 行 な っ た と き の 変 換 結 果 は 未 定 義 で あ る 。 例 え ば 、 "%d" で は な く "%ld" を 用 い る こ と 。 結 果 は 標 準 出 力 に 表 示 さ れ る 。 以 下 の 関 数 は シ ス テ ム コ ー ル を 実 行 す る 。

system(command);

/bin/sh -c command を 実 行 す る 。 し か し C 言 語 の も の と は 異 な り 、 コ マ ン ド の 終 了 コ ー ド を 返 す 。 つ ま り 、 一 行 だ け の シ ェ ル ス ク リ プ ト command を 実 行 す る 。

exec(argv0, argv1, ...); プ ロ セ ス argv0 を 引 数 argv1... で 実 行 す る 。 argv0 フ ル パ ス で 指 定 し な け れ ば な ら な い 。 こ れ は sh を 経 由 し な い の で system よ り 速 い 。
popen
([string, ] shell_command);

system と 似 て い る が 、 shell_command の 出 力 を 文 字 列 と し て 返 す 。 string が 与 え ら れ て い る 場 合 に は 、 そ の 文 字 列 を shell_command の 標 準 入 力 に 与 え 、 成 功 し た ら 0 を 返 す 。 以 下 の 整 数 定 数 も 利 用 可 能 で 、 stat.h で 定 義 さ れ て い る マ ク ロ (説 明 は stat(2) に あ る ) に 対 応 す る 。

S_IFMT S_IFSOCK S_IFLNK S_IFREG S_IFBLK S_IFDIR S_IFCHR S_IFIFO S_ISUID S_ISGID S_ISVTX S_IRWXU S_IRUSR S_IWUSR S_IXUSR S_IRWXG S_IRGRP S_IWGRP S_IXGRP S_IRWXO S_IROTH S_IWOTH S_IXOTH 以 下 の 定 数 の ひ と つ を return 文 を 用 い て 返 し 、 呼 出 し 元 に 意 図 を 伝 え る 必 要 が あ る 。 何 も 返 さ な い 場 合 は 、 返 り 値 は UNKNOWN で あ る と み な さ れ る 。
UNKNOWN
ど う す べ き か 分 か ら な い 。 引 き 続 き 他 の --exclude- タ イ プ の オ プ シ ョ ン を 実 行 す る 。
INCLUDE
そ の フ ァ イ ル を 処 理 に 含 め る 。

IGNORE そ の フ ァ イ ル が

mirror デ ィ レ ク ト リ に あ ろ う と 無 か ろ う と 、

何 も 行 な わ な い 。

EXCLUDE そ の フ ァ イ ル が control デ ィ レ ク ト リ に 存 在 し な い も の と み な す 。 よ っ て mirror デ ィ レ ク ト リ か ら は 削 除 さ れ る (こ れ は --keep-files オ プ シ ョ ン よ り も 優 先 さ れ る )。 以 下 は C の よ う な フ ロ ー 制 御 を 行 な う 。 以 下 の if 文 は integer が 真 (つ ま り 非 ゼ ロ ) な ら ば statement1, statement2 な ど を 実 行 し 、 そ れ 以 外 の 場 合 は statementA, statementB な ど を 実 行 す る 。 else {...} の 部 分 は 省 略 可 能 で あ る 。

if (integer) {
statement1
;
statement2
;
.
.
. }
else
{
statementA
;
statementB
;
.
.
. }

return 文 は mirrordir に 値 を 返 し 、 ス ク リ プ ト を 終 了 さ せ る 。

return expression;

exit 関 数 は 、 mirrordir を 指 定 し た 終 了 コ ー ド で 終 了 さ せ る 。

exit(integer); 通 常 C ス ク リ プ ト は 、 特 定 の フ ァ イ ル を 除 外 す る た め に 用 い る 。 こ れ は ス ク リ プ ト 言 語 の 実 装 と し て は や り す ぎ で 、 機 能 の す べ て を 一 般 用 途 向 け に 書 い た わ け で は な い 。 典 型 的 な ス ク リ プ ト は 、 例 え ば デ バ イ ス フ ァ イ ル を 除 外 す る 、 と い う 程 度 の こ と に 留 ま る だ ろ う 。

if (S_ISSOCK(stat.st_mode) || S_ISFIFO(stat.st_mode)
|| S_ISBLK(stat.st_mode) || S_ISCHR(stat.st_mode)) {
return EXCLUDE; }
else
return INCLUDE;

--recurs-mode オ プ シ ョ ン と と も に 用 い れ ば 、 C ス ク リ プ ト は フ ァ イ ル を 検 索 す る た め に も 利 用 で き る (recursdir コ マ ン ド と 同 じ ):

/* core フ ァ イ ル を 全 て 削 除 す る */
/* こ の 例 は セ ク シ ョ ン に 移 動 し た 。 */

--exclude-from file フ ァ イ ル file に 書 か れ て い る リ ス ト に 含 ま れ る パ ス を 除 外 す る 。 空 行 と コ メ ン ト 行 (行 頭 の 文 字 が # の 行 ) は 無 視 さ れ る 。 こ の フ ァ イ ル の リ ス ト は ソ ー ト さ れ 二 分 木 探 索 さ れ る の で 、 た く さ ん の フ ァ イ ル 名 を 除 外 し た い 場 合 に は 、 こ こ に そ れ ら の フ ァ イ ル を 書 く 方 が 性 能 は 良 く な る 。 こ の オ プ シ ョ ン は 複 数 指 定 で き 、 複 数 個 の フ ァ イ ル を 指 定 で き る 。 バ グ : file の 最 後 に 与 え た パ ス は 、 改 行 で 終 ら な け れ ば な ら な い 。
--backup-extension
level フ ァ イ ル を 削 除 し た り 置 き 換 え た り す る 前 に 、 そ れ ら の フ ァ イ ル の バ ッ ク ア ッ プ を 作 る 。 extension は C 形 式 の フ ォ ー マ ッ ト 文 字 列 で 、 例 え ば .ORIG.%d (% へ の シ ェ ル 代 入 に 注 意 ) の よ う に す る 。 level は 保 存 し て お く リ ビ ジ ョ ン の 最 大 数 。 extension が フ ァ イ ル 名 に 追 加 さ れ 、 古 い フ ァ イ ル ほ ど 大 き な 番 号 を 持 つ 。
--backup-outdate
sec

sec 秒 よ り も 古 い バ ッ ク ア ッ プ フ ァ イ ル を 削 除 す る 。

--nice num 時 々 ス リ ー プ し て 、 他 の プ ロ セ ス に 対 し て 行 儀 良 く 振 る 舞 う 。 --nice を 指 定 す る と 、 プ ロ セ ス は ア ク テ ィ ブ で あ っ た 時 間 の num 倍 の 時 間 ス リ ー プ す る 。 し た が っ て 1 を 指 定 す る と (非 常 に お お ざ っ ぱ に 言 え ば ) コ ピ ー に 要 す る 時 間 は 2 倍 に な り 、 3 を 指 定 す れ ば 4 倍 に な る 。 こ れ は 定 期 的 な バ ッ ク ア ッ プ を 、 CPU 負 荷 を 小 さ く し て 行 な い た い 場 合 に 利 用 す る と よ い 。 シ ス テ ム に よ っ て は --nice は 利 用 で き な い か も し れ な い 。
--no-chmod
通 常 は フ ァ イ ル の 許 可 属 性 設 定 が 行 な わ れ る 。 ア ク セ ス 権 限 が 制 限 さ れ て い て 、 許 可 属 性 を 変 更 で き な い 場 合 は 、 こ の オ プ シ ョ ン を 指 定 す れ ば 許 可 属 性 設 定 を 無 効 に で き る 。
--no-chown
通 常 は フ ァ イ ル の 所 有 権 設 定 が 行 な わ れ る 。 ア ク セ ス 権 限 が 制 限 さ れ て い て 、 所 有 者 を 変 更 で き な い 場 合 は 、 こ の オ プ シ ョ ン を 指 定 す れ ば 所 有 権 設 定 を 無 効 に で き る 。
--mtime-threshold
sec

mtime の 違 い が こ の 値 よ り も 小 さ い 場 合 に は 、 フ ァ イ ル は 上 書 き さ れ な い 。 ftp サ イ ト を ミ ラ ー し た 場 合 、 そ の ミ ラ ー 中 の mtime は 分 の 単 位 の 精 度 し か 持 た な い の で 、 こ れ を nfs ミ ラ ー し よ う と す る と す べ て の フ ァ イ ル が コ ピ ー さ れ る 。 こ れ を 直 す に は --mtime-threshold 60 を 用 い れ ば よ い 。

--time-offset [[+]|-][H]H[:MM]

vfs な (つ ま り ロ ー カ ル で な い ) デ ィ レ ク ト リ の 時 刻 オ フ セ ッ ト を 設 定 す る 。 例 え ば 私 は New York よ り 8 時 間 東 に い る の で 、 New York か ら ミ ラ ー す る 場 合 に は --time-offset -8:00 を 使 っ て い る 。

--test-only, --dry-run 実 際 に は 変 更 を 行 な わ な い 。 --verbose と 共 に 用 い る と 、 ど の よ う な 変 更 が な さ れ る か を 表 示 で き る 。 こ れ は デ ィ レ ク ト リ 間 の 比 較 を す る の に も 効 果 的 な 方 法 で あ る 。 こ れ は テ ス ト さ れ て い な い 。 す な わ ち 、 こ の オ プ シ ョ ン が 本 当 に 変 更 を し な い か ど う か は 、 私 は 保 証 で き な い 。
--skip-symlinks
シ ン ボ リ ッ ク リ ン ク は 、 読 み 込 ま れ な か っ た か の よ う に 扱 わ れ る 。 よ っ て そ れ ら が mirror デ ィ レ ク ト リ に あ る と 、 削 除 さ れ る 。
--keep-files
フ ァ イ ル が control に 無 い 場 合 で も 、 そ の フ ァ イ ル を mirror か ら 削 除 し な い 。 こ う す る と mirrordir は あ る 意 味 cp(1) の よ う に な る 。
--no-hard-links
こ の オ プ シ ョ ン が 指 定 さ れ な い 限 り 、 mirrordir は ハ ー ド リ ン ク 属 性 を 正 し く ミ ラ ー す る 。 指 定 さ れ る と 、 ハ ー ド リ ン ク は 通 常 フ ァ イ ル の よ う に コ ピ ー さ れ る 。
--follow-symlinks
こ の オ プ シ ョ ン が 指 定 さ れ な け れ ば 、 mirrordir は シ ン ボ リ ッ ク リ ン ク を 適 切 に ミ ラ ー す る 。 指 定 さ れ る と 、 シ ン ボ リ ッ ク リ ン ク は 通 常 フ ァ イ ル と し て コ ピ ー さ れ る 。 Debian ツ リ ー を ミ ラ ー す る と き に 便 利 で あ る 。 注 意 し て ほ し い の は 、 シ ン ボ リ ッ ク リ ン ク は control と mirror の 両 方 で 解 決 さ れ る 、 と い う 点 で あ る 。 依 っ て シ ン ボ リ ッ ク リ ン ク が mirror デ ィ レ ク ト リ に 存 在 し て い る と 、 そ れ ら は そ の ま ま シ ン ボ リ ッ ク リ ン ク の ま ま 残 る 。 --follow-symlinks を 指 定 す る と 、 暗 黙 の う ち に --no-hard-links も 指 定 し た こ と に な る 。
--strict-locking
フ ァ イ ル を 読 み 込 む と き 、 共 有 読 み 込 み の ロ ッ ク を 作 成 す る 。 こ れ は フ ァ イ ル コ ピ ー の 事 故 を 予 防 す る 。 特 に メ ー ル デ ィ レ ク ト リ に 対 し て 有 効 で あ る (メ ー ル プ ロ グ ラ ム は mirrordir が フ ァ イ ル を 読 み 込 も う と し て い る と き に 、 同 時 に そ れ ら に 書 き 込 み を 行 な お う と す る か も し れ な い )。 こ の オ プ シ ョ ン は 仮 想 フ ァ イ ル シ ス テ ム に 対 し て は 効 力 を 持 た な い 。
--max-bytes
[[num[k|M|G]]|num] こ の バ イ ト 数 を 越 え る と ’filled up all blocks - first file/dir not mirrored: path’ と い う メ ッ セ ー ジ が 標 準 出 力 に 表 示 さ れ る 。 残 り の フ ァ イ ル は mirror か ら 削 除 さ れ る が 、 こ れ は リ ス ト さ れ た 順 序 で 行 な わ れ る 。 よ っ て mirrordir が 走 り 続 け て い る と 、 ア ー カ イ ブ の 大 き さ が num を 越 え る こ と が あ る 。 こ の 偶 発 分 の ゆ と り を と っ て 、 num は 利 用 で き る ス ペ ー ス よ り 小 さ く し て お く こ と 。 ま た フ ァ イ ル シ ス テ ム に よ っ て は 、 完 全 に い っ ぱ い に な る 前 に ’No space left on device’ と い う メ ッ セ ー ジ を 出 す こ と が あ る 。 mirrordir に は --starting-file path オ プ シ ョ ン が あ り 、 こ れ を 用 い る と 別 の デ バ イ ス で 作 業 を 継 続 で き る 。 こ う す れ ば 、 複 数 の デ バ イ ス に 対 し て mirrordir を 用 い た バ ッ ク ア ッ プ が で き る 。 num に は k, M, G (大 文 字 小 文 字 を 区 別 す る ) の い ず れ か を 後 置 で き 、 そ れ ぞ れ キ ロ バ イ ト 、 メ ガ バ イ ト 、 ギ ガ バ イ ト を 指 定 す る 。 ど れ か ひ と つ の フ ァ イ ル が こ の 数 値 よ り も 大 き い と 、 エ ラ ー メ ッ セ ー ジ が 表 示 さ れ る 。 --block-size も 参 照 の こ と 。
--password
password

FTP 接 続 ・ mc:// 接 続 に 対 す る パ ス ワ ー ド を 設 定 す る 。 匿 名 接 続 の 場 合 の パ ス ワ ー ド は 、 デ フ ォ ル ト で 「 ロ グ イ ン 名 @ロ ー カ ル マ シ ン 名 」 に な っ て い る 。 そ れ 以 外 の ロ グ イ ン パ ス ワ ー ド は 、 プ ロ ン プ ト が 出 て 尋 ね ら れ る 。 い つ も の 警 告 だ が 、 パ ス ワ ー ド を ス ク リ プ ト に 含 め る の は セ キ ュ リ テ ィ 上 の リ ス ク が あ る 。 パ ス ワ ー ド は ~/.netrc フ ァ イ ル に 入 れ 、 --no-netrc オ プ シ ョ ン を 指 定 し な い か た ち の 方 が ず っ と 良 い 。 詳 細 は man ftp を 見 よ 。

--password-exact password] 匿 名 パ ス ワ ー ド の 前 に - を 前 置 し な い 。 ftp の 匿 名 パ ス ワ ー ド で は 、 通 常 パ ス ワ ー ド 文 字 列 の 前 に - が 置 か れ る 。 私 は Midnight Commander vfs が な ぜ こ の よ う に し て い た の か 知 ら な い が 、 あ る ユ ー ザ が こ の 問 題 に 突 き 当 た っ た の で 、 こ の オ プ シ ョ ン を 設 け 、 パ ス ワ ー ド を password に 指 定 し た 通 り に 送 れ る よ う に し て い る 。
--test-login

--login-modepslogin を 用 い る と き 、 非 対 話 的 な ア ク セ ス を テ ス ト し て み た い こ と が あ る だ ろ う (例 え ば シ ェ ル ス ク リ プ ト で 用 い た い と き な ど )。 こ れ を 行 な う に は 、 pslogin を こ の オ プ シ ョ ン と と も に 実 行 し 、 終 了 ス テ ー タ ス を 見 れ ば よ い 。 secure-mcserv は 、 ユ ー ザ が パ ス ワ ー ド サ ー バ に ロ グ イ ン で き る か ど う か を 調 べ る た め に 、 こ れ を 用 い て い る 。

--no-warn-first-login あ る マ シ ン に 対 し て 最 初 に 安 全 な 接 続 を 試 み た 時 は 、 公 開 鍵 が ロ ー カ ル マ シ ン に 存 在 し な い 。 よ っ て 「 間 に 人 」 攻 撃 に 対 し て 無 防 備 で あ る 。 こ の 内 容 に 関 す る 警 告 が 表 示 さ れ 、 ユ ー ザ に プ ロ ン プ ト が 出 さ れ 、 継 続 し た い か ど う か 尋 ね ら れ る 。 こ の オ プ シ ョ ン は こ の 警 告 を 出 さ な い よ う に し 、 一 切 を 無 視 し て 先 に 進 む 。
--read-password-from-stdin
パ ス ワ ー ド を コ マ ン ド ラ イ ン か ら 指 定 す る の で は な く 、 標 準 入 力 か ら 与 え る 。 こ れ は 見 え な い パ ス ワ ー ド を タ イ プ 入 力 す る の と 同 じ で は な い 。 こ ち ら は 端 末 が 無 い 場 合 に で も 使 え る 。 こ れ は 他 の プ ロ グ ラ ム か ら 、 例 え ば popen(3) な ど を 用 い て 利 用 す る 場 合 に 都 合 が 良 い 。 secure-mcserv は 、 ユ ー ザ が パ ス ワ ー ド サ ー バ に ロ グ イ ン で き る か ど う か を 調 べ る た め に 、 こ れ を 用 い て い る 。
--netrc

~/.netrc を ス キ ャ ン す る 。 デ フ ォ ル ト で こ の オ プ シ ョ ン は on に な っ て い る 。

--no-netrc

~/.netrc フ ァ イ ル の 読 み 込 み を 行 な わ な い 。

--proxy-host host

ftp ダ ウ ン ロ ー ド の プ ロ キ シ を 設 定 す る 。 こ れ が ど の よ う に 動 作 す る の か 、 あ る い は 実 際 に 動 作 す る か ど う か は 私 に は わ か ら な い 。 プ ロ キ シ の サ ポ ー ト に つ い て は mc(1) に あ た っ て ほ し い 。

--secure

(こ の 機 能 は β段 階 で あ る ) 私 は mirrordir 用 に 安 全 な ソ ケ ッ ト 層 を 実 装 し た 。 こ れ は こ の オ プ シ ョ ン で 有 効 と な り 、 secure-mcserv の 接 続 (す な わ ち mc:// 形 式 の URL) に 適 用 さ れ る 。 安 全 な ソ ケ ッ ト の ラ イ ブ ラ リ は libdiffie.a と ヘ ッ ダ フ ァ イ ル diffie-socket.h か ら な る 。 sys/socket.h の 後 に diffie-socket.h を イ ン ク ル ー ド し 、 そ の プ ロ グ ラ ム を 際 コ ン パ イ ル す れ ば 、 通 常 の ソ ケ ッ ト が 全 て 安 全 な ソ ケ ッ ト に な る (こ れ は Unix の ソ ケ ッ ト コ ー ル を 用 い る 、 あ ら ゆ る プ ロ グ ラ ム に 当 て は ま る が 、 し か し テ ス ト は さ れ て い な い )。 こ れ を サ ポ ー ト す る 最 初 の サ ー ビ ス は secure-mcserv で 、 デ フ ォ ル ト で コ ン パ イ ル さ れ 、 イ ン ス ト ー ル さ れ る 。 よ っ て 、 リ モ ー ト の ホ ス ト も secure-mcserv を 走 ら せ て い れ ば 、 mc:// フ ァ イ ル シ ス テ ム は --secure オ プ シ ョ ン で 利 用 で き る (secure-mcserv -h と す れ ば ヘ ル プ が 表 示 さ れ る )。 --secure は 、 DES な ど の ブ ロ ッ ク cipher よ り ず っ と 安 全 で 高 速 な ス ト リ ー ム cipher を 、 公 開 鍵 サ ー バ 認 証 (Diffie-Hellman 及 び p-NEW ス キ ー ム ) の 離 散 対 数 鍵 交 換 で 用 い て い る 。 詳 細 は ソ ー ス 配 布 の diffie-socket.h を 見 て ほ し い 。 デ フ ォ ル ト の 鍵 の サ イ ズ は 512 ビ ッ ト で あ る 。 gcc を 用 い て い る 場 合 は 、 mirrordir の コ ン パ イ ル 時 に -O3 -fomit-frame-pointer -s -Wall オ プ シ ョ ン を つ け る と 、 鍵 生 成 が 高 速 化 さ れ る 。

--key-size bits デ フ ォ ル ト の 鍵 サ イ ズ は 512 ビ ッ ト で あ る 。 サ イ ズ を 変 更 す る に は 素 数 を 生 成 し て fileld.c に 書 き 込 ま な け れ ば な ら な い の で 、 field.c に リ ス ト さ れ て い る サ イ ズ だ け が サ ポ ー ト さ れ て お り 、 現 時 点 で は こ れ は 512, 768, 1024, 1536 で あ る 。 遅 い 計 算 機 を 用 い て い る 場 合 に は 、 中 程 度 の セ キ ュ リ テ ィ と な る 768 を 奨 め る 。 そ れ 以 外 な ら 、 長 い 目 で 見 れ ば 1536 も 非 合 理 で 偏 執 的 な 値 、 と い う わ け で も な い 。 巨 大 企 業 ・ 良 く つ な い で く る ハ ッ カ ー ・ 政 府 な ど が あ な た の 接 続 を 盗 聴 し て い る 心 配 が な け れ ば 、 512 で も 構 わ な い だ ろ う 。 ス ト リ ー ム cipher は bits/2 の 長 さ を 持 つ の で 、 ク ラ ッ ク さ れ る 確 率 は 、 宝 く じ を 換 金 し て い る あ い だ に 隕 石 に ぶ ち 当 た る 確 率 よ り は 低 い 。 た だ し あ る 人 間 が 接 続 を 盗 聴 し 、 長 い 間 出 力 を と り 続 け れ ば 、 破 る こ と は 不 可 能 で は な い 。 20 年 も 経 て ば 、 1536 ビ ッ ト の 鍵 も 小 さ い と 考 え ら れ る か も し れ な い 。 ま た (こ こ で 用 い ら れ て い る ) 離 散 対 数 問 題 は 、 素 因 数 分 解 よ り も 解 く の が 難 し い と 考 え ら れ て い る の で 、 鍵 は RSA よ り も 実 効 的 に や や 大 き い こ と に な る 。 こ れ は 私 の (ど ち ら か と い う と 無 学 な ) 意 見 で あ る 。
--download-scripts

mirrordir に は 2 つ の 版 、 International 版 と US 版 が あ る (--version を 見 よ )。 US 版 は 暗 号 化 に 類 す る コ ー ド を 一 切 含 ん で い な い 。 そ の 代 わ り 、 必 要 な ア ル ゴ リ ズ ム を (南 ア フ リ カ に あ る ) encrypt.obsidian.co.za か ら ダ ウ ン ロ ー ド す る よ う に な っ て い る 。 こ れ ら は 高 速 か つ ネ イ テ ィ ブ な 、 C 形 式 の イ ン タ ー プ リ タ 言 語 で 書 か れ て い る 。 こ れ ら は 4 つ の ス ク リ プ ト か ら な る 。 そ れ ぞ れ 、 Diffie-Hellman 鍵 交 換 サ ー バ 、 Diffie-Hellman 鍵 交 換 ク ラ イ ア ン ト 、 ス ト リ ー ム cipher の 初 期 化 、 実 際 に ス ト リ ー ム cipher を 用 い た 暗 号 化 、 の た め の も の で あ る 。 mirrordir は 、 あ な た が セ キ ュ リ テ ィ 機 能 を 用 い よ う と す る と 、 自 動 的 に こ れ ら の ス ク リ プ ト を ダ ウ ン ロ ー ド す る 。 し か し こ の --download-script オ プ シ ョ ン を 用 い る と 、 い つ で も ダ ウ ン ロ ー ド を 実 行 で き る 。 International 版 に は ス ト リ ー ム cipher が 組 み 込 ま れ て い て 、 2 つ の ス ク リ プ ト だ け を 用 い る が 、 こ れ ら は 配 布 に 含 ま れ て い る の で ダ ウ ン ロ ー ド の 必 要 は な い 。 Diffie-Hellman 交 換 を ス ク リ プ ト で 用 い て も 、 速 度 的 な 劣 化 は 生 じ な い 。 し か し 暗 号 化 に 関 し て は 、 ス ク リ プ ト と 組 み 込 み の 間 の 違 い が 結 構 大 き い か も し れ な い 。

--version バ ー ジ ョ ン 番 号 と 、 こ の mirrordirInternational 版 か US 版 か を 表 示 す る 。 --download-scripts を 見 よ 。
-z
, --gzip

mc:// 接 続 で 圧 縮 を 有 効 に す る 。 実 際 に は 符 号 化 よ り も 低 い レ ベ ル に あ る 圧 縮 ソ ケ ッ ト 層 を 呼 出 す 。 圧 縮 は gzip(1)libz ラ イ ブ ラ リ を 用 い て 行 な う 。 圧 縮 の 程 度 は 、 転 送 時 間 を 最 小 化 す る よ う に 動 的 に 設 定 さ れ る 。 高 速 な イ ー サ ネ ッ ト 接 続 な ら 無 圧 縮 に ま で 低 く な り う る し 、 モ デ ム 経 由 の 遅 い 接 続 で は 最 大 圧 縮 に ま で 高 く な る 。 こ の ア ル ゴ リ ズ ム は 、 TCP の write コ ー ル が 、 同 量 の デ ー タ を deflate す る (つ ま り 圧 縮 す る ) 時 間 の 2〜 5 % の 範 囲 に な る よ う に 、 圧 縮 レ ベ ル を 調 整 す る 。

--gzip-backups バ ッ ク ア ッ プ は 通 常 は 単 に フ ァ イ ル の コ ピ ー で あ る 。 こ の オ プ シ ョ ン を 指 定 す る と 各 フ ァ イ ル は 圧 縮 さ れ 、 .gz が デ フ ォ ル ト の 拡 張 子 と し て 付 加 さ れ る 。 バ ッ ク ア ッ プ の 拡 張 と し て 、 あ な た が 自 分 で --backup-extension の 指 定 を 行 な っ た 場 合 は 、 そ の 末 尾 が .gz で 終 ら な い と 、 比 較 が 正 し く 動 作 し な い 。
--case-insensitive
, --for-Robert-Seese フ ァ イ ル 名 や リ ン ク 名 の 比 較 に 、 大 文 字 小 文 字 の 違 い を 無 視 す る 。 こ れ は 、 特 定 の 頭 の 悪 い OS と 通 信 す る と き に 便 利 だ ろ う 。 こ の オ プ シ ョ ン が す べ て の 状 況 で 正 し く 動 作 す る か ど う か は 、 あ ま り 自 信 が 無 い 。
--to-lower
--to-upper
す べ て の 新 し い フ ァ イ ル 名 を 大 文 字 ま た は 小 文 字 に 変 換 す る 。 --case-insensitive と 共 に 用 い る と 、 新 し い フ ァ イ ル を 作 成 す る 場 合 に の み 適 用 さ れ る 。 --case-insensitive な し で 指 定 す る と 、 既 存 か ど う か に 関 ら す 、 す べ て の フ ァ イ ル が 大 文 字 ・ 小 文 字 に 変 換 さ れ る 。 こ の と き の 方 法 は 非 効 率 的 な も の で 、 古 い フ ァ イ ル を 一 度 消 し て か ら 、 新 し い フ ァ イ ル を 再 度 コ ピ ー す る 。 こ れ は 、 特 定 の 頭 の 悪 い OS と 通 信 す る と き に 便 利 だ ろ う 。 こ の オ プ シ ョ ン が す べ て の 状 況 で 正 し く 動 作 す る か ど う か は 、 あ ま り 自 信 が 無 い 。
--no-use-passive-connections

could not setup passive mode と い う エ ラ ー メ ッ セ ー ジ を 受 け 取 っ た 場 合 、 こ の オ プ シ ョ ン を 有 効 に す る 必 要 が あ る と 考 え ら れ る 。 私 は ’passive’ の 意 味 す る と こ ろ を 完 全 に は 理 解 し て い な い の で 、 私 に は 聞 か な い で ほ し い 。

--tar-file filename こ れ は recursdir と 共 に の み 用 い る 。 tar ア ー カ イ ブ を GNU tar(1) と 同 じ フ ォ ー マ ッ ト で 作 成 し 、 filename に 保 存 す る 。 先 頭 の 特 殊 な プ レ フ ィ ッ ク ス と 末 尾 の ス ラ ッ シ ュ は 削 除 さ れ る 。 す な わ ち http://machine/dir/filedir/file に な る 。 フ ァ イ ル 名 の 先 頭 文 字 が | の 場 合 、 テ キ ス ト の 残 り は 出 力 が パ イ プ さ れ る コ マ ン ド と み な さ れ る 。 よ っ て gzip 圧 縮 ア ー カ イ ブ は 、 例 え ば 以 下 の よ う に す れ ば 作 成 で き る 。

recursdir ftp://machine/dir --tar-file ’| gzip -d > foo.tar.gz’

--tar-block-size N

tar 出 力 の ブ ロ ッ ク サ イ ズ を 512 * N に す る 。 こ れ は デ ー タ を ア ー カ イ ブ に 書 き 込 む と き の 単 位 で あ る 。 デ フ ォ ル ト は 20。 こ れ は ブ ロ ッ ク デ バ イ ス に 書 き 込 む と き に 限 っ て 意 味 を 持 つ 。 こ れ を --block-size と 混 同 し な い こ と 。

--block-size bytes デ フ ォ ル ト の ブ ロ ッ ク サ イ ズ は 1024 バ イ ト で あ る 。 消 費 さ れ る ブ ロ ッ ク の 総 数 を 計 算 す る 際 、 フ ァ イ ル サ イ ズ は 隣 接 す る ブ ロ ッ ク 末 尾 に 切 り 上 げ ら れ る 。 実 際 の ブ ロ ッ ク サ イ ズ が こ の 値 よ り も 大 き い と 、 書 き 込 み 時 に 実 際 に 利 用 さ れ る ブ ロ ッ ク 数 よ り も 、 計 算 値 が 小 さ く な る 可 能 性 が あ る 。 よ っ て --max-bytes オ プ シ ョ ン を 用 い る と き に は 、 実 際 の ブ ロ ッ ク サ イ ズ と 同 じ 、 ま た は よ り 大 き な 値 を 指 定 す る こ と が と て も 大 切 で あ る 。
--strict-mtimes
通 常 フ ァ イ ル を コ ピ ー す る 場 合 、 mirrordir は 通 常 mirror の フ ァ イ ル が control の フ ァ イ ル よ り も 「 古 い 」 場 合 に 限 っ て 上 書 き コ ピ ー を 行 な う 。 こ の オ プ シ ョ ン を 用 い る と 、 フ ァ イ ル 間 に 修 正 時 刻 の 「 何 ら か の 」 差 異 が あ れ ば 、 コ ピ ー を 行 な う 。
--no-mtimes
サ イ ズ が 違 う 場 合 に 限 っ て コ ピ ー す る 。 フ ァ イ ル の 修 正 時 刻 は 無 視 す る 。
--ignore-size
フ ァ イ ル の コ ピ ー を mtime に 基 づ い て 行 な い 、 サ イ ズ の 違 い は 無 視 す る 。
--starting-file
path

path は フ ァ イ ル ま た は デ ィ レ ク ト リ 。 path が 読 ま れ る ま で は 、 フ ァ イ ル や デ ィ レ ク ト リ は 除 外 フ ァ イ ル (つ ま り mirror に あ る 場 合 は 削 除 さ れ る ) の よ う に 扱 わ れ る 。 path を 含 む デ ィ レ ク ト リ は 、 存 在 し て い な け れ ば 作 成 さ れ る 。 path が 読 み 込 ま れ る と 、 フ ァ イ ル や デ ィ レ ク ト リ は 通 常 に ミ ラ ー さ れ る 。 path そ の も の も ミ ラ ー さ れ る 。 path ま た は そ の サ ブ デ ィ レ ク ト リ が 存 在 し て い な い 場 合 は 、 mirrordir は 直 ち に 終 了 す る 。 こ れ は mirrordir が 作 業 前 に 終 了 す る 唯 一 の 場 合 で あ る 。 こ れ は path が 見 つ か ら な い 場 合 に 、 フ ァ イ ル シ ス テ ム 全 体 が 削 除 さ れ る の を 防 ぐ た め で あ る 。

FTP の サ ポ ー ト

ftp 転 送 が 、 Midnight Commander の 仮 想 フ ァ イ ル シ ス テ ム (Virtual File System: VFS) を 利 用 す る 形 で サ ポ ー ト さ れ て い る 。 要 す る に つ ま り 、 URL も ロ ー カ ル デ ィ レ ク ト リ と 同 じ よ う に サ ポ ー ト さ れ て い る 。 以 下 に 例 を 示 そ う 。
mirrordir --verbose \

ftp://lava.obsidian.co.za/pub/mirrordir \

/home/mirrordir あ る い は

mirrordir --verbose /home/mirrordir \

ftp://psheer [AT] lava.za/home/ftp/pub/mirrordir も 動 作 す る 。 た だ し 後 者 で は ま ず パ ス ワ ー ド を 尋 ね ら れ る 。 ftp サ ー バ に 「 ア ッ プ ロ ー ド 」 を 行 う 場 合 は 、 --strict-mtimes オ プ シ ョ ン は on に す べ き で な い 。 ftp で は 修 正 時 刻 の 設 定 は で き な い の で 、 す べ て が コ ピ ー さ れ て し ま う 。

(--verbose を 設 定 す れ ば ) mirrordir が 繰 り 返 し ftp で 修 正 時 刻 と ア ク セ ス 時 刻 を セ ッ ト し よ う と し て い る こ と に 気 づ く だ ろ う 。 用 い て い る VFS の タ イ プ に お け る 制 限 を ユ ー ザ に 知 ら せ る た め に 、 こ れ ら の メ ッ セ ー ジ は 残 し て お く つ も り で あ る 。 こ れ ら の 試 行 は 、 明 ら か な 性 能 の 劣 化 と し て は 現 わ れ な い 。 し か し こ の プ ロ ト コ ル を 用 い た ア ッ プ ロ ー ド の 性 能 が 悪 い 場 合 は 、 代 わ り に mc:// を 用 い て み る と い い だ ろ う 。 な お ダ ウ ン ロ ー ド は 常 に ア ッ プ ロ ー ド よ り も 高 速 で あ る 。 一 般 に cron ジ ョ ブ で は ftp ア ッ プ ロ ー ド を 用 い る べ き で は な い 。 ま た デ ィ レ ク ト リ の 同 期 を 取 る 目 的 に も 向 い て い な い 。 デ ィ レ ク ト リ を 同 期 し た い 場 合 は 、 反 対 側 か ら の ダ ウ ン ロ ー ド を 用 い る こ と 。 ア ッ プ ロ ー ド は 一 回 き り の ア ッ プ ロ ー ド に し か 有 用 で な い 。

こ こ で は mirrordir を 用 い て 行 え る 、 ち ょ っ と 気 の 効 い た 作 業 を 紹 介 す る 。 ミ ニ マ リ ス ト 的 コ ピ ー ソ ー ス ツ リ ー が 2 つ あ り 、 古 い 版 を パ ッ チ を 適 用 す る た め に 保 管 し て お き た い と す る 。 こ れ に は mkdir tree.OLD し て 、

mirrordir -v tree tree.OLD す る だ け で よ い 。 も う 一 度 mirrordir を 実 行 す れ ば 、 最 小 限 の 変 更 の み (つ ま り 更 新 さ れ た フ ァ イ ル の み ) が コ ピ ー さ れ る (実 は cp(1) も 同 じ こ と を す る )。 シ ス テ ム バ ッ ク ア ッ プ シ ス テ ム に よ っ て は 、 定 期 的 な バ ッ ク ア ッ プ を テ ー プ ア ー カ イ ブ に 行 っ て い る こ と が あ る 。 ま た RAID デ バ イ ス を 用 い て 、 あ る パ ー テ ィ シ ョ ン と 同 一 の コ ピ ー を 恒 常 的 に 保 持 し て い る シ ス テ ム も あ る だ ろ う 。 mirrordir は さ ら に 別 の 選 択 肢 を 提 供 す る 。 シ ス テ ム に 2 台 の ド ラ イ ブ を 装 備 す る 。 ひ と つ は 普 段 用 い る も の 、 も う 一 つ は バ ッ ク ア ッ プ す る た め の も の で あ る 。 そ し て mirrordircron(8) の テ ー ブ ル に 追 加 す る の だ 。 変 更 さ れ た フ ァ イ ル の バ ッ ク ア ッ プ に は 、 様 々 な オ プ シ ョ ン が 利 用 で き る 。 バ ッ ク ア ッ プ デ ィ レ ク ト リ は ユ ー ザ か ら 読 み 取 り 可 能 に し て お き 、 各 人 の バ ッ ク ア ッ プ フ ァ イ ル を 閲 覧 で き る よ う に し て お く と い い だ ろ う 。 特 定 の フ ァ イ ル の 古 い バ ー ジ ョ ン を 取 り 戻 し た い ユ ー ザ は 、 バ ッ ク ア ッ プ か ら 入 手 で き る よ う に な る 。 mirrordir は 変 更 さ れ た フ ァ イ ル の 最 小 限 だ け を 処 理 す る の で 、 非 常 に 高 速 で あ る 。 一 日 に 何 回 も 実 行 し た り 、 あ る い は --nice オ プ シ ョ ン を 付 け て 途 切 れ る こ と な く 実 行 さ せ る こ と さ え 可 能 で あ る 。 マ シ ン が 壊 れ た と き に 対 す る 備 え を さ ら に 強 固 に し た け れ ば 、 FTP を 用 い て リ モ ー ト マ シ ン に バ ッ ク ア ッ プ を 行 う こ と も で き る 。

2 台 の マ シ ン を 毎 時 バ ッ ク ア ッ プ す る

dar2 と い う マ シ ン 上 で 、 私 は 次 の よ う な cron ジ ョ ブ を 6 時 間 ご と に 実 行 し て い る 。

#!/bin/sh

# (this is just in case of any bugs I don’t know about,
# but I don’t think it is necessary)
killall -9 tee
killall mirrordir >& /dev/null
sleep 2
killall -9 mirrordir >& /dev/null

( \
date ; \
echo "mirrordir says (if it said nothing it is bad):" ; \
mirrordir mc://dar1:12346/ -p abcdefg /mnt/dar1/ \
-i --exclude-regexp ’^mc://dar1:12346/var/lock/subsys/atd’ \
--exclude-regexp ’^mc://dar1:12346/proc/’ \
--exclude-regexp ’^mc://dar1:12346/mnt/[^/]*/.*$’ \
-i --exclude-regexp ’^mc://dar1:12346/boot/’ \
-i --exclude-regexp ’^mc://dar1:12346/etc/lilo.conf’ \
-C \
´
if (S_ISDIR (stat.st_mode)) {
if (!regexp ("^mc://dar1:12346/[^/]*$", PATH))
printf ("Backing up: %s0, PATH); }
´ ; \
date ; \
echo "Done" ; \
) 2>&1 \
| tee --ignore-interrupts --append /var/log/mirrordir.log \
| mail -s ’dar1 backup results’ psheer [AT] obsidian.za 安 全 な 転 送 と ロ グ イ ン
turing.co.uk
に お い て 以 下 の コ マ ン ド を 実 行 し て お く
secure-mcserv -p 12345 -d
ど こ か 外 部 の マ シ ン か ら
copydir --secure -K 512 -z \
mc://alan [AT] turing.uk:12345/usr/src/linux/.config .
と す れ ば 、 512 ビ ッ ト の 鍵 を 用 い た 安 全 な フ ァ イ ル コ ピ ー (圧 縮 つ き ) が で き る 。 ま た
pslogin mc://alan [AT] turing.uk:12345/
と す れ ば 、 こ の マ シ ン に 安 全 に ロ グ イ ン で き る 。

FTP サ イ ト の ミ ラ ー

ftp サ イ ト で は ls の -R オ プ シ ョ ン が 禁 止 さ れ て い る こ と が 多 い の で 、 従 来 用 い ら れ て き た mirror (1) は 失 敗 す る こ と が あ っ た 。 mirrordir に は こ の 制 限 は な い 。

mirrordir -v ftp://metalab.unc.edu/pub /home/ftp/pub

FTP 転 送 よ く あ る FTP 転 送 は 、 --copy-mode オ プ シ ョ ン を 用 い た 一 行 の コ マ ン ド で 簡 単 に 実 現 で き る 。 複 数 の フ ァ イ ル を ど ち ら 向 き に も 、 ま た 別 々 の ftp サ イ ト に す ら (間 接 的 に で は あ る が )、 cp(1) の よ う に コ ピ ー で き る 。

copydir -v mirrordir-0.9.15.tar.gz \
mirrordir.lsm ftp://metalab.unc.edu/incoming/Linux
と す る と mirrordir を sunsite に ア ッ プ ロ ー ド す る 。

anonymous で な い ftp 転 送 の パ ス ワ ー ド は 、 標 準 的 な ftp の 慣 習 に 従 っ て ~/.netrc フ ァ イ ル に 置 き 、 --netrc オ プ シ ョ ン を 用 い る の が よ い 。 あ る い は ftp://myname@machine/ を 用 い て も か ま わ な い 。 フ ァ イ ル 探 索
recursdir / -C
’if (!glob ("*.c", FILE)) printf ("%s\n", PATH);’
と す る と シ ス テ ム に あ る す べ て の C フ ァ イ ル を 表 示 す る 。
recursdir / -C
’if (S_ISCHR(stat.st_mode)) printf ("%s\n", PATH);’
と す れ ば シ ス テ ム に あ る す べ て の キ ャ ラ ク タ デ バ イ ス を 表 示 す る 。

FTP サ イ ト を テ ー プ に バ ッ ク ア ッ プ す る リ モ ー ト サ イ ト を テ ー プ に バ ッ ク ア ッ プ す る に は

recursdir ftp://user [AT] remote.machine/ \
--exclude-regexp ’//[^/]*/proc/’ --tar-file /dev/mt
と す れ ば よ い 。

core フ ァ イ ル の 削 除 こ れ は シ ス テ ム か ら す べ て の core フ ァ イ ル を 削 除 す る :

recursdir / -C ´
long l;
if (strncmp (PATH, "/proc", 5)) {
if (S_ISREG (stat.st_mode) && !strcmp ("core", FILE)) {
if (strstr (popen ("file " + PATH), "ELF 32-bit LSB core")) {
l = l + stat.st_size;
printf ("removing: %s, cumu. total = %ldkB\n", PATH, l >> 10);
exec ("rm", "-f", PATH); /* could also use system() */ } } }
´

環 境 変 数

TMPDIR 一 時 的 な フ ァ イ ル を 保 管 さ せ た い デ ィ レ ク ト リ 。

ftp フ ァ イ ル シ ス テ

ム は 、 ま ず フ ァ イ ル を こ の 一 時 デ ィ レ ク ト リ に ダ ウ ン ロ ー ド し 、 正 し い 場 所 に そ の フ ァ イ ル を コ ピ ー す る 。 後 述 の バ グ を 参 照 の こ と 。

TMPDIR が 指 定 さ れ な い と 、 デ フ ォ ル ト で は 現 在 進 行 中 の フ ァ イ ル が あ る デ ィ レ ク ト リ に 保 存 さ れ る 。

返 り 値

mirrordir は 以 下 の 値 を 返 す :

0 成 功 。

1 何 ら か の エ ラ ー

(書 き 込 み エ ラ ー 、 許 可 属 性 エ ラ ー な ど ) が 起 っ た 。

こ の 場 合 、 エ ラ ー の 詳 細 は stderr に 書 き 込 ま れ て い る は ず で あ る 。

2 あ る フ ァ イ ル が 利 用 中 で コ ピ ー で き な か っ た が 、 そ れ 以 外 は 成 功 し た 。 こ の 場 合 は

’unable to open control file for writing’ と い う エ ラ ー が 書 き 込 ま れ て い る は ず で あ る 。 標 準 エ ラ ー で こ の メ ッ セ ー ジ を grep し 、 こ れ ら の フ ァ イ ル に 対 し て の み も う 一 度 mirrordir を 実 行 す れ ば よ い 。 grep(1) を 参 照 の こ と 。

バ グ

atd デ ー モ ン の あ る バ ー ジ ョ ン で は 、 ロ ッ ク フ ァ イ ル (や pid フ ァ イ ル ?) を そ の フ ァ イ ル も ロ ッ ク 付 き で 作 成 す る た め 、 secure-mcserv が 永 遠 に ブ ロ ッ ク す る 。 こ れ を 防 ぐ に は 、 atd を 停 止 さ せ る か 、 こ の フ ァ イ ル を 対 象 か ら 除 外 し な け れ ば な ら な い 。 サ マ ー タ イ ム の 時 間 補 正 が あ る と こ ろ と ftp で ミ ラ ー を 行 う と 、 1 時 間 の 時 間 の オ フ セ ッ ト が 生 じ る よ う に 見 え る 。 と り あ え ず の 回 避 策 と し て は --time-offset を 用 い て ほ し い 。 こ れ が mirrordir の せ い な の か ど う か は 私 に は わ か ら な い 。

mirrordir の せ い で CPU が 食 い 尽 く さ れ 、 停 止 し て し ま う よ う に 見 え る バ グ は 修 正 さ れ た 。 コ マ ン ド ラ イ ン か ら 多 数 の --exclude 式 を 指 定 す る と 、 処 理 が 遅 く な る 。 た く さ ん の フ ァ イ ル の リ ス ト を 除 外 対 象 し た い 人 は 、 そ の リ ス ト を テ キ ス ト フ ァ イ ル に 書 い て 、 --exclude-from オ プ シ ョ ン を 利 用 す る 方 が よ い 。 シ ン ボ リ ッ ク リ ン ク (そ れ が 指 す フ ァ イ ル で は な い ) の 修 正 時 刻 と ア ク セ ス 時 刻 は 複 製 さ れ な い 。 以 前 に あ っ た 、 ハ ー ド リ ン ク フ ァ イ ル が 通 常 フ ァ イ ル と し て 扱 わ れ て し ま う と い う 制 限 は 解 決 さ れ た 。 --no-hard-links オ プ シ ョ ン を 指 定 す れ ば 、 0.9.8 以 前 の 動 作 を エ ミ ュ レ ー ト 可 能 で あ る 。 ハ ー ド リ ン ク が デ バ イ ス を ま た い で 作 成 さ れ て い る か ど う か は チ ェ ッ ク し て い な い 。 こ の 場 合 は そ れ に 見 合 っ た エ ラ ー が 報 告 さ れ る こ と に な ろ う 。

ftp フ ァ イ ル シ ス テ ム は 、 ま ず フ ァ イ ル を 一 時 デ ィ レ ク ト リ に *ftpfs* と い う 名 前 で ダ ウ ン ロ ー ド す る 。 こ れ は ス ペ ー ス の 無 駄 だ が 、 vfs ラ イ ブ ラ リ の デ フ ォ ル ト の 動 作 な の だ 。 こ の デ ィ レ ク ト リ に 十 分 な 容 量 が な い と 、 お そ ら く mirrordir は ハ ン グ す る 。 上 述 の 環 境 変 数 を 参 照 の こ と 。 フ ァ イ ル 除 外 に 用 い る C ス ク リ プ ト 言 語 は 、 実 装 の や り す ぎ で あ る 。

フ ァ イ ル

~/.netrc マ シ ン と そ の パ ス ワ ー ド の リ ス ト 。 オ プ シ ョ ン --netrc を 参 照 の こ と 。
/etc/ssocket/accept.cs
こ の ス ク リ プ ト は 、 接 続 の サ ー バ 側 で 、 鍵 交 換 と 署 名 生 成 を 行 う 。
/etc/ssocket/connect.cs
こ の ス ク リ プ ト は 、 接 続 の ク ラ イ ア ン ト 側 で 、 鍵 交 換 と 署 名 生 成 を 行 う 。
/etc/ssocket/arcinit.cs
ス ト リ ー ム cipher 暗 号 化 を 初 期 化 す る (国 際 版 で は 存 在 し な い )。
/etc/ssocket/arcencrypt.cs
ス ト リ ー ム cipher 暗 号 化 を 行 う (国 際 版 で は 存 在 し な い )。
/etc/ssocket/private/
こ の デ ィ レ ク ト リ に は 、 ホ ス ト の 秘 密 鍵 が 置 か れ る 。 鍵 は そ れ ぞ れ 別 々 の フ ァ イ ル に 保 存 さ れ る 。 フ ァ イ ル 名 は 512, 1024 な ど で あ る 。 鍵 の デ ー タ ベ ー ス を 使 う よ う に す る と 、 鍵 管 理 用 の ユ ー テ ィ リ テ ィ が 必 要 に な る の で 、 こ ち ら の ほ う が よ い 。 す ぐ に Reiser フ ァ イ ル シ ス テ ム が 標 準 的 に な る だ ろ う か ら 、 デ ー タ ベ ー ス フ ァ イ ル は い ず れ に し て も 不 要 に な る だ ろ う 。
/etc/ssocket/public/
こ ち ら は 公 開 鍵 の も の 。 後 は /etc/ssocket/private/ と 同 様 。

準 拠

mirrordir は 作 成 者 の 発 明 で あ り 、 い か な る OS の 標 準 に も 従 っ て い な い (そ う す る べ き で は あ る が !)

入 手 方 法

こ の プ ロ グ ラ ム の 最 新 版 は 、 ftp://metalab.unc.edu/pub/Linux/system/backup ま た は ftp://lava.obsidian.co.za/pub/linux/mirrordir か ら 入 手 で き る 。

著 者

Paul Sheer <psheer [AT] obsidian.za> <psheer [AT] icon.za>

関 連 項 目

mirror(1), pavuk(1), cp(1), scp(1), find(1), mc(1), ftp(1), ssh(1), tar(1), rlogin(1), rlogind(8), forward(1)