16.6. 故障排除

本节介绍您的 UUCP 连接可能出现的问题,并提供定位建议以修复错误。尽管这些问题经常遇到,但可能出错的情况远不止我们列出的这些。

如果您遇到问题,请使用以下命令启用调试:–xall,并查看以下位置的输出:Debug在 spool 目录中。该文件应该可以帮助您快速识别问题。当无法连接时,打开调制解调器的扬声器通常很有帮助。对于 Hayes 兼容的调制解调器,您可以通过在ATL1M1 OK文件中将dial添加到调制解调器聊天中来打开扬声器。

首先应该始终检查所有文件权限是否设置正确。uucico 应该设置为 setuid uucp,并且/usr/lib/uucp, /var/spool/uucp/var/spool/uucppublic中的所有文件都应归 uucp 所有。spool 目录中还有一些隐藏文件也必须归 uucp 所有。[1]

当您确定所有文件的权限都已正确设置,但仍然遇到问题时,您可以开始更字面地理解错误消息。我们现在将查看一些更常见的错误和问题。

16.6.1. uucico 一直提示“呼叫时间错误”

这可能意味着在sys的系统条目中,您没有指定详细说明何时可以呼叫远程系统的 time 命令,或者您给出的命令实际上禁止在当前时间呼叫。如果未给出呼叫计划,uucico 会假定永远无法呼叫该系统。

16.6.2. uucico 抱怨站点已被锁定

这意味着 uucico/var/spool/uucp中检测到远程系统的锁定文件。锁定文件可能来自先前崩溃或被杀死的系统呼叫。另一种可能的解释是,还有另一个 uucico 进程正在尝试拨打远程系统,并且陷入了聊天脚本中,或者由于其他原因而停滞。

要纠正此错误,请使用挂断信号终止所有为该站点打开的 uucico 进程,并删除它们留下的所有锁定文件。

16.6.3. 您可以连接到远程站点,但聊天脚本失败

查看您从远程站点收到的文本。如果文本是乱码,则可能是速度相关的问题。否则,请确认它确实与您的聊天脚本期望的内容一致。请记住,聊天脚本以期望字符串开始。如果您收到登录提示并发送了您的用户名,但从未收到密码提示,请在发送密码之前甚至在字母之间插入一些延迟。您的速度可能对您的调制解调器来说太快了。

16.6.4. 您的调制解调器不拨号

如果您的调制解调器在 uucico 呼出时没有指示 DTR 线已升高,则您可能没有为 uucico 提供正确的设备。如果您的调制解调器识别 DTR,请使用终端程序检查您是否可以写入调制解调器。如果这有效,请在调制解调器聊天的开头使用 \E 打开回显。如果调制解调器在调制解调器聊天期间没有回显您的命令,请检查您的线路速度是否过高或过低。如果您看到回显,请检查您是否已禁用调制解调器响应或将其设置为数字代码。验证聊天脚本本身是否正确。请记住,您必须编写两个反斜杠才能向调制解调器发送一个。

16.6.5. 您的调制解调器尝试拨号但无法拨出

在电话号码中插入延迟,尤其是在您必须拨打特殊序列才能从公司电话网络获得外线的情况下。确保您使用的是正确的拨号类型,因为某些电话网络仅支持一种拨号类型。此外,请仔细检查电话号码以确保其正确。

16.6.6. 登录成功,但握手失败

嗯,在这种情况下可能存在许多问题。日志文件中的输出应该会告诉您很多信息。查看远程站点提供的协议(它发送一个字符串P protlist在握手期间)。为了使握手成功,两端必须至少支持一种通用协议,因此请检查它们是否支持。

如果远程系统发送 RLCK,则表示您的远程系统上已经存在一个陈旧的锁定文件,该文件已在不同的线路连接到远程系统。否则,请让远程系统管理员删除该文件。

如果远程系统发送 RBADSEQ,则表示它为您启用了对话计数检查,但数字不匹配。如果它发送 RLOGIN,则表示您无权以此 ID 登录。

注释

[1]

也就是说,文件名以点开头的文件。此类文件通常不会被 ls 命令显示。