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通信守护进程