前言:sshd
在Linux系统中,文件传输常依赖于SSH协议(Secure Shell),而sshd(OpenSSH Daemon)是负责处理SSH连接的后台服务程序。通过sshd,用户可以在加密的通道中进行安全的远程登录、命令执行和文件传输(如scp、sftp、rsync等)。
相关命令
| 命令 | 说明 | 
| systemctl start sshd | 启动 sshd 服务 | 
| systemctl stop sshd | 停止 sshd 服务 | 
| systemctl restart sshd | 重启 sshd 服务(中断现有连接) | 
| systemctl reload sshd | 重载配置文件(不中断连接) | 
| systemctl status sshd | 查看服务运行状态 | 
一、系统文件传输方法
1、scp
(1)概念
scp(Secure Copy Protocol)是Linux/Unix系统中基于SSH协议的命令行文件传输工具,通过加密通道在本地与远程主机之间安全传输文件或目录。其底层依赖sshd服务运行,适合快速、简单的文件传输任务。
(2)常用选项
| 选项 | 说明 | 
| -r | 递归复制目录(传输文件夹必选) | 
| -C | 启用压缩(适合低速网络) | 
| -v | 显示详细传输过程(调试用) | 
| -i | 指定私钥文件(密钥认证时使用) | 
| -l | 限制带宽(单位:Kbit/s,如 -l 1000 限制1Mbps) | 
| -p | 保留文件修改时间、权限等属性 | 
(3)命令
scp    文件的绝对路径     用户名@IP:要传送到的目录的绝对路径              上传
 scp    用户名@IP:要下载的文件的绝对路径   要下载到本机目录的绝对路径      下载
注:scp在进行文件传输时,传送后若与当前系统保留权限不符,将会自动对权限进行降低。
上传示例:
我们要先多创建一个克隆机出来模拟远程主机,通过ip a 来查看克隆机的IP地址(此处为192.168.188.129)
首先在一号机上创建文件czg

随后输入命令将文件传输到二号机

下载示例

执行命令后,本地桌面会出现从远程主机下载下来的文件czg
2、rsync
(1)概念
rsync(Remote Sync)是一个高效的文件同步工具,专为增量传输设计。它仅传输源与目标之间的差异部分,大幅减少数据传输量,尤其适合同步大文件或远程备份。
对于文件较多文件“scp”命令就显得比较慢了,这时候就需要“rsync”命令,对文件进行同步
(2)特点
传输高效
- 增量传输:仅传变化数据,减少传输量。
 - 压缩传输:降低数据量,省带宽、提速度。
 
多功能
- 多场景适用:本地、远程及跨平台同步均可。
 - 多种同步模式:支持单向、双向等。
 - 特殊文件处理:涵盖符号链接等特殊文件。
 - 属性保留:同步后文件属性不变。
 - 可排除文件:灵活设置不传输内容。
 
安全可靠
- 加密传输:可借助 ssh 等加密方式。
 - 匿名 / 认证传输:满足不同安全需求。
 
使用便利
- 使用灵活:支持命令行及守护进程模式,选项丰富。
 
(3)常用选项
| 选项 | 说明 | 
| -a | 归档模式(保留权限、时间戳、递归同步等,等价于 -rlptgoD) | 
| -v | 显示详细传输过程 | 
| -z | 启用压缩传输(节省带宽) | 
| -P | 显示进度,并支持断点续传(等价于 --partial --progress) | 
| -n | 模拟运行(不实际传输,用于测试) | 
| -h | 以人类可读格式输出(如KB/MB) | 
| --delete | 删除目标中存在但源中不存在的文件(保持严格同步) | 
| --exclude | 排除指定文件或目录(如 --exclude="*.log") | 
| --bwlimit | 限制带宽(单位:KB/s,如 --bwlimit=1000 限制1MB/s) | 
(4)命令
1)基本用法
rsync [选项] 源路径 目标路径
2) 上传本地文件到远程主机
rsync [-rlptogD] <本地文件> <远程主机用户@远程主机ip:远程主机目录的绝对路径>
示例 :
![]()
3)从远程主机下载文件到本地
rsync [-rlptogD] <远程主机用户@远程主机ip:远程主机目录的绝对路径> <本地文件>
3、 scp对比rsync
| scp | rsync | |
| 传输模式 | 基于 SSH,全量传输文件,每次复制整个文件 | 支持增量传输,仅传输源和目标有差异部分 | 
| 传输效率 | 小文件传输速度快、CPU 利用率低;大文件或大量文件传输时效率低 | 大文件和大量文件传输效率高,支持压缩传输 | 
| 功能特性 | 功能单一,主要用于简单文件复制,不支持传输中断恢复、计划任务等 | =支持本地和远程同步,可处理特殊文件,保留文件元数据,支持传输中断恢复、计划任务等 | 
| 适用场景 | 少量小文件或敏感数据的一次性传输,如临时传输机密文件 | 定期数据备份、大文件及大量文件传输、服务器间数据同步等,如网站数据备份、数据库同步 | 
二、压缩与归档(加快文件传输速度)
1、归档(tar)
(1)概念
归档(Archiving)是将多个文件或目录打包成一个单一文件的过程,常用于备份、传输或压缩存储。
(2)常用的参数表
主要参数:
| 参数 | 说明 | 示例 | 
| -c | 创建归档文件 | tar -cvf archive.tar files | 
| -x | 解压归档文件 | tar -xvf archive.tar | 
| -t | 查看归档内容 | tar -tvf archive.tar | 
| -r | 追加文件到归档 | tar -rvf archive.tar new_file | 
| -u | 更新归档(仅添加比归档内更新的文件) | tar -uvf archive.tar updated_file | 
常用功能选项
| 参数 | 说明 | 示例 | 
| -v | 显示详细过程(列出处理的文件) | tar -cvf archive.tar dir/ | 
| -f | 指定归档文件名(必须紧跟文件名) | tar -cvf output.tar dir/ | 
| -C | 切换目录(解压或打包前切换路径) | tar -xvf archive.tar -C /target/dir | 
| --exclude | 排除文件/目录(支持通配符) | tar -cvf archive.tar --exclude="*.log" dir/ | 
| --wildcards | 通配符匹配(配合 -t 查看特定文件) | tar -tvf archive.tar --wildcards "*.txt" | 
| -k | 保留现有文件(解压时不覆盖同名文件) | tar -xvkf archive.tar | 
| -p | 保留文件权限(默认解压时可能丢失) | tar -cvpf archive.tar dir/ | 
(3)命令
| 命令 | 说明 | 
| tar -cvf archive.tar file1 dir1 | 创建归档文件(-c: 创建,-v: 显示过程,-f: 指定文件名) | 
| tar -xvf archive.tar | 解压归档文件(-x: 解压) | 
| tar -tvf archive.tar | 查看归档文件内容 | 
示例:
1)tar cf示例

将etc/和mnt/的文件创建(c)归档并命名(f)为etc.tar
2)tar xf示例

此命令意思为:查看etc.tar文件
etc.tar文件内的文件会显示出来
3)tar rf示例
![]()

2、压缩(gz、bz2、xz、zip)
zip
zip -r 文件名.zip 文件名 压缩成zip格式
unzip 文件名.zip 解压zip格式压缩包
gz
gzip 文件名 压缩成gz格式
gunzip 文件名.gz 解压gz格式压缩包
bz2
bzip2 文件名 压缩成bz2格式
bunzip2 文件名.bz2 解压bz2格式压缩包
xz
xz 文件名 压缩成xz格式
unxz 文件名 解压xz格式压缩包
注:文件压缩中zip格式压缩后文件大小最大,xz最小。相应的xz需要的时间也最长。所以在压缩的时候需要考虑以下压缩大小与时间的需求。
