名 前
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 つ の デ ィ レ ク ト リ control と mirror と の 間 で 異 な る フ ァ イ ル を 、 control か ら mirror へ と コ ピ ー す る 。 修 正 時 刻 (modification time) ま た は サ イ ズ が 異 な る フ ァ イ ル が コ ピ ー さ れ る 。 フ ァ イ ル の 許 可 属 性 ・ 所 有 者 ・ 修 正 時 刻 ・ ア ク セ ス 時 刻 (--access-time が 用 い ら れ た 場 合 の み )・ ス テ ィ ッ キ ー ビ ッ ト ・ デ バ イ ス タ イ プ が 複 製 さ れ る 。 シ ン ボ リ ッ ク リ ン ク は リ ン ク 先 の 解 決 を さ れ ず に そ の ま ま コ ピ ー さ れ る 。 シ ン ボ リ ッ ク リ ン ク の 修 正 ・ ア ク セ ス 時 刻 (シ ン ボ リ ッ ク 自 身 の も の で 、 シ ン ボ リ ッ ク が 指 す フ ァ イ ル の も の で は な い こ と に 注 意 ) は 保 存 さ れ な い 。 ハ ー ド リ ン ク さ れ た フ ァ イ ル は 単 に コ ピ ー さ れ る 。 生 成 時 刻 は 、 私 の 知 る 限 り Unix で は 設 定 で き な い 。
mirrordir は 危 険 な コ マ ン ド で あ る 。 mirror に あ っ て control に な い フ ァ イ ル や デ ィ レ ク ト リ は 削 除 さ れ る か ら で あ る 。 も し control が 完 全 に 空 の 場 合 に は 、 mirror の す べ て の フ ァ イ ル や デ ィ レ ク ト リ が 削 除 さ れ る 。 も し mirror が 完 全 に 空 の 場 合 に は 、 control の す べ て の フ ァ イ ル や デ ィ レ ク ト リ が コ ピ ー さ れ る 。 要 す る に mirrordir は mirror を デ ィ レ ク ト リ ツ リ ー control の 完 全 な レ プ リ カ に し 、 ま た そ の 際 に あ ら ゆ る も の を (定 期 的 バ ッ ク ア ッ プ と い う 目 的 に 合 致 す る な ら ) 可 能 な 限 り 複 製 し よ う と す る 。 当 然 mirrordir は サ ブ デ ィ レ ク ト リ の 一 番 深 い と こ ろ ま で 降 り て い く 。 デ ィ レ ク ト リ ミ ラ ー の 際 に は 、 そ れ に 必 要 な 最 小 の 変 更 の み を 調 べ 、 可 能 な 限 り 効 率 的 に 動 作 し よ う と す る 。 ア ク セ ス 時 刻 の 複 製 は 通 常 は 必 要 な く 、 ま た 不 要 な 負 荷 を 与 え る こ と に な る 。 よ っ て こ れ は オ プ シ ョ ン に な っ て い る 。 デ ィ レ ク ト リ control に は 、 何 の 変 化 も 与 え な い 。 --restore-access が 与 え ら れ る と 、 ア ク セ ス 時 刻 は 読 み 込 み の た び に 、 元 の 時 刻 に 再 設 定 さ れ る 。
--strict-locking オ プ シ ョ ン を オ ン に す る と 、 control に あ る コ ピ ー 作 業 中 の フ ァ イ ル は 「 共 有 読 み 込 み (shared reading)」 に ロ ッ ク さ れ る 。 こ れ に よ っ て 、 他 の プ ロ セ ス が そ の フ ァ イ ル に 頻 繁 に 書 き 込 み を 行 っ て い る 場 合 で も 、 フ ァ イ ル が 不 完 全 な 状 態 や 壊 れ た 状 態 で は コ ピ ー さ れ な い こ と を 保 証 す る 。 通 常 mirrordir は 問 題 が あ っ て も 中 断 せ ず 、 問 題 の 報 告 を stderr へ の エ ラ ー メ ッ セ ー ジ と し て 行 い 、 動 作 を 継 続 す る 。 デ ィ レ ク ト リ mirror や dest は (た と え 空 で あ っ て も ) 存 在 し て い な け れ ば な ら な い 。 デ ィ レ ク ト リ の す べ て の フ ァ イ ル を 削 除 す る 前 に 、 mirrordir は *--keep-me と い う フ ァ イ ル (こ こ で * は 0 ま た は 1 つ の 文 字 ) を チ ェ ッ ク す る 。 こ の フ ァ イ ル が 存 在 す る と 、 エ ラ ー メ ッ セ ー ジ を 出 し て 中 断 す る 。 よ っ て 再 帰 的 に 削 除 さ れ て は ま ず い デ ィ レ ク ト リ が あ っ た ら 、 そ れ ぞ れ に こ の よ う な フ ァ イ ル を 作 っ て お け ば 良 い 。
copydir は mirrordir -ck --no-erase-directories ... と 等 価 で あ る (-c に は -k が 含 ま れ る が )。 よ っ て copydir は 厳 密 な 意 味 で の cp(1) と よ く 似 て い る が 、 フ ァ イ ル 名 は URL で も 良 く 、 か つ 古 い フ ァ イ ル だ け が 置 き 換 え ら れ る 。 フ ァ イ ル 転 送 に は 、 ほ と ん ど の 場 合 mirrordir で は な く copydir を 使 う ほ う が よ い 。 本 当 に 消 し て よ い 場 合 に 限 り 、 mirrordir を 使 う よ う に す る こ と 。
recursdir は ま た も う 一 つ の プ ロ グ ラ ム で 、 コ マ ン ド ラ イ ン 上 で デ ィ レ ク ト リ を 降 り て ゆ く だ け で 何 も 行 わ な い 。 こ れ は mirrordir --recures-mode ... と 等 価 で あ る 。 こ れ は -C オ プ シ ョ ン が 追 加 さ れ る 前 に で き た プ ロ グ ラ ム で 、 よ り 厳 密 な find(1) と し て 、 あ る い は 見 つ か っ た す べ て の フ ァ イ ル を tar フ ァ イ ル に パ ッ ク す る 目 的 に 、 そ れ ぞ れ 利 用 で き る 。
pslogin は さ ら に も う 一 つ の プ ロ グ ラ ム で 、 こ れ ま で に 挙 げ た 3 つ と は ほ と ん ど 関 係 が な い 。 pslogin は secure-mcserv を 用 い て 安 全 な ロ グ イ ン セ ッ シ ョ ン を 開 始 す る 。 こ れ は mirrordir --login-mode --secure ... と 等 価 で あ る 。 pslogin は logindir と 呼 ぶ べ き か も し れ な い 。 後 述 の --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 に 対 し て 、 利 用 し て い る デ ィ ス ク ス ペ ー ス を 増 加 さ せ る よ う な 変 更 は 一 切 行 な わ な い 。 こ れ は 容 量 の 限 ら れ て い る ド ラ イ ブ に 対 し て バ ッ ク ア ッ プ を 取 る 場 合 、 転 送 の 最 中 に control に mirror を 増 加 さ せ て し ま う よ う な 変 更 が な さ れ る と き に 便 利 で あ る 。 一 度 こ の オ プ シ ョ ン を つ け て 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 現 在 の フ ァ イ ル |
(パ ス 無 し ) い フ ァ イ ル 名 。 末 尾 に ド ッ ト (.) は 付 か な い 。 EXTENSION フ ァ イ ル の 拡 張 子 。 先 頭 に ド ッ ト (.) は 付 か な い 。
な い 。
(秒 単 位 ) C の す べ て の 論 理 演 算 子 ・ 算 術 演 算 子 ・ ビ ッ ト 演 算 子 が サ ポ ー ト さ れ て い る 。 す な わ ち ( ) >= <= > < != == && || ! - + * / % & ^ で 、 こ れ ら は 全 て C の も の と 同 じ 意 味 を 持 つ 。 さ ら に 以 下 に 示 す マ ク ロ も 利 用 で き る 。 各 々 は 整 数 (C で の long int 型 ) を 返 す 。 こ れ ら は そ の フ ァ イ ル に 対 す る lstat (ま た は --follow-symlinks が 用 い ら れ て い る 場 合 は stat) を 基 に し て い る 。 詳 し い 説 明 は stat(2) を 参 照 の こ と 。 stat.st_dev
- デ バ イ ス 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);
- フ ァ イ ル は シ
ン ボ リ ッ ク リ
ン ク string1 に string2 を 連 結 し て 返 す 。 + 演 算 子 も 文 字 列 を 連 結 す る こ と に 注 意 。 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 よ り 速 い 。
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 で あ
る と み な さ れ
る 。
何 も 行 な わ な い 。 EXCLUDE そ の フ ァ イ ル が control デ ィ レ ク ト リ に 存 在 し な い も の と み な す 。 よ っ て mirror デ ィ レ ク ト リ か ら は 削 除 さ れ る (こ れ は --keep-files オ プ シ ョ ン よ り も 優 先 さ れ る )。 以 下 は C の よ う な フ ロ ー 制 御 を 行 な う 。 以 下 の if 文 は integer が 真 (つ ま り 非 ゼ ロ ) な ら ば statement1, statement2 な ど を 実 行 し 、 そ れ 以 外 の 場 合 は statementA, statementB な ど を 実 行 す る 。 else {...} の 部 分 は 省 略 可 能 で あ る 。 if
(integer) { return 文 は mirrordir に 値 を 返 し 、 ス ク リ プ ト を 終 了 さ せ る 。 return expression; exit 関 数 は 、 mirrordir を 指 定 し た 終 了 コ ー ド で 終 了 さ せ る 。 exit(integer); 通 常 C ス ク リ プ ト は 、 特 定 の フ ァ イ ル を 除 外 す る た め に 用 い る 。 こ れ は ス ク リ プ ト 言 語 の 実 装 と し て は や り す ぎ で 、 機 能 の す べ て を 一 般 用 途 向 け に 書 い た わ け で は な い 。 典 型 的 な ス ク リ プ ト は 、 例 え ば デ バ イ ス フ ァ イ ル を 除 外 す る 、 と い う 程 度 の こ と に 留 ま る だ ろ う 。 if
(S_ISSOCK(stat.st_mode) || S_ISFIFO(stat.st_mode) --recurs-mode オ プ シ ョ ン と と も に 用 い れ ば 、 C ス ク リ プ ト は フ ァ イ ル を 検 索 す る た め に も 利 用 で き る (recursdir コ マ ン ド と 同 じ ): /* core
フ ァ イ ル を 全
て 削 除 す る */ --exclude-from
file フ ァ イ ル file
に 書 か れ て い
る リ ス ト に 含
ま れ る パ ス を
除 外 す る 。 空
行 と コ メ ン ト
行 (行 頭 の 文 字
が # の 行 ) は 無 視
さ れ る 。 こ の
フ ァ イ ル の リ
ス ト は ソ ー ト
さ れ 二 分 木 探
索 さ れ る の で
、 た く さ ん の
フ ァ イ ル 名 を
除 外 し た い 場
合 に は 、 こ こ
に そ れ ら の フ
ァ イ ル を 書 く
方 が 性 能 は 良
く な る 。 こ の
オ プ シ ョ ン は
複 数 指 定 で き
、 複 数 個 の フ
ァ イ ル を 指 定
で き る 。 バ グ
: file の 最 後 に
与 え た パ ス は
、 改 行 で 終 ら
な け れ ば な ら
な い 。 sec 秒 よ り も 古 い バ ッ ク ア ッ プ フ ァ イ ル を 削 除 す る 。 --nice num
時 々 ス リ ー プ
し て 、 他 の プ
ロ セ ス に 対 し
て 行 儀 良 く 振
る 舞 う 。 --nice を 指
定 す る と 、 プ
ロ セ ス は ア ク
テ ィ ブ で あ っ
た 時 間 の num 倍
の 時 間 ス リ ー
プ す る 。 し た
が っ て 1 を 指 定
す る と (非 常 に
お お ざ っ ぱ に
言 え ば ) コ ピ ー
に 要 す る 時 間
は 2 倍 に な り 、 3
を 指 定 す れ ば 4
倍 に な る 。 こ
れ は 定 期 的 な
バ ッ ク ア ッ プ
を 、 CPU 負 荷 を 小
さ く し て 行 な
い た い 場 合 に
利 用 す る と よ
い 。 シ ス テ ム
に よ っ て は --nice は
利 用 で き な い
か も し れ な い
。 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 と 共 に 用
い る と 、 ど の
よ う な 変 更 が
な さ れ る か を
表 示 で き る 。
こ れ は デ ィ レ
ク ト リ 間 の 比
較 を す る の に
も 効 果 的 な 方
法 で あ る 。 こ
れ は テ ス ト さ
れ て い な い 。
す な わ ち 、 こ
の オ プ シ ョ ン
が 本 当 に 変
更 を し な い か
ど う か は 、 私
は 保 証 で き な
い 。 FTP 接 続 ・ mc:// 接 続 に 対 す る パ ス ワ ー ド を 設 定 す る 。 匿 名 接 続 の 場 合 の パ ス ワ ー ド は 、 デ フ ォ ル ト で 「 ロ グ イ ン 名 @ロ ー カ ル マ シ ン 名 」 に な っ て い る 。 そ れ 以 外 の ロ グ イ ン パ ス ワ ー ド は 、 プ ロ ン プ ト が 出 て 尋 ね ら れ る 。 い つ も の 警 告 だ が 、 パ ス ワ ー ド を ス ク リ プ ト に 含 め る の は セ キ ュ リ テ ィ 上 の リ ス ク が あ る 。 パ ス ワ ー ド は ~/.netrc フ ァ イ ル に 入 れ 、 --no-netrc オ プ シ ョ ン を 指 定 し な い か た ち の 方 が ず っ と 良 い 。 詳 細 は man ftp を 見 よ 。 --password-exact
password] 匿 名 パ ス
ワ ー ド の 前 に
- を 前 置 し な
い 。 ftp の 匿 名 パ
ス ワ ー ド で は
、 通 常 パ ス ワ
ー ド 文 字 列 の
前 に - が 置 か
れ る 。 私 は Midnight
Commander vfs が な ぜ こ の
よ う に し て い
た の か 知 ら な
い が 、 あ る ユ
ー ザ が こ の 問
題 に 突 き 当 た
っ た の で 、 こ
の オ プ シ ョ ン
を 設 け 、 パ ス
ワ ー ド を password に
指 定 し た 通 り
に 送 れ る よ う
に し て い る 。
--login-mode や pslogin を 用 い る と き 、 非 対 話 的 な ア ク セ ス を テ ス ト し て み た い こ と が あ る だ ろ う (例 え ば シ ェ ル ス ク リ プ ト で 用 い た い と き な ど )。 こ れ を 行 な う に は 、 pslogin を こ の オ プ シ ョ ン と と も に 実 行 し 、 終 了 ス テ ー タ ス を 見 れ ば よ い 。 secure-mcserv は 、 ユ ー ザ が パ ス ワ ー ド サ ー バ に ロ グ イ ン で き る か ど う か を 調 べ る た め に 、 こ れ を 用 い て い る 。 --no-warn-first-login
あ る マ シ ン に
対 し て 最 初 に
安 全 な 接 続 を
試 み た 時 は 、
公 開 鍵 が ロ ー
カ ル マ シ ン に
存 在 し な い 。
よ っ て 「 間 に
人 」 攻 撃 に 対
し て 無 防 備 で
あ る 。 こ の 内
容 に 関 す る 警
告 が 表 示 さ れ
、 ユ ー ザ に プ
ロ ン プ ト が 出
さ れ 、 継 続 し
た い か ど う か
尋 ね ら れ る 。
こ の オ プ シ ョ
ン は こ の 警 告
を 出 さ な い よ
う に し 、 一 切
を 無 視 し て 先
に 進 む 。 ~/.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
よ り も 実 効 的
に や や 大 き い
こ と に な る 。
こ れ は 私 の (ど
ち ら か と い う
と 無 学 な ) 意 見
で あ る 。 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 バ
ー ジ ョ ン 番 号
と 、 こ の mirrordir
が International 版 か US
版 か を 表 示 す
る 。 --download-scripts を
見 よ 。 mc:// 接 続 で 圧 縮 を 有 効 に す る 。 実 際 に は 符 号 化 よ り も 低 い レ ベ ル に あ る 圧 縮 ソ ケ ッ ト 層 を 呼 出 す 。 圧 縮 は gzip(1) の libz ラ イ ブ ラ リ を 用 い て 行 な う 。 圧 縮 の 程 度 は 、 転 送 時 間 を 最 小 化 す る よ う に 動 的 に 設 定 さ れ る 。 高 速 な イ ー サ ネ ッ ト 接 続 な ら 無 圧 縮 に ま で 低 く な り う る し 、 モ デ ム 経 由 の 遅 い 接 続 で は 最 大 圧 縮 に ま で 高 く な る 。 こ の ア ル ゴ リ ズ ム は 、 TCP の write コ ー ル が 、 同 量 の デ ー タ を deflate す る (つ ま り 圧 縮 す る ) 時 間 の 2〜 5 % の 範 囲 に な る よ う に 、 圧 縮 レ ベ ル を 調 整 す る 。 --gzip-backups バ
ッ ク ア ッ プ は
通 常 は 単 に フ
ァ イ ル の コ ピ
ー で あ る 。 こ
の オ プ シ ョ ン
を 指 定 す る と
各 フ ァ イ ル は
圧 縮 さ れ 、 .gz
が デ フ ォ ル ト
の 拡 張 子 と し
て 付 加 さ れ る
。 バ ッ ク ア ッ
プ の 拡 張 と し
て 、 あ な た が
自 分 で --backup-extension
の 指 定 を 行 な
っ た 場 合 は 、
そ の 末 尾 が .gz
で 終 ら な い と
、 比 較 が 正 し
く 動 作 し な い
。 could not setup passive mode と い う エ ラ ー メ ッ セ ー ジ を 受 け 取 っ た 場 合 、 こ の オ プ シ ョ ン を 有 効 に す る 必 要 が あ る と 考 え ら れ る 。 私 は ’passive’ の 意 味 す る と こ ろ を 完 全 に は 理 解 し て い な い の で 、 私 に は 聞 か な い で ほ し い 。 --tar-file filename こ れ は recursdir と 共 に の み 用 い る 。 tar ア ー カ イ ブ を GNU tar(1) と 同 じ フ ォ ー マ ッ ト で 作 成 し 、 filename に 保 存 す る 。 先 頭 の 特 殊 な プ レ フ ィ ッ ク ス と 末 尾 の ス ラ ッ シ ュ は 削 除 さ れ る 。 す な わ ち http://machine/dir/file は dir/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 オ プ シ ョ
ン を 用 い る と
き に は 、 実 際
の ブ ロ ッ ク サ
イ ズ と 同 じ 、
ま た は よ り 大
き な 値 を 指 定
す る こ と が と
て も 大 切 で あ
る 。 path は フ ァ イ ル ま た は デ ィ レ ク ト リ 。 path が 読 ま れ る ま で は 、 フ ァ イ ル や デ ィ レ ク ト リ は 除 外 フ ァ イ ル (つ ま り mirror に あ る 場 合 は 削 除 さ れ る ) の よ う に 扱 わ れ る 。 path を 含 む デ ィ レ ク ト リ は 、 存 在 し て い な け れ ば 作 成 さ れ る 。 path が 読 み 込 ま れ る と 、 フ ァ イ ル や デ ィ レ ク ト リ は 通 常 に ミ ラ ー さ れ る 。 path そ の も の も ミ ラ ー さ れ る 。 path ま た は そ の サ ブ デ ィ レ ク ト リ が 存 在 し て い な い 場 合 は 、 mirrordir は 直 ち に 終 了 す る 。 こ れ は mirrordir が 作 業 前 に 終 了 す る 唯 一 の 場 合 で あ る 。 こ れ は path が 見 つ か ら な い 場 合 に 、 フ ァ イ ル シ ス テ ム 全 体 が 削 除 さ れ る の を 防 ぐ た め で あ る 。 FTP の サ ポ ー トftp 転
送 が 、 Midnight Commander の
仮 想 フ ァ イ ル
シ ス テ ム (Virtual File System:
VFS) を 利 用 す る
形 で サ ポ ー ト
さ れ て い る 。
要 す る に つ ま
り 、 URL も ロ ー カ
ル デ ィ レ ク ト
リ と 同 じ よ う
に サ ポ ー ト さ
れ て い る 。 以
下 に 例 を 示 そ
う 。
mirrordir --verbose /home/mirrordir \
(--verbose を 設 定 す れ ば ) mirrordir が 繰 り 返 し ftp で 修 正 時 刻 と ア ク セ ス 時 刻 を セ ッ ト し よ う と し て い る こ と に 気 づ く だ ろ う 。 用 い て い る VFS の タ イ プ に お け る 制 限 を ユ ー ザ に 知 ら せ る た め に 、 こ れ ら の メ ッ セ ー ジ は 残 し て お く つ も り で あ る 。 こ れ ら の 試 行 は 、 明 ら か な 性 能 の 劣 化 と し て は 現 わ れ な い 。 し か し こ の プ ロ ト コ ル を 用 い た ア ッ プ ロ ー ド の 性 能 が 悪 い 場 合 は 、 代 わ り に mc:// を 用 い て み る と い い だ ろ う 。 な お ダ ウ ン ロ ー ド は 常 に ア ッ プ ロ ー ド よ り も 高 速 で あ る 。 一 般 に cron ジ ョ ブ で は ftp ア ッ プ ロ ー ド を 用 い る べ き で は な い 。 ま た デ ィ レ ク ト リ の 同 期 を 取 る 目 的 に も 向 い て い な い 。 デ ィ レ ク ト リ を 同 期 し た い 場 合 は 、 反 対 側 か ら の ダ ウ ン ロ ー ド を 用 い る こ と 。 ア ッ プ ロ ー ド は 一 回 き り の ア ッ プ ロ ー ド に し か 有 用 で な い 。 例こ こ で は mirrordir を 用 い て 行 え る 、 ち ょ っ と 気 の 効 い た 作 業 を 紹 介 す る 。 ミ ニ マ リ ス ト 的 コ ピ ー ソ ー ス ツ リ ー が 2 つ あ り 、 古 い 版 を パ ッ チ を 適 用 す る た め に 保 管 し て お き た い と す る 。 こ れ に は mkdir tree.OLD し て 、 mirrordir -v tree tree.OLD す る だ け で よ い 。 も う 一 度 mirrordir を 実 行 す れ ば 、 最 小 限 の 変 更 の み (つ ま り 更 新 さ れ た フ ァ イ ル の み ) が コ ピ ー さ れ る (実 は cp(1) も 同 じ こ と を す る )。 シ ス テ ム バ ッ ク ア ッ プ シ ス テ ム に よ っ て は 、 定 期 的 な バ ッ ク ア ッ プ を テ ー プ ア ー カ イ ブ に 行 っ て い る こ と が あ る 。 ま た RAID デ バ イ ス を 用 い て 、 あ る パ ー テ ィ シ ョ ン と 同 一 の コ ピ ー を 恒 常 的 に 保 持 し て い る シ ス テ ム も あ る だ ろ う 。 mirrordir は さ ら に 別 の 選 択 肢 を 提 供 す る 。 シ ス テ ム に 2 台 の ド ラ イ ブ を 装 備 す る 。 ひ と つ は 普 段 用 い る も の 、 も う 一 つ は バ ッ ク ア ッ プ す る た め の も の で あ る 。 そ し て mirrordir を cron(8) の テ ー ブ ル に 追 加 す る の だ 。 変 更 さ れ た フ ァ イ ル の バ ッ ク ア ッ プ に は 、 様 々 な オ プ シ ョ ン が 利 用 で き る 。 バ ッ ク ア ッ プ デ ィ レ ク ト リ は ユ ー ザ か ら 読 み 取 り 可 能 に し て お き 、 各 人 の バ ッ ク ア ッ プ フ ァ イ ル を 閲 覧 で き る よ う に し て お く と い い だ ろ う 。 特 定 の フ ァ イ ル の 古 い バ ー ジ ョ ン を 取 り 戻 し た い ユ ー ザ は 、 バ ッ ク ア ッ プ か ら 入 手 で き る よ う に な る 。 mirrordir は 変 更 さ れ た フ ァ イ ル の 最 小 限 だ け を 処 理 す る の で 、 非 常 に 高 速 で あ る 。 一 日 に 何 回 も 実 行 し た り 、 あ る い は --nice オ プ シ ョ ン を 付 け て 途 切 れ る こ と な く 実 行 さ せ る こ と さ え 可 能 で あ る 。 マ シ ン が 壊 れ た と き に 対 す る 備 え を さ ら に 強 固 に し た け れ ば 、 FTP を 用 い て リ モ ー ト マ シ ン に バ ッ ク ア ッ プ を 行 う こ と も で き る 。 2 台 の マ シ ン を 毎 時 バ ッ ク ア ッ プ す る dar2 と い う マ シ ン 上 で 、 私 は 次 の よ う な cron ジ ョ ブ を 6 時 間 ご と に 実 行 し て い る 。 #!/bin/sh # (this is just
in case of any bugs I don’t know about, ( \ 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 \ anonymous
で な い ftp 転 送 の
パ ス ワ ー ド は
、 標 準 的 な ftp の
慣 習 に 従 っ て
~/.netrc フ ァ イ ル に
置 き 、 --netrc オ プ
シ ョ ン を 用 い
る の が よ い 。
あ る い は
ftp://myname@machine/ を 用 い
て も か ま わ な
い 。 フ ァ イ ル
探 索 FTP サ イ ト を テ ー プ に バ ッ ク ア ッ プ す る リ モ ー ト サ イ ト を テ ー プ に バ ッ ク ア ッ プ す る に は recursdir
ftp://user [AT] remote.machine/ \ core フ ァ イ ル の 削 除 こ れ は シ ス テ ム か ら す べ て の core フ ァ イ ル を 削 除 す る : recursdir / -C
´ 環 境 変 数
ム は 、 ま ず フ ァ イ ル を こ の 一 時 デ ィ レ ク ト リ に ダ ウ ン ロ ー ド し 、 正 し い 場 所 に そ の フ ァ イ ル を コ ピ ー す る 。 後 述 の バ グ を 参 照 の こ と 。 TMPDIR が 指 定 さ れ な い と 、 デ フ ォ ル ト で は 現 在 進 行 中 の フ ァ イ ル が あ る デ ィ レ ク ト リ に 保 存 さ れ る 。 返 り 値mirrordir は 以 下 の 値 を 返 す :
こ の 場 合 、 エ ラ ー の 詳 細 は stderr に 書 き 込 ま れ て い る は ず で あ る 。
’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 を 参
照 の こ と 。 準 拠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) |