Manpages

NAME

mirror - 映 射 在 远 端 节 点 上 的 档 案

总 览 SYNOPSIS

mirror [flags] -gsite:pathname mirror [flags] [package-files]

描 述 DESCRIPTION

Mirror 是 以 Perl 所 写 成 的 一 套 在 执 行 它 的 机 器 与 一 台 远 端 主 机 之 间 使 用 ftp 协 定 复 制 整 个 目 录 架 构 及 其 内 容 的 软 体 。 它 借 由 在 传 输 之 前 比 较 档 案 时 间 (time-stamps) 以 及 大 小 来 避 免 拷 贝 不 必 要 的 档 案 。 除 此 之 外 , 它 还 可 以 选 择 性 地 压 缩 (compress, gzip)以 及 分 割 (split)档 案 。 它 是 写 给 档 案 维 护 人 员 使 用 的 但 也 可 以 让 任 何 想 要 经 由 ftp 传 输 大 量 档 案 的 人 使 用 。 无 论 如 何 叫 用 它 , mirror 总 是 执 行 相 同 的 几 个 基 本 步 骤 。 它 连 线 到 远 端 节 点 , 在 内 部 建 立 本 地 目 标 目 录 (target direction)的 目 录 列 表 , 为 远 端 目 录 建 立 一 份 目 录 列 表 , 比 较 它 们 , 建 立 任 何 必 须 的 子 目 录 , 传 输 适 当 的 档 案 ( 设 定 它 们 的 档 案 时 间 以 符 合 远 端 节 点 上 的 档 案 时 间 ) , 建 立 任 何 符 号 链 结 , 然 后 移 除 任 何 已 不 必 要 的 物 件 (objects) 最 后 并 结 束 连 线 。

Mirror 可 以 处 理 符 号 链 结 但 并 非 原 本 的 链 结 。 它 不 会 复 制 拥 有 者 (owner)或 是 群 组 (group)的 资 讯 。 如 果 你 需 要 这 些 选 项 其 中 的 任 何 一 个 , 使 用 rdist(1) 来 取 代 它 。

Mirror 系 以 上 面 所 列 语 法 概 述 其 中 的 一 种 方 法 呼 叫 执 行 。 第 一 种 方 式 是 用 来 将 一 个 远 端 目 录 撷 取 回 现 行 目 录 。 如 果 你 要 映 射 的 是 一 个 目 录 , 最 好 是 以 斜 线 (’/’) 来 结 束 路 径 名 称 这 样 一 来 远 端 递 回 列 表 ( 包 含 往 下 子 目 录 的 列 表 ) 会 比 较 小 或 者 是 使 用 -r 旗 标 来 禁 止 递 回 ( 参 阅 下 面 所 述 的 -g 旗 标 ) 。 这 个 方 式 将 不 会 使 用 到 mirror.defaults 档 案 。 在 上 面 所 列 语 法 概 述 的 第 二 种 方 式 里 , 至 少 需 要 有 一 份 最 少 数 目 的 参 数 而 且 mirror 是 由 从 配 置 档 案 ( 或 标 准 输 入 ) 里 读 取 的 设 定 所 控 制 。 如 果 可 以 在 mirror 执 行 档 所 在 目 录 或 是 PERLLIB 路 径 里 找 到 一 个 名 为 mirror.defaults 档 案 , 那 么 它 会 首 先 被 载 入 。 这 用 来 为 所 有 的 配 置 档 提 供 一 般 化 的 预 设 值 。

Mirror 本 来 是 为 映 射 远 端 Un*x 系 统 的 档 案 而 写 , 但 是 它 已 逐 渐 成 长 (like topsy)。

标 记 FLAGS

-d 启 动 侦 错 。 如 果 下 达 这 个 参 数 超 过 一 次 , 则 侦 错 层 级 将 会 递 增 。 目 前 有 用 的 最 大 层 级 是 四 。

-ppackage 只 映 射 所 给 定 的 档 案 包 裹 (package)。 此 选 项 可 下 达 多 次 在 这 种 情 形 下 所 有 给 定 的 档 案 包 裹 都 将 会 映 射 。 没 有 这 个 选 项 的 话 , 将 映 射 所 有 的 档 案 包 裹 。 档 案 包 裹 (package) 是 一 个 符 合 相 对 于 package 变 数 的 正 规 表 示 式 (regexp)

-R 类 似

-p 但 是 跳 过 所 有 的 档 案 包 裹 直 到 它 找 到 给 定 的 档 案 包 裹 为 止 。 这

对 于 从 mirror 执 行 失 败 而 离 开 的 地 方 重 新 开 始 执 行 会 有 用 。

-n 除 了 比 较 本 地 以 及 远 端 的 目 录 之 外 不 做 任 何 事 , 不 会 执 行 任 何 档 案 传 输 。 将 侦 错 层 级 设 为 二 , 所 以 你 可 以 看 到 对 于 将 要 执 行 之 动 作 的 追 踪 。

-F 使 用 暂 存 的

dbm 档 案 以 储 放 关 于 档 案 的 资 讯 。 如 果 你 要 映 射 一 个 非 常 大 的 目 录 这 会 有 用 。 参 阅 use_files 这 个 变 数 。

-g 节 点 :路 径 取 得 给 定 节 点 上 的 所 有 档 案 。 如 果 路 径 符 合

.*/.+ 那 么 它 是 目 录 的 名 称 而 后 面

的 部 份 则 是 所 要 取 得 之 档 案 名 称 的 样 板 (pattern)。 如 果 路 径 符 合 .*/ 则 它 是 目 录 的 名 称 而 且 其 所 有 的 内 容 都 将 会 被 撷 取 。 另 一 方 面 路 径 还 是 用 在 ’/’ 的 样 板 。 如 果 你 使 用 host:/fred 的 话 , 那 么 将 作 出 一 份 远 端 主 机 上 之 / 的 完 整 目 录 列 表 。 如 果 所 有 你 想 要 的 是 目 录 /fred 的 内 容 , 则 指 定 host:/fred/ 才 是 。

-r 等 于

-krecursive=false

-v 印 出

mirror 版 本 资 讯 细 节 并 结 束 。

-T 强 制 将

任 何 本 地 档 案 的 时 间 重 置 成 与 远 端 档 案 相 同 。 一 般 仅 用 于 以 已 存 在 档 案 内 容 之 处 初 始 一 个 映 射 区 域 的 时 候 。

-U [档 案 名 称 ] 把 所 有 上 传 的 档 案 记 录 到 所 给 的 档 案 名 称 。 记 得 mirror 切 换 到 local_dir 以 执 行 其 作 业 , 所 以 它 应 该 得 是 完 整 (full)的 路 径 名 称 。 如 果 没 有 给 任 何 参 数 , 其 预 设 值 为 ’pwd’/upload_log.day.month.year.

-kkey=value 盖 过 任 何 预 设 关 键 字 的 值 (key/value) 。

-m 等 于

-kmode_copy=true

-t 等 于

-ktext_mode=true

-f 等 于

-kforce=true

-ssite 等 于

-ksite=site

-uuser 等 于

-kremote_user=user 接 著 会 提 示 你 要 求 密 码 , 并 且 还 会 关 闭 本 地

回 应 (echo)以 兹 配 合 。 这 个 密 码 是 用 来 设 定 remote_password 用 的 。

-L 只 是 产 生 一 份 输 入 的 美 观 列 表 版 本 。

-G 从 远 端 机 器 取 得 档 案 。 本 地 以 及 远 端 目 录 必 须 在 命 令 列 上 给 定 。 ( 这 个 选 项 已 经 不 再 支 援 。 )

-P 把 档 案 放 上 远 端 机 器 。 本 地 以 及 远 端 目 录 必 须 在 命 令 列 上 给 定 。 ( 这 个 选 项 已 经 不 再 支 援 。 )

-C filename 指 定 配 置 文 件 。 配 合 -P 以 及 -G 选 项 之 配 置 文 件 之 需 。 ( 这 个 选 项 已 经 不 再 支 援 。 )

文 件 Package Files

配 置 档 会 被 剖 析 成 一 系 列 的 叙 述 。 空 白 行 及 以 杂 凑 (hash)符 号 起 始 的 行 会 被 忽 略 。 每 个 叙 述 的 形 式 都 是 关 键 字 =值 或 是 关 键 字 +值 你 可 以 在 关 键 字 以 及 等 号 / 加 号 的 前 面 加 上 空 白 字 元 。 所 有 紧 跟 在 等 号 / 加 号 之 后 的 每 样 事 物 都 是 一 个 值 , 这 包 含 任 何 开 头 或 结 尾 的 空 白 字 元 。 等 号 的 版 本 会 将 关 键 字 设 定 为 该 值 , 而 加 号 的 版 本 会 将 该 值 连 结 到 预 设 值 的 结 尾 上 。 一 个 叙 述 可 以 在 除 最 后 一 行 以 外 使 用 ampersand(’&’) 字 元 作 结 束 以 连 续 超 过 多 行 。 尾 随 在 ampersand 之 后 的 行 , 都 会 以 移 除 所 有 开 头 空 白 字 元 的 方 式 附 加 到 目 前 所 在 行 的 后 面 。 这 里 是 一 份 关 键 字 的 列 表 而 且 它 们 预 设 的 值 放 在 square brackets 里 面 列 出 。 以 星 号 标 出 的 选 项 目 前 还 没 有 实 作 出 来 。 虽 然 有 很 多 关 键 字 可 以 设 定 , 内 建 的 预 设 值 将 可 处 理 大 部 分 的 情 况 。 一 般 只 需 要 设 定 package, site, remote_dir 以 及 local_dir 即 可 。

package 对 所 要 映 射 的 档 案 包 裹 而 言 应 该 得 要 是 个 唯 一 的 名 称 。 [’’]
comment 用 在 报 告 里 。 [’’]

skip 设 定 这 个 项 目 会 使 得 该 档 案 包 裹 被 跳 过 。 此 值 会 被 报 告 为 跳 过 的 原 因 。 ( 这 比

commenting the entry out 来 得 容 易 。 ) [’’]

site 远 端 节 点 的 节 点 名 称 或 是

IP 位 址 。 [’’]

remote_dir 所 要 映 射 的 远 端 目 录 。 参 阅 recursed_hard。 [’’]
local_dir 本 地 目 录 。 [’’]
remote_user 用 在 远 端 节 点 的 使 用 者 名 称 。 [anonymous]
remote_password 用 在 远 端 节 点 的 密 码 。 [user@localhostname]
get_patt 所 要 撷 取 之 远 端 路 径 名 称 的 正 规 表 示 式 。 [.]
exclude_patt 所 要 忽 略 之 远 端 目 录 名 称 的 正 规 表 示 式 。 [’’]
update_local 把 get_patt 设 为 local_dir/*。 这 在 如 果 你 只 想 要 映 射 远 端 档 案 服 务 处 中 所 选 定 的 子 目 录 时 会 有 用 。 [false]
local_ignore 所 要 忽 略 之 本 地 路 径 名 称 的 正 规 表 示 式 。 对 用 来 跳 过 受 限 (restricted)的 本 地 目 录 有 用 。 [’’]
do_deletes 如 果 目 的 (destination) 档 案 不 存 在 于 来 源 树 中 (source tree)中 则 删 除 之 。 [false]
delete_patt 检 查 所 要 删 除 之 本 地 路 径 名 称 的 正 规 表 示 式 。 不 符 合 的 名 称 不 会 被 检 查 。 所 有 以 此 样 板 所 选 出 的 档 案 都 会 被 检 查 是 否 符 合 delete_excl 选 项 。 [.]
delete_get_patt 把 delete_patt 设 为 get_patt。 [false]
delete_excl 永 不 删 除 之 本 地 路 径 名 称 的 正 规 表 示 式 。 [’’]
save_deletes 把 本 地 档 案 储 存 到 save_dir 里 取 代 将 其 删 除 。 [false]
save_dir 当 本 地 档 案 不 存 在 于 远 端 节 点 的 时 候 会 被 转 移 到 此 处 。 [Old]
max_delete_files 如 果 有 超 过 此 数 的 档 案 会 被 删 除 , 则 不 进 行 删 除 动 作 , 只 发 出 警 告 。 若 此 值 系 以 百 分 比 字 元 作 为 结 束 的 话 则 此 值 为 取 消 删 除 前 之 档 案 的 百 分 比 。 [10%]
max_delete_dirs 如 果 有 超 过 此 数 的 目 录 会 被 删 除 , 则 不 进 行 删 除 动 作 , 只 发 出 警 告 。 若 此 值 系 以 百 分 比 字 元 作 为 结 束 的 话 则 此 值 为 取 消 删 除 前 之 档 案 的 百 分 比 。 [10%]
max_days 如 果 >0 的 话 , 忽 略 比 此 日 数 更 久 以 前 的 档 案 。 任 何 被 忽 略 的 档 案 将 不 会 被 传 输 或 删 除 。 [0]
split_max 如 果 >0 而 且 档 案 的 大 小 比 此 值 大 , 该 档 案 会 被 切 割 以 便 本 地 储 存 ( 档 案 名 称 同 时 也 必 须 要 符 合 split_patt 选 项 ) 。 [0]
spilt_patt 要 储 存 在 本 地 前 需 先 分 割 之 远 端 路 径 名 称 的 正 规 表 示 式 。 [’’]
split_chunk 档 案 所 要 切 割 成 的 大 小 。 [102400]
ls_lR_file 包 含 ls-lR 的 远 端 档 案 , 否 则 执 行 远 端 ls 以 取 得 目 录 列 表 。 [’’]
local_ls_lR_file 包 含 ls-lR 的 本 地 档 案 , 否 则 使 用 远 端 节 点 的 ls_lR_file 取 代 。 这 在 第 一 次 映 射 一 个 很 大 的 档 案 包 裹 时 有 用 。 [’’]
recursive 执 行 范 围 包 括 子 目 录 。 [true]
recuese_hard 必 须 对 每 一 个 子 目 录 执 行 cwd 以 及 ls 以 产 生 远 端 ls 结 果 。 在 这 种 情 形 下 remote_dir 必 须 是 绝 对 的 ( 从 / 开 始 ) 而 非 相 对 的 。 使 用 ftp 里 的 pwd 指 令 以 找 出 远 端 档 案 区 域 之 路 径 开 始 处 。 ( 如 果 remote_fs 是 vms 则 不 可 使 用 。 ) [false]
flags_recursive 传 送 给 远 端 ls 用 以 执 行 递 回 列 出 的 旗 标 。 [’-lRat’]
flags_nonrecursive 传 送 给 远 端 ls 用 以 执 行 非 递 回 列 出 的 旗 标 。 [’-lat’]
remote_fs 远 端 档 案 储 存 型 态 。 处 理 unix, dls, netware vms, dosftp, macos, lsparse 以 及 infomac。 细 节 参 阅 下 面 FILESTORES 段 落 。 [unix]
vms_keep_version 映 射 vms 档 案 时 , 保 留 版 本 编 号 。 若 为 false , 会 抽 离 版 本 而 只 保 留 基 本 的 档 案 名 称 。 [true]
vms_xfer_text 要 以 文 字 模 式 (TEXT mode) 传 输 之 vms 档 案 的 样 板 ( 忽 略 大 小 写 ) 。 [’readme$|info$|listing$|.c$’]
name_mappings 远 端 到 本 地 的 路 径 名 称 对 映 ( 一 个 perl s 指 令 eg. s:old:new:) 。 [’’]
external_mapping 执 行 名 称 对 映 的 外 部 函 式 。 [’’]
get_newer 如 果 远 端 档 案 的 日 期 比 本 地 的 新 则 取 回 。 [true]
get_size_change 如 果 档 案 的 大 小 与 本 地 的 不 同 则 取 回 。 如 果 档 案 是 在 撷 取 时 压 缩 的 , 则 其 大 小 会 自 动 地 忽 略 掉 。 [true]
compress_patt 储 存 在 本 地 之 前 要 先 压 缩 之 档 案 的 正 规 表 示 式 。 参 阅 get_size_change 选 项 。 [’’]
compress_excl 不 压 缩 之 档 案 的 正 规 表 示 式 ( 忽 略 大 小 写 ) 。 [.(z|gz)$]
compress_prog 用 来 压 缩 档 案 的 程 式 。 如 果 设 为 compress 或 是 gzip 这 两 个 字 的 话 , 则 将 会 自 动 地 设 定 完 整 的 路 径 名 称 以 及 正 确 的 compress_suffix(副 档 名 ) 。 使 用 gzip 的 时 候 , 会 使 用 第 九 级 (gzip -9) 压 缩 。 注 意 到 可 以 在 compress_prog 之 后 设 定 compress_suffix 将 其 重 设 为 非 标 准 值 。 [compress]
compress_suffix 压 缩 程 式 附 加 到 档 案 后 的 字 元 。 若 压 缩 程 式 选 项 compress_prog 为 compress 的 话 , 则 此 预 设 值 为 .Z 。 若 compress_prog 为 gzip 的 话 , 则 此 预 设 值 为 .gz。 [’’]
compress_conv_patt 如 果 compress_prog 是 gzip 的 话 , 符 合 这 个 样 板 的 档 案 会 被 解 压 缩 并 在 本 地 储 存 前 以 gzip 重 新 压 缩 。 压 缩 转 换 只 对 compress 到 gzip 此 转 换 有 意 义 。 [(.Z|.taz)$]
compress_conv_expr 把 副 档 名 从 compress 转 为 gzip 形 式 的 perl 表 示 式 。 [s/.Z$/.gz/;s/.taz$/.tgz/]
compress_size_floor 只 压 缩 比 此 数 值 小 的 档 案 。 [0]
force_times 强 制 要 求 本 地 时 间 符 合 远 端 时 间 。 [yes]
retry_call 如 果 初 始 连 线 失 败 , 一 分 钟 之 后 重 试 一 次 。 这 是 用 来 处 理 一 些 反 向 找 寻 (lookup)进 入 (incoming) 主 机 但 有 时 会 在 第 一 次 尝 试 时 超 过 时 间 的 节 点 。 [yes]
update_log 档 案 名 称 , 系 相 对 于 local_dir 选 项 之 设 定 值 , 此 处 会 保 留 一 份 更 新 报 告 。 [’’]
mail_to 将 一 份 系 统 执 行 工 作 记 录 寄 给 这 个 以 逗 点 隔 开 之 列 表 上 的 人 。 [’’]

user 给 予 本 地 路 径 名 称 之 使 用 者 名 称 或 使 用 者 号 码 。

[’’]

group 给 予 本 地 路 径 名 称 之 群 组 名 称 或 群 组 号 码 。

[’’]
file_mode 给 予 本 地 建 立 之 档 案 的 权 限 。 [0444]
dir_mode 给 予 本 地 建 立 之 目 录 的 权 限 。 [0755]
timeout 在 此 秒 数 后 结 束 ftp 要 求 。 [40]
ftp_port 远 端 ftp 伺 服 程 式 的 埠 号 。 [21]

proxy 设 为

1 以 使 用 代 理 转 接 (proxy)式 的 ftp 服 务 。 [0]

proxy_ftp_port 代 理 服 务 之 ftp 伺 服 程 式 的 埠 号 。 [4514]
proxy_gateway 代 理 服 务 之 名 称 , 也 可 用 INTERNET_HOST 变 数 来 提 供 。 [internet-gateway]
mode_copy 指 出 是 否 需 要 拷 贝 模 式 位 元 (mode bits) 的 旗 标 。 [false]
interactive 非 批 次 (non-batch) 传 输 。 系 以 -g 旗 标 实 作 。 [false]
text_mode 如 果 为 true 的 话 , 档 案 以 文 字 模 式 传 输 。 Un*x 较 喜 欢 以 二 进 位 传 输 所 以 这 是 预 设 值 。 [false]

force 如 果 为

true 的 话 , 所 有 档 案 都 将 被 传 输 而 不 去 理 会 档 案 的 大 小 或 时

间 。 [false]

get_file 以 执 行 get 而 非 put 作 为 预 设 。 [true]
verbose 冗 馀 讯 息 。 [false]
delete_source 一 旦 传 输 完 成 后 删 除 来 源 档 案 。 ( 此 选 项 已 不 再 支 援 。 ) [false]
disconnect 档 案 包 裹 结 束 后 从 远 端 节 点 结 束 连 线 。 [false]
mail_prog 呼 叫 执 行 以 将 信 件 寄 送 给 mail_to 列 表 的 程 式 。 可 以 传 递 mail_subject 参 数 。 预 设 为 mailx Mail, mail 或 任 何 在 你 的 系 统 上 可 用 的 东 西 。 [’’]
mail_subject

mirror update [’-s]

hostname Mirror 自 动 地 跳 过 节 点 名 称 符 合 此 主 机 的 档 案 包 裹 。 预 设 为 本 地 主 机 名 称 。 [’’]
use_files 将 mirroe 所 使 用 的 associative arrays 放 到 暂 存 档 里 。 [false]

umask 预 设 不 允 许 任 何

setuid 的 东 西 通 过 。 [07000]

remote_group 如 果 存 在 则 设 定 远 端 ’site group’ 。 [’’]
remote_gpass 如 果 存 在 则 设 定 远 端 ’site gpass’ 。 [’’]
remote_idle 如 果 非 空 (not null), 则 尝 试 并 将 远 端 闲 置 计 时 (idle timer)设 为 此 值 。 [’’]
make_bad_symlinks 如 果 为 true 的 话 , 将 会 把 符 号 链 结 连 到 不 允 许 ( 不 存 在 ) 的 路 径 名 称 。 旧 版 预 设 值 为 true 。 [false]
follow_local_symlinks 应 该 要 跟 从 档 案 或 是 目 录 所 指 向 处 之 路 径 名 称 的 正 规 表 示 式 。 这 使 得 mirror 不 能 够 见 到 本 地 的 符 号 链 结 。 [’’]
get_missing 确 实 取 回 档 案 。 当 设 为 false 的 时 候 , 只 执 行 删 除 以 及 建 立 符 号 链 结 。 用 来 删 除 比 max_days 更 旧 的 过 时 档 案 而 不 必 撷 取 这 些 旧 档 案 。 [true] 每 一 组 关 键 字 定 义 如 何 映 射 一 份 特 定 的 档 案 包 裹 而 且 应 该 要 以 一 行 唯 一 的 package 开 始 。 档 案 包 裹 的 名 称 用 在 产 生 报 告 及 -p 参 数 上 , 所 以 应 使 用 较 具 记 忆 性 的 名 称 。 定 义 每 个 档 案 包 裹 所 需 的 最 小 需 求 是 package, site, remote_dir 以 及 local_dir 。 一 旦 找 到 一 行 package 叙 述 , 所 有 的 预 设 值 都 会 重 设 。 如 果 package 的 名 称 是 defaults 的 话 , 则 不 会 连 线 到 任 何 节 点 去 , 但 是 所 给 任 何 关 键 字 的 预 设 值 都 会 改 变 。 一 般 而 言 所 有 的 预 设 值 都 在 mirror.defaults 这 个 将 会 在 任 何 package 细 节 前 自 动 载 入 的 档 案 里 。

# Sample mirror.defaults
package=defaults
# The LOCAL hostname - if not the same as ’hostname’ returns
# (I advertise the name src.doc.ic.ac.uk but the machine is
# really puffin.doc.ic.ac.uk.)
hostname=src.doc.ic.ac.uk
# Keep all local_dirs relative to here
local_dir=/public/
remote_password=ukuug-soft [AT] doc.uk 如 果 档 案 包 裹 不 是 defaults 的 话 , 则 mirror 将 会 执 行 下 列 步 骤 。 除 非 侦 测 出 一 个 内 部 错 误 , 任 何 错 误 都 将 会 使 得 目 前 的 档 案 包 裹 被 跳 过 并 且 尝 试 下 一 个 。 如 果 mirror 并 非 已 经 连 上 该 节 点 , 它 将 会 从 任 何 已 经 连 上 的 节 点 离 线 并 尝 试 连 线 到 远 端 节 点 的 ftp 伺 服 程 式 去 。 它 接 著 将 会 使 用 所 给 的 远 端 使 用 者 名 称 及 密 码 签 入 。 一 旦 连 上 , mirror 开 启 二 进 位 传 输 模 式 。 接 下 来 它 切 换 到 所 给 的 本 地 目 录 并 扫 描 之 以 取 得 已 经 存 在 的 本 地 档 案 的 细 节 。 如 果 必 要 , 将 会 建 立 本 地 目 录 。 一 旦 这 项 作 业 完 成 , 会 以 类 似 的 方 式 扫 描 远 端 目 录 。 Mirror 系 切 换 到 远 端 目 录 并 执 行 ftp LIST 指 令 , 然 后 依 据 recursive 选 项 的 值 传 递 flags_recursive 选 项 或 flags_nonrecursive 选 项 来 完 成 。 此 外 也 可 以 撷 取 一 个 包 含 有 目 录 列 表 的 档 案 。 每 一 个 远 端 路 径 名 称 都 将 会 执 行 任 何 指 定 的 对 映 (mapping) 以 建 立 本 地 路 径 名 称 。 然 后 任 何 由 exclude_patt, max_days, get_newer 以 及 get_size_change 关 键 字 指 定 的 检 验 都 会 施 行 在 档 案 或 符 号 链 结 上 。 只 有 exclude- patt 检 验 会 施 行 在 子 目 录 上 。 上 述 过 程 建 立 一 份 所 有 需 要 的 远 端 档 案 以 及 要 储 存 它 们 之 本 地 路 径 名 称 的 列 表 。 一 旦 目 录 列 表 完 成 , 所 有 需 要 的 档 案 都 会 从 远 端 节 点 撷 取 到 它 们 的 本 地 路 径 名 称 。 作 法 是 把 档 案 撷 取 到 目 标 目 录 里 的 暂 存 档 。 如 果 有 需 要 , 暂 存 档 会 被 压 缩 (compressed, gzip’ed) 或 是 切 割 ( 或 者 是 压 缩 后 再 切 割 ) 。 当 传 输 成 功 后 再 把 暂 存 档 改 名 。

档 案 储 放 FILESTORES

Mirror 使 用 远 端 目 录 列 表 以 找 出 可 以 取 得 哪 些 档 案 。 Mirror 本 来 的 目 标 是 连 线 到 unix 的 ftp 伺 服 程 式 使 用 标 准 的 ls 指 令 。 要 使 用 于 非 标 准 ls 的 unix 主 机 或 非 unix 的 主 机 上 它 必 须 要 设 remote_fs 变 数 以 符 合 将 会 传 回 (return)的 目 录 列 表 类 型 。 此 变 数 (remote_fs) 与 其 它 变 数 特 别 是 flags_recursive, recurse_hard 以 及 get_size_change 之 间 有 些 交 互 作 用 。 下 列 的 节 次 将 会 秀 些 在 不 同 档 案 服 务 处 执 行 ftp 的 dir 指 令 所 产 生 的 结 果 以 及 相 关 变 数 的 建 议 。 在 配 合 某 些 设 定 与 众 不 同 的 档 案 服 务 处 的 时 候 你 可 能 必 须 变 更 此 处 所 建 议 的 变 数 设 定 。

remote_fs=unix
total 65
-rw-r--r-- 1 ukuug ukuug 2245 Jun 28 20:06 README
-rw-r--r-- 1 ukuug ukuug 61949 Jun 29 19:13 mirror-2.1.tar.gz 这 是 预 设 值 而 且 你 应 该 不 必 重 设 任 何 其 它 变 数 。

remote_fs=dls
00index.txt 189916
0readme 5793
1_x/ = OS/2 1.x-specific files 这 是 某 些 unix 档 案 服 务 处 所 使 用 的 ls 变 化 型 。 它 在 列 表 中 提 供 其 所 知 项 目 的 描 述 。 把 flags_recursive 设 为 -dtR 即 可 。

remote_fs=netware
- [R----F--] jrd 1646 May 07 21:43 index
d [R----F--] jrd 512 Sep 09 10:52 netwire
d [R----F--] jrd 512 Sep 02 01:31 pktdrvr
d [RWCE-F--] jrd 512 Sep 04 10:55 incoming 这 是 Novell 档 案 服 务 处 所 使 用 的 。 把 recurse_hard 设 为 true 并 且 把 flags_recursive 设 为 空 (nothing)的 。 参 阅 remote_dir

dosftp
00-index.txt 6,471 13:54 7/20/93 alabama.txt 1,246 23:29 5/08/92
alaska.txt 873 23:29 5/08/92 alberta.txt 2,162 23:29 5/08/92

dosftp 是 在 dos 上 执 行 的 一 套 ftp 伺 服 程 式 。 recurse_hard 设 为 true 并 且 把 flags_recursive 设 为 空 (nothing)的 。

remote_fs=macos
-------r-- 0 127 127 Aug 27 13:53 !Gopher Links
drwxrwxr-x folder 32 Sep 9 16:30 FAQ
drwxrwx-wx folder 0 Sep 9 09:59 incoming

macos 是 麦 金 塔 (Macintosh) ftp 伺 服 程 式 的 一 个 变 化 型 。 虽 然 此 输 出 类 似 于 unix 但 是 unix 这 个 remote_fs 型 态 无 法 应 付 它 是 因 为 每 个 档 案 有 三 个 大 小 。 把 recurse_hard 设 为 true, flags_ recursive 设 为 空 (nothing)的 , get_size_change 设 为 false 并 将 compress_patt 设 为 空 ( 最 后 这 个 设 定 是 因 为 此 不 平 常 的 档 案 名 称 会 扰 乱 执 行 压 缩 的 shell 界 面 ) 。 参 阅 remote_dir 设 定 。

remote_fs=vms
USERS:[ANONYMOUS.PUBLIC]

1-README.FIRST;13 9 14-JUN-1993 13:09 [ANONYMOUS] (RWE,RWE,RE,RE)
PALTER.DIR;1 1 18-JAN-1993 11:56 [ANONYMOUS] (RWE,RWE,RE,RE)
PRESS-RELEASES.DIR;1
1 11-AUG-1992 20:05 [ANONYMOUS] (RWE,RWE,,)

alternatively:

[VMSSERV.FILES]ALARM.DIR;1 1/3 5-MAR-1993 18:09
[VMSSERV.FILES]ALARM.TXT;1 1/3 4-FEB-1993 12:20 把 flags_recursive 设 为 ’[...]’ 并 将 get_size_change 设 为 false。 recurse_hard 在 vms 上 不 能 使 用 。 除 此 之 外 还 可 以 参 阅 vms_keep_version 以 及 vms_xfer_text 变 数 。
remote_fs=infomac
这 个 特 殊 型 态 仅 在 处 理 sumexaim.stanford.edu info-mac 目 录 之 help/all-files 有 意 义 。 recurse_hard 应 该 设 为 true。
remote_fs=lsparse 允 许 开 启 高 阶 除 错 方 式 重 新 剖 析 由 mirror 产 生 的 列 表 。 这 只 对 于 mirror wizards 有 用 。

范 例 EXAMPLES

这 里 是 从 src.doc.ic.ac.uk 上 来 的 mirror.defaults 档 案 :

# This is the default mirror settings used by my site:
# src.doc.ic.ac.uk (146.169.2.1)
# This is home of the UKUUG Software Distribution Service

package=defaults
# The LOCAL hostname - if not the same as ’hostname’
# (I advertise the name src.doc.ic.ac.uk but the machine is
# really puffin.doc.ic.ac.uk)
hostname=src.doc.ic.ac.uk
# Keep all local_dirs relative to here
local_dir=/public/
remote_password=ukuug-soft [AT] doc.uk
mail_to=
# Don’t mirror file modes. Set all dirs/files to these
dir_mode=0755
file_mode=0444
# By default, files are owned by root.zero
user=0
group=0
# # Keep a log file in each updated directory
# update_log=.mirror
update_log=
# Don’t overwrite my mirror log with the remote one.
# Don’t retrieve any of their mirror temporary files.
# Don’t touch anything whose name begins with a space!
# nor any FSP or gopher files...
exclude_patt=(^|/)(.mirror$|.in..*.$|MIRROR.LOG|#.*#|.FSP|.c
ache|.zipped|lost+found/| )
# Try to compress everything
compress_patt=.
compress_prog=compress
# Don’t compress information files, files that don’t benefit
from
# being compressed, files that tell ftpd, gopher, wais... to
do things,
# the sources for compression programs...
# (Note this is the only regexp that is case insensitive.)
compress_excl+|^.notar$|-z|.taz$|.tar.Z|.arc$|.zip$|.lzh$|.z
oo$|.exe$|.lha$|.zom$|.gif$|.jpeg$|.jpg$|.mpeg$|.au$|read.*me|index|.message|in
fo|faq|gzip|compress
# Don’t delete own mirror log or any .notar files (incl in s
ubdirs)
delete_excl=(^|/).(mirror|notar)$
# Ignore any local readme files
local_ignore=README.doc.ic
# Automatically delete local copies of files that the
# remote site has zapped
do_deletes=true
Here are some sample package descriptions:
package=gnu
comment=Powerful and free Un*x utilities
site=prep.ai.mit.edu
remote_dir=/pub/gnu
# Local_dir+ causes gnu to be appended to the default local_
dir
# so making /public/gnu
local_dir+gnu
exclude_patt+|^ListArchives/|^lost+found/|^scheme-7.0/|^.his
tory
# I tend to only keep the latest couple of versions of thing
s
# this stops mirror from retrieving the older versions I’ve
removed
max_days=30
do_deletes=false

package=X11R5
comment=X Windows (windowing graphics system for Un*x)
site=export.lcs.mit.edu
remote_dir=/pub/R5
local_dir+computing/graphics/systems/X11/pub/R5
# This is a local symlink to the free-for-all contrib area
# and is mirrored elsewhere
local_ignore=^contrib$
# Don’t compress a thing. It is already compressed
# but doesn’t look it.
compress_patt=

package=cnews
comment=The C News system
site=ftp.cs.toronto.edu
remote_dir=/pub/c-news
local_dir+computing/usenet/software/transport/c
compress_excl+|patches/PATCHDATES|WhereFrom

# THIS IS JUST A TEST
package=test vms site
site=vmsbox.somewhere.ac.uk
local_dir=/tmp/copy4
remote_dir=vmsserv/files
remote_fs=vms
# Must do these settings for VMS
flags_recursive=[...]
get_size_change=false

# and on, and on ...

提 示

要 增 加 一 个 新 的 档 案 包 裹 , 首 先 打 开 -n 选 项 检 查 它 。 如 果 你 要 增 加 到 一 个 已 经 存 在 档 案 的 地 方 , 那 么 通 常 最 好 是 force 本 地 已 经 存 在 的 档 案 时 间 符 合 远 端 的 这 样 将 会 执 行 与 远 端 档 案 之 间 的 时 间 比 较 。 尝 试 并 将 所 有 从 相 同 节 点 撷 取 的 档 案 包 裹 放 在 一 起 。 使 用 这 种 方 式 的 话 mirror 将 仅 需 签 入 一 次 。 记 得 所 有 的 正 规 表 示 式 都 是 Perl 正 规 表 示 式 。 如 果 远 端 节 点 包 含 你 想 展 开 ("flatten out") 到 相 对 应 档 案 的 符 号 链 结 , 那 么 以 改 变 传 送 给 远 端 ls 旗 标 的 方 式 执 行 之 。

flags_recursive+L 或 是
flags_nonrecursive+L 首 先 以 在 远 端 节 点 的 ftp 指 令 下 尝 试 ls -lRatL 的 方 式 来 测 试 远 端 档 案 服 务 处 是 否 有 任 何 符 号 链 结 回 圈 。 如 果 你 正 要 映 射 一 个 非 常 大 而 不 常 改 变 的 节 点 , 等 它 初 次 映 射 后 在 设 定 中 加 上 max_days=7 选 项 。 以 此 方 式 mirror 在 更 新 的 时 候 仅 需 要 注 意 最 近 的 档 案 。 然 后 每 个 礼 拜 一 次 , 或 者 是 有 必 要 的 时 候 , 以 -kmax_days=-0 呼 叫 mirror 强 制 执 行 一 次 完 整 的 更 新 。 如 果 你 不 想 压 缩 从 远 端 节 点 取 得 的 任 何 东 西 则 最 简 单 的 方 法 就 是 将 compress_patt 设 为 空 (nothing) 的 。 如 果 你 想 在 映 射 一 份 档 案 包 裹 后 执 行 某 个 指 令 那 么 有 个 有 用 的 技 巧 是 将 mail_prog 变 数 重 设 为 程 式 的 名 称 并 将 mail_to 重 设 为 其 参 数 。 对 于 netware, dosftp, macos 以 及 vms 而 言 一 般 你 应 该 得 要 把 remote_dir 设 为 远 端 ftp 伺 服 程 式 的 home 目 录 。 手 动 连 线 并 在 切 换 到 子 目 录 之 前 使 用 pwd 指 令 找 出 home 在 哪 里 。 如 果 你 仅 想 要 映 射 整 个 档 案 树 的 一 部 份 那 么 应 该 在 开 头 处 给 定 包 含 此 home 目 录 的 完 整 路 径 名 称 。

macos 的 名 称 有 时 候 会 包 含 一 些 很 难 让 它 们 通 过 un*x shells 的 字 元 。 因 为 档 案 压 缩 是 经 由 shell 执 行 最 好 设 compress_patt= 以 便 关 闭 压 缩 。

macos 档 案 在 传 输 时 似 乎 无 论 如 何 其 大 小 都 会 改 变 , 不 管 是 以 二 进 位 或 是 文 字 模 式 。 所 以 最 好 是 设 get_size_change=false 较 佳 。

网 路 观 念 (NETIQUETTE)

如 果 你 要 映 射 一 个 远 端 节 点 , 请 遵 守 该 节 点 管 理 者 对 于 存 取 开 节 点 所 设 的 限 制 。 你 通 常 可 以 使 用 标 准 的 ftp 指 令 连 到 该 档 案 服 务 处 。 任 何 限 制 一 般 会 作 为 签 入 时 的 标 题 或 是 放 在 一 个 ( 希 望 是 ) 明 显 的 档 案 里 。 这 里 是 , 我 希 望 是 , 一 些 好 的 一 般 原 则 : 只 在 本 地 以 及 远 端 节 点 的 工 作 时 间 以 外 映 射 节 点 。 尝 试 每 天 映 射 一 个 远 端 节 点 超 过 一 次 可 能 是 不 友 善 的 。 在 映 射 一 个 远 端 节 点 之 前 , 尝 试 先 从 当 地 的 档 案 服 务 处 寻 找 该 档 案 包 裹 , 因 为 没 有 人 会 高 兴 你 没 有 必 要 地 占 用 许 多 网 路 频 宽 。 如 果 你 有 一 个 当 地 的 档 案 服 务 处 , 那 么 请 告 诉 别 人 它 的 存 在 让 他 们 不 必 量 费 频 宽 以 及 CPU 在 远 端 节 点 上 。 要 记 得 在 远 端 节 点 改 变 其 存 取 限 制 时 检 查 你 的 配 置 档 。 定 期 检 查 远 端 节 点 是 否 有 新 的 限 制 。

参 阅 SEE ALSO

perl(l), ftp(1), mm(1)

虫 虫 BUGS

某 些 网 路 观 念 指 引 应 该 要 强 调 。 应 该 要 能 够 如 同 符 号 链 结 一 般 地 应 付 链 结 。

Suffers from creeping featurism.

注 意 NOTES

在 mirror 里 的 物 件 比 你 所 想 的 还 要 近 !

作 者 AUTHOR

Written by Lee McLoughlin . It uses an extended version of the ftp.pl package originally by: Alan R. Martello which uses the chat2.pl pack- age by: Randal L. Schwartz

Special thanks to the following people for patches, com- ments and other suggestions that have helped to improve mirror. If I have omitted anyone, please contact me.

James Revell Chris Myers Amos Shapira Paul A Vixie Jonathan Kamens Christian Andretzky Kean Stump Anita Eijs Simon E Sperro Aaron Wohl Michael Meissner Michael Graff Bradley Rhoades Edwards Reed Joachim Schrod David Woodgate Pieter Immelman Jost Krieger

Copyright (C) 1999 《 Best Linux》 . All rights reserved. Revised: 99-11-28.

[中 文 版 维 护 人 ]

软 件 教 程 最 新 的 版 本 是 mirror-2.9.7(20031118) 因 此 您 手 上 这 份 1996年 的 原 始 文 档 +1999年 的 翻 译 也 许 不 能 满 足 您 的 要 求 了 。 请 登 录 http://sunsite.org.uk/packages/mirror/mirror.html 来 参 看 原 文 。

[中 文 版 最 新 更 新 ]

2001/01/01

《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh