linux uuto命令

Linux uuto命令是UUCP(Unix-to-Unix Copy)工具集的一部分,用于在Unix系统之间传输文件和目录。

提示: uuto命令是传统Unix系统间文件传输工具,在现代网络环境中较少使用,但在某些特定场景(如拨号网络、无IP直接连接的系统间)仍有价值。

语法格式

uuto [选项] 文件... 系统!用户

常用选项

选项 说明
-m 传输完成后发送邮件通知
-p 传输前在本地复制文件到spool目录
-d 创建必要的目录结构
-r 不实际传输,只报告将要做的事情
-g 等级 设置传输优先级(A-Z,A最高)
-s 文件 传输状态报告文件
-n 用户 通知用户(与-m选项一起使用)
--help 显示帮助信息

使用示例

示例1:基本文件传输

# 将文件传输到远程系统的用户目录
uuto document.txt remotehost!username

# 传输多个文件
uuto file1.txt file2.jpg file3.pdf remotehost!username

# 传输整个目录
uuto -r mydirectory/ remotehost!username

示例2:发送邮件通知

# 传输完成后发送邮件通知接收方
uuto -m important.pdf remotehost!alice

# 同时通知多个用户
uuto -m -n alice -n bob report.txt remotehost!charlie

示例3:设置传输优先级

# 设置高优先级传输
uuto -g A urgent_file.txt remotehost!user

# 设置低优先级传输
uuto -g Z large_archive.tar.gz remotehost!user

示例4:预复制和目录创建

# 传输前在本地spool目录复制文件
uuto -p backup.tar remotehost!sysadmin

# 创建必要的目录结构
uuto -d project/ remotehost!developer

示例5:模拟传输(不实际执行)

# 只显示将要传输的内容,不实际传输
uuto -r data/ remotehost!user

# 输出传输计划而不执行
uuto -r -n user largefile.iso remotehost!recipient

示例6:在实际场景中的使用

# 定期备份传输脚本
#!/bin/bash
# 每日备份传输
BACKUP_FILE="/backups/daily-$(date +%Y%m%d).tar.gz"
DEST="backupserver!backupuser"

if [ -f "$BACKUP_FILE" ]; then
    uuto -m -g B "$BACKUP_FILE" "$DEST"
    echo "备份文件已发送: $BACKUP_FILE"
else
    echo "错误: 备份文件不存在"
fi

# 从远程系统接收文件(使用uupick)
# 在接收方系统上运行
uupick

示例7:结合其他UUCP命令

# 检查UUCP连接状态
uustat -a

# 查看传输队列
uustat -q

# 取消待处理的传输
uustat -k 作业号

# 查看系统配置
uuname

UUCP系统配置

配置文件 位置 说明
sys /etc/uucp/sys 远程系统配置
dial /etc/uucp/dial 拨号配置
port /etc/uucp/port 端口配置
dialcode /etc/uucp/dialcode 拨号代码
config /etc/uucp/config 基本配置
Permissions /etc/uucp/Permissions 权限控制
注意:
  • uuto命令依赖于UUCP系统的正确配置
  • 远程系统必须运行uucp守护进程(uucico)
  • 文件传输不是实时的,通过spool队列处理
  • 需要正确配置权限和连接信息
  • 在现代系统中,建议使用scp、rsync或sftp替代
  • UUCP使用拨号或TCP连接,具体取决于配置
  • 传输的文件默认放在接收方的~/receive/用户名/目录下

uuto与uupick配合使用

uuto发送文件后,接收方需要使用uupick命令来接收文件:

# 接收方运行uupick查看和接收文件
uupick

# uupick交互命令:
#   RETURN - 移动到下一个文件
#   d      - 删除当前文件
#   m [dir]- 移动文件到指定目录
#   a [dir]- 移动所有文件
#   p      - 打印文件内容
#   q      - 退出

# 自动接收所有文件到指定目录
uupick -s systemname

安装和配置UUCP

安装UUCP软件包

# Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install uucp

# CentOS/RHEL系统
sudo yum install uucp

# 验证安装
which uuto
which uucp
which uupick

基本配置示例

# 配置远程系统信息
sudo nano /etc/uucp/sys

# 添加以下内容
system remotesystem
time any
phone 555-1234
port serial1
speed 115200
chat login: mylogin ssword: mypassword

# 配置权限
sudo nano /etc/uucp/Permissions
# 添加适当的权限规则

# 启动uucp服务
sudo systemctl start uucp
sudo systemctl enable uucp

UUCP与现代文件传输工具对比

特性 UUCP (uuto/uucp) SCP/SFTP rsync FTP
协议 UUCP协议 SSH协议 SSH或rsync协议 FTP协议
加密 无 强加密 可选加密 无(除非FTPS)
实时性 延迟传输 实时传输 实时传输 实时传输
配置复杂度 复杂 简单 中等 中等
适用场景 拨号网络、离线传输 安全远程传输 高效同步 通用文件传输
现代性 传统 现代 现代 传统但仍广泛使用

故障排除

问题:uuto命令未找到

可能原因: UUCP未安装

解决: 安装UUCP软件包

sudo apt-get install uucp
问题:传输失败

可能原因: 系统未配置或连接问题

解决: 检查系统配置和连接

# 检查系统配置
uuname -l
# 查看传输状态
uustat -a
问题:权限被拒绝

解决: 检查权限配置

# 检查/etc/uucp/Permissions文件
# 确保用户有适当权限
问题:文件未到达

解决: 检查接收方的spool目录

# 在接收方检查
ls -la /var/spool/uucppublic/receive/
# 运行uupick接收文件
uupick

相关命令

  • uucp - UUCP文件复制命令
  • uupick - 接收UUCP传输的文件
  • uustat - 查看UUCP状态和队列
  • uux - 在远程系统执行命令
  • uuname - 列出已知的UUCP系统
  • uucico - UUCP通信守护进程