《Kermit初始化与UUCP系统全解析》
1. Kermit初始化文件
Kermit初始化文件
bbsite.ini
如下:
$ cat bbsite.ini
# This file presents the second portion of the kermit initialization sequence
# that is dynamically created before the C−Kermit invocation and saved in the
# then created kermit take−file. It contains bulletin−board site specific data,
# cannot be copied as it is. The displayed syntax is C−Kermit specific.
# Phone number to dial
output ATDT12125671234\13
# The following sequence depends on the actual dialogue between
# this host and the bulletin−board site. Each input entry specifies the
# time to wait and the expected "pattern" to be received
input 70 CONNECT
if failure goto ACQUIRE_MODEM
input 20 logon id:
if failure goto ACQUIRE_MODEM
# Login ID – for zmodem TP002324
output TP002324\13
input 20 password:
if failure goto ACQUIRE_MODEM
# No password on this account
output \13
input 20 cmd>
if failure exit 1
# zmodem production= 1224, test= 1299
output $$ADD ID=TP002324 BID='TESTING'\13
input 20 seconds
if failure exit 1
# Change directory for file to send named FileToGo
cd /share/bulletin−board/data
# Send the file with periodic (fake) key insertion
# Program "sz" to transmit the file is dynamically set
sz −w16384 FileToGo
if failure exit 2
input 50 cmd>
if failure exit 1
output LOGOFF\13
input 30 LOGOFF completed
该文件展示了Kermit初始化序列的第二部分,在调用C - Kermit之前动态创建,并保存到生成的Kermit文件中。它包含了公告板站点的特定数据,不能直接复制使用,其语法是C - Kermit特有的。
2. UUCP系统概述
UUCP即“UNIX to UNIX Copy”,是一组用于不同UNIX系统间通信的程序集合。它能实现UNIX系统间的文件传输、在远程UNIX系统上执行命令以及向远程UNIX系统的用户发送邮件。
UUCP主要使用标准串行连接和电话服务,也可在本地网络上运行。每个连接基于用户请求建立,会创建相应的拨号链接。参与UUCP连接的每个UNIX系统都有描述与其直接相连的其他系统的文件,包括可用链接的类型,这些文件由系统管理员创建。通常,UUCP所需的监督和整体管理较少。
虽然UUCP是一个相对古老的UNIX子系统,如今很多人认为它已过时,但实际上它出现较早,且仍在使用,努力跟上其他更先进的通信技术的步伐。它在管理其他UNIX问题,特别是与调制解调器相关的领域中也很有用。此外,UUCP还支持Usenet,这是一个使用公共领域Netnews软件交换各种主题新闻的公告板网络。
3. UUCP的工作原理
使用UUCP主要涉及三个程序:
-
uucp
:用于在本地和远程机器之间进行文件传输,类似于
cp
命令,但具有扩展的寻址能力。
-
uux
:用于在远程机器上执行命令,由于安全原因,通常会受到一定限制。
-
mail
:与UUCP兼容的邮件程序版本,即
/bin/mail
,不要与
/usr/ucb/mail
(第20章讨论的电子邮件用户代理)混淆。
这些程序主要从命令行使用,但更多的工作是在后台由两个UUCP守护进程
uucico
和
uuxqt
完成的。
uucico
负责在UNIX系统之间传输文件和远程执行请求,
uuxqt
负责在远程UNIX系统上处理这些请求。
UUCP是一个“存储转发”子系统,传输和远程处理请求不会立即执行,而是先放入队列等待后续执行。当
uucp
或
uux
程序被调用时,会在
/usr/spool/uucp
目录中创建一个包含源文件和目标文件信息、程序选项以及请求类型的“工作文件”。如果需要传输文件,还会复制要传输的文件。
uucico
守护进程会扫描该目录中的工作文件,尝试联系指定的远程UNIX系统并执行工作文件中的指令。在BNU UUCP版本中,中间进程
uusched
会进行扫描,并在满足条件时调用
uucico
。工作文件只包含
uucico
需要知道的部分信息,何时以及如何执行的信息包含在
/usr/lib/uucp
目录中的一组UUCP配置文件中,这需要系统管理员提前设置。
4. UUCP版本
- Version 2 UUCP :1976年在AT&T贝尔实验室开发,1977年随UNIX Version 7发布,后续更新版本被集成到SVR1和SVR2平台。
- Truscott UUCP :随BSD 4.2发布,基于杜克大学的更新版本(杜克大学的UUCP版本已不再使用)。
- BNU UUCP :随着SVR3发布,也称为HoneyDanBer UUCP。BSD 4.3的UUCP进行了重大更新,融合了一些BNU特性,同时与其他Version 2 UUCP实现保持了更多的连续性。
一般来说,类BSD的UNIX平台主要使用Version 2 UUCP,而类System V的UNIX平台主要使用BNU UUCP。可以通过列出
/usr/lib/uucp
目录并查找特定文件来确定运行的UUCP版本。如果存在
L.sys
文件,则是Version 2 UUCP;否则,
Systems
文件属于BNU UUCP。如今,Solaris、HP - UX等现代UNIX系统将UUCP配置文件保存在
/etc/uucp
目录中。
5. UUCP聊天 - 传输会话
假设两个远程UNIX主机
red
和
blue
可以通过电话网络进行通信,并且发起了从
red
到
blue
的UUCP文件传输,且两个主机都已正确配置。主机之间的通信方式完全取决于UUCP子系统的配置,配置信息记录在UUCP配置文件中,如BNU UUCP子系统的
/etc/uucp/Systems
文件(早期为
/usr/lib/uucp/Systems
),或Version 2 UUCP子系统的
/etc/uucp/L.sys
文件(或
/usr/lib/uucp/L.sys
)。
在主机
red
上的相应配置条目如下:
blue Any ACU 19200 3217654 ogin: iamred ssword: passme
该条目定义了
red
系统可以随时通过连接到电话线的调制解调器(ACU = Automatic Calling Unit)以19200 bps的速度,使用电话号码3217654,以用户名
iamred
和密码
passme
登录到
blue
系统。
UUCP会话从主机
red
上的用户命令开始,直到主机
blue
上的远程系统守护进程验证传输为止。如果有多种方式可以访问远程主机,配置文件中可能会有多个该主机的条目。配置文件只指定了连接的名称,不描述实现的硬件。另一个文件,如BNU中的
Devices
(或Version 2中的
L - devices
),包含了指定连接与
uucico
守护进程访问实际设备(如使用的串行线路)的设备名称之间的一对一映射。如果设备是调制解调器,如何拨号的额外信息可以在
acucap
或BNU中的
Dialers
(或Version 2中的
modemcap
)文件中找到。
文件传输可能不会立即发生,原因可能是传输被限制在特定时间,或者电话线当时繁忙。在这种情况下,
uucico
会留下相应的状态文件,并在下次调用时再次尝试,直到传输成功或达到最小重试周期(默认55或60分钟)。
文件传输在源主机和目标主机的两个
uucico
守护进程之间进行。源系统(调用方)的
uucico
扮演“主角色”,控制链接;目标系统(接收方)的
uucico
扮演“从角色”,检查本地权限以授权传输。两个守护进程相互通信,当没有更多文件需要传输时,它们同意挂断。此时,另一个守护进程
uuxqt
会被调用,扫描队列目录以查找来自远程系统的任何未完成的执行请求。如果存在这样的请求,
uuxqt
会派生一个命令来执行用户的请求。
6. UUCP命令和守护进程
6.1 主要的UUCP命令
UUCP相关命令位于
/usr/bin
目录中,核心命令是
uucp
和
uux
。
-
uucp命令
:用于将源文件复制到指定的目标文件。文件名可以是本地系统上的完整路径名,也可以采用
system - name!pathname
的形式,其中
system - name
指定远程系统,
pathname
指定文件的完整路径。
uucp
命令在传输过程中会保留执行权限,并为所有人授予读写权限(文件模式666)。
uucp
命令的格式为:
uucp −options source−file destination−file
选项及含义如下:
| 选项 | 含义 |
| ---- | ---- |
|
-c
| 复制时使用源文件,而不是将文件复制到队列目录,这是默认设置。 |
|
-C
| 在UUCP队列目录中创建传出文件的副本,而不是直接将源文件复制到目标系统,这样可以在发出
uucp
命令后删除源文件。 |
|
-d
| 为文件复制创建所有必要的目录,这是默认设置。 |
|
-f
| 不为文件复制创建中间目录。 |
|
-j
| 在标准输出上输出作业标识ASCII字符串,该作业标识可用于
uustat
命令获取作业状态或终止作业。 |
|
-m
| 复制完成后向请求者发送邮件。 |
|
-r
| 不启动
uucico
守护进程,仅将作业排队。 |
|
-g grade
|
grade
是一个字母或数字,从0到9、A到Z或a到z,0是最高等级,z是最低等级。较低的等级会使作业在特定对话中更早传输,默认等级是
n
。 |
|
-n username
| 通知远程系统的
username
有文件发送。 |
|
-x debug - level
| 在标准输出上生成调试输出,
debug - level
是0到9之间的数字,数字越大,信息越详细,5、7和9是不错的尝试值。 |
-
uux命令
:用于从各个系统收集文件,在指定系统上执行命令,并将标准输出发送到指定系统的文件中。由于安全原因,大多数安装限制了
uux可以执行的命令列表,通常只允许接收邮件。远程执行权限在相应的配置文件中定义。
uux
命令的格式为:
uux −options command−string
选项及含义如下:
| 选项 | 含义 |
| ---- | ---- |
|
-b
| 如果作业失败(返回非零退出状态),返回提供给
uux
命令的标准输入。 |
|
-c
| 复制时使用源文件,而不是将文件复制到队列目录,这是默认设置。 |
|
-C
| 强制将本地文件复制到UUCP队列目录进行传输。 |
|
-n
| 不通过邮件返回作业成功或失败的指示。 |
|
-p
| 与
-
相同,将
uux
的标准输入作为命令字符串的标准输入。 |
|
-r
| 不启动
uucico
守护进程,仅将作业排队。 |
|
-z
| 即使作业成功(返回零退出状态),也通过邮件返回指示。 |
|
-a name
| 使用
name
作为用户标识,替换发起者的用户ID,通知将返回给该用户。 |
|
-g grade
|
grade
是一个字母或数字,从0到9、A到Z或a到z,0是最高等级,z是最低等级。较低的等级会使作业在特定对话中更早传输,默认等级是
A
。 |
|
-x debug - level
| 在标准输出上生成调试输出,
debug - level
是0到9之间的数字,数字越大,信息越详细,5、7和9是不错的尝试值。 |
uux
会尝试将所有文件传输到执行系统。对于输出文件,文件名必须使用括号进行转义。例如:
uux ahost!cut −f1 bhost!/usr/file \(chost!/usr/file\)
该命令会从系统
bhost
获取
/usr/file
文件并发送到系统
ahost
,在该文件上执行
cut
命令,并将结果发送到系统
chost
的
/usr/file
文件中。
6.2 UUCP守护进程
UUCP守护进程是参与执行不同UUCP作业的服务器程序,它们根据需要或由其他程序启动。大多数UUCP守护进程位于
/usr/lib/uucp
目录中,下面详细介绍几个重要的守护进程:
-
uucico守护进程
:负责传输UUCP工作文件,
uux
和
uucp
命令只是将作业放入队列,由
uucico
进行传输。根据UUCP版本的不同,该守护进程可以由另一个守护进程调度器
uusched
启动,也可以手动启动(主要用于调试目的)。
启动
uucico
守护进程的命令格式为:
/usr/lib/uucp/uucico −options
主要选项如下:
| 选项 | 含义 |
| ---- | ---- |
|
-d spool - directory
| 定义包含要传输的UUCP工作文件的目录,默认目录是
/usr/spool/uucp
。 |
|
-i interface
| 定义与
uucico
一起使用的接口,该接口仅影响从模式,已知的接口是
UNIX
(默认)。 |
|
-r role - number
| 指定
uucico
应执行的角色,
role - number
为1表示主模式,0表示从模式(默认)。当
uucico
由另一个程序或
cron
启动时,应指定主模式。 |
|
-s system - name
| 指定要尝试联系的远程系统,当角色为主模式时需要指定。 |
|
-x debug - level
| 在标准输出上生成调试输出,
debug - level
是0到9之间的数字,数字越大,信息越详细,5、7和9是不错的尝试值。 |
-
uuxqt守护进程
:负责执行远程系统上使用
uux命令生成的远程作业请求(邮件程序也使用uux进行远程邮件请求)。uuxqt守护进程会在队列目录中查找以 “X.” 开头的文件,对于每个这样的文件,它会检查所有必需的数据文件是否可用和可访问,以及指定的命令是否被允许在指定系统上执行。相应的配置文件(主要是Permissions文件)用于验证文件可访问性和命令执行权限。
启动
uuxqt
守护进程的命令格式为:
/usr/lib/uucp/uuxqt [ −ssystem−name ] [ −xdebug−level ]
选项及含义如下:
| 选项 | 含义 |
| ---- | ---- |
|
-ssystem - name
| 指定远程系统的名称。 |
|
-xdebug - level
| 在标准输出上生成调试输出,
debug - level
是0到9之间的数字,数字越大,信息越详细,5、7和9是不错的尝试值。 |
在执行
uuxqt
命令之前,必须设置两个环境变量:
-
UU_MACHINE
:发送作业的机器。
-
UU_USER
:发送作业的用户。
这些变量可以在调用
uuxqt
守护进程的程序中指定,也可以通过其他方式设置。
-
uusched守护进程
:是UUCP文件传输调度器,通常由
cron间接启动(实际上由另一个UUCP程序uudemon.hour启动,该程序为该守护进程的成功执行设置必要的环境,而uudemon.hour由cron启动)。
启动
uusched
守护进程的命令格式为:
/usr/lib/uucp/uusched [ −udebug−level ] [ −xdebug−level ]
可用选项仅用于调试目的,
debug - level
是0到9之间的数字,数字越大,信息越详细:
| 选项 | 含义 |
| ---- | ---- |
|
-udebug - level
| 指定要传递给
uucico
程序的调试级别。 |
|
-xdebug - level
| 指定内部输出消息的调试级别。 |
在Solaris平台上,间接启动
uusched
守护进程的
cron
条目示例如下:
15,45 * * * * /etc/uucp/uucp/uudemon.hour
每半小时启动一次
uudemon.hour
程序,该程序会调用
uusched
守护进程。
通过以上对Kermit初始化文件和UUCP系统的详细介绍,我们可以更好地理解和使用这些工具进行UNIX系统间的通信和文件传输。
下面是一个简单的mermaid流程图,展示了UUCP文件传输的基本流程:
graph LR
A[uucp或uux调用] --> B[创建工作文件]
B --> C[uucico扫描工作文件]
C --> D{是否满足条件}
D -- 是 --> E[uucico尝试连接远程系统]
E --> F{连接成功?}
F -- 是 --> G[传输文件]
F -- 否 --> H[uucico记录状态并重试]
G --> I{传输完成?}
I -- 是 --> J[uuxqt检查执行请求]
I -- 否 --> H
J --> K{有执行请求?}
K -- 是 --> L[uuxqt执行命令]
K -- 否 --> M[结束]
L --> M
这个流程图清晰地展示了从用户调用
uucp
或
uux
命令开始,到文件传输和可能的命令执行的整个过程,帮助我们更好地理解UUCP系统的工作机制。
《Kermit初始化与UUCP系统全解析》
7. UUCP配置文件的重要性及关联
UUCP系统的正常运行高度依赖其配置文件,这些文件详细描述了系统间的连接信息、设备使用以及权限设置等。配置文件的正确设置直接关系到文件传输和命令执行的成功与否。
-
Systems/L.sys文件
:在BNU UUCP子系统中是
/etc/uucp/Systems(早期为/usr/lib/uucp/Systems),在Version 2 UUCP子系统中是/etc/uucp/L.sys(或/usr/lib/uucp/L.sys)。该文件定义了系统间的连接信息,如主机red中关于blue主机的配置条目:
blue Any ACU 19200 3217654 ogin: iamred ssword: passme
它规定了连接的时间、使用的设备(调制解调器)、连接速度、电话号码、登录名和密码等。
-
Devices/L - devices文件 :BNU中的
Devices或Version 2中的L - devices文件,建立了指定连接与uucico守护进程访问实际设备(如串行线路)的设备名称之间的一对一映射。例如,如果配置中指定了某种连接方式,该文件会明确对应的设备名称,以便uucico正确访问设备。 -
acucap/Dialers/modemcap文件 :如果连接设备是调制解调器,这些文件包含了如何拨号的额外信息。在BNU中是
acucap或Dialers,在Version 2中是modemcap。它们提供了调制解调器拨号所需的具体指令,确保uucico能够正确拨号并建立连接。 -
Permissions文件 :主要用于验证文件可访问性和命令执行权限。
uuxqt守护进程在执行远程作业请求时,会参考该文件来检查所有必需的数据文件是否可用和可访问,以及指定的命令是否被允许在指定系统上执行。
8. UUCP使用场景及案例分析
8.1 文件传输场景
假设一个企业内部有多个UNIX服务器,分布在不同的地理位置,需要进行文件共享。通过UUCP的
uucp
命令,可以方便地实现文件在不同服务器之间的传输。
例如,服务器
server1
上有一个重要的配置文件
config.txt
,需要传输到服务器
server2
上。可以使用以下命令:
uucp /path/to/config.txt server2!/path/to/destination/config.txt
在这个过程中,
uucp
会将作业放入队列,由
uucico
守护进程负责传输。如果服务器
server2
配置了相应的权限和连接信息,文件将被成功传输。
8.2 远程命令执行场景
在某些情况下,需要在远程UNIX系统上执行特定的命令。例如,管理员需要在服务器
server3
上执行
ls
命令查看文件列表。可以使用
uux
命令:
uux server3!ls > local_result.txt
该命令会将
server3
上执行
ls
命令的结果输出到本地的
local_result.txt
文件中。
uux
命令将作业放入队列,
uucico
负责建立连接并传输请求,
uuxqt
在
server3
上执行命令并返回结果。
9. UUCP的优缺点分析
9.1 优点
- 兼容性好 :UUCP可以在不同的UNIX系统之间进行通信,无论是类BSD的UNIX平台还是类System V的UNIX平台,都能通过不同的版本实现连接和数据交换。
- 功能丰富 :它不仅可以实现文件传输,还能在远程系统上执行命令和发送邮件,满足了多种UNIX系统间的通信需求。
- 相对稳定 :经过多年的发展和改进,UUCP系统相对稳定,在一些特定的环境中能够可靠地运行。
9.2 缺点
- 速度较慢 :由于主要使用标准串行连接和电话服务,传输速度相对较慢,尤其是在现代高速网络环境下,其传输效率显得较低。
-
配置复杂
:涉及多个配置文件,如
Systems、Devices、Permissions等,需要系统管理员对每个文件进行详细配置,配置过程较为复杂,容易出错。 - 安全性有限 :在安全方面,UUCP的防护机制相对较弱,容易受到各种网络攻击,如密码泄露、命令注入等。
10. UUCP的未来发展趋势
尽管UUCP已经有了较长的历史,并且面临着一些挑战,但它仍然有一定的发展空间。
- 与现代技术融合 :随着网络技术的不断发展,UUCP可能会与现代的网络协议和技术进行融合,提高其传输速度和安全性。例如,结合VPN技术,增强其在公共网络上的传输安全性。
- 简化配置和管理 :未来的UUCP版本可能会在配置和管理方面进行改进,提供更加直观和便捷的配置界面,降低系统管理员的配置难度。
- 特定领域的应用 :在一些特定的领域,如工业控制、嵌入式系统等,UUCP的稳定性和兼容性可能会使其继续发挥重要作用。
下面是一个mermaid流程图,展示了UUCP系统配置和使用的整体流程:
graph LR
A[系统管理员创建配置文件] --> B{选择UUCP版本}
B -- Version 2 --> C[/配置L.sys等文件/]
B -- BNU --> D[/配置Systems等文件/]
C --> E[uucp或uux命令调用]
D --> E
E --> F[创建工作文件]
F --> G[uucico处理工作文件]
G --> H{连接远程系统}
H -- 成功 --> I[文件传输/命令执行]
H -- 失败 --> J[uucico重试]
I --> K[uuxqt处理执行请求]
K --> L{完成任务}
L -- 是 --> M[结束]
L -- 否 --> J
这个流程图展示了从系统管理员配置UUCP系统开始,到用户使用
uucp
或
uux
命令进行文件传输和命令执行的整个过程,涵盖了配置、调用、传输和执行等关键步骤,有助于我们从宏观上理解UUCP系统的运行机制。
通过对UUCP系统的全面了解,包括其工作原理、版本、命令、守护进程、配置文件以及优缺点和发展趋势,我们可以更好地在实际应用中选择和使用UUCP,实现UNIX系统间的高效通信和数据交互。同时,我们也应该关注其未来的发展方向,以便在技术不断进步的过程中,充分发挥UUCP的优势,为企业和组织的信息化建设提供支持。
综上所述,Kermit初始化文件和UUCP系统在UNIX系统的通信和文件传输中都有着重要的作用。Kermit初始化文件为特定的公告板站点通信提供了基础配置,而UUCP系统则为不同UNIX系统之间的全面通信提供了强大的支持。我们需要深入理解它们的工作原理和使用方法,才能更好地利用这些工具,提高工作效率和系统的可靠性。
超级会员免费看
11

被折叠的 条评论
为什么被折叠?



