试验环境介绍
在企业的多Linux系统环境中,文件传输是日常运维和开发中的必备技能。Linux中常用的文件传输工具(scp
、rsync
)以及如何通过归档与压缩提升传输效率,我们需要借助网络和一个服务sshd,这个服务通常在Linux系统中是开机启动并且在火墙端接口中放行的。
一、准备工作:配置SSH服务与防火墙
1.查看sshd状态
systemctl status sshd
2. 启用SSHD服务
Linux文件传输通常基于SSH协议,需确保sshd
服务已启动并设置开机自启:
systemctl status sshd # 查看服务状态
systemctl enable --now sshd # 启用并立即启动服务
3. 关闭防火墙(仅限实验环境)
为避免网络干扰,可临时关闭系统防火墙:
systemctl disable --now firewalld
二、文件传输工具详解
1. SCP:安全加密传输
scp (Secure Copy)是一个在 Linux、Unix 以及类 Unix 系统中广泛使用的命令,用于在本地主机和远程主机之间安全地复制文件和目录。它基于 SSH(Secure Shell)协议,因此在传输过程中会对数据进行加密,确保数据的安全性。
常用命令:
-
本地文件 → 远程主机
scp [-rq] /本地/文件路径 用户名@远程IP:/远程/目录
# -r:传输目录;-q:静默模式(不显示进度)
scp lee root@172.25.254.100:/root/Desktop
scp -r timinglee root@172.25.254.100:/root/Desktop ## -r 表示复制目录
scp [-r] 用户名@远程IP:/远程/文件路径 /本地/目录
scp -q lee root@172.25.254.100:/root/Desktop ## -q 传输文件时不显示进度
远程文件 → 本地主机
scp [-r] <远程主机用户@远程主机ip:远程主机目录的绝对路径> <本地文件>
#示例:
scp root@172.25.254.100:/root/Desktop/timingleedir /root/Desktop
2. Rsync:增量同步与高效传输
rsync 是一个强大且高效的文件同步和传输工具,既可以通过 SSH 协议进行安全传输,也能使用 rsync 守护进程( rsync daemon )进行传输,不仅能实现本地和远程主机间的文件传输,还具备强大 的增量传输功能。它会比较源文件和目标文件的差异,仅传输发生变化的部分,从而节省大量的传输时 间和带宽。同时,它也支持本地文件系统内的文件同步。
通过差异比对仅传输变化部分,适合大文件或频繁更新的场景,支持保留文件属性。
核心参数:
参数 | 功能 |
---|---|
-r | 递归复制目录 |
-l | 保留符号链接 |
-p | 保留文件权限 |
-t | 保留时间戳 |
-o | 保留文件所有者 |
-g | 保留文件所属组 |
-D |
复制设备文件 |
使用示例:
# 同步远程目录到本地(保留权限、时间戳等)
rsync -rlptog root@192.168.1.100:/data/backup/ /mnt/backup/
# 仅同步目录内容(不包含目录本身)
rsync -r root@192.168.1.100:/data/files/ /mnt/files/
三、加速传输:归档与压缩技巧
1. 归档(TAR)
归档是指将多个文件或目录收集整合到一个单独的文件中,这个单独的文件就被称为归档文件。归档的主要目的是方便对大量文件进行管理、备份和传输。
tar
是 Linux 系统中最常用的归档格式之一。它可以将多个文件和目录打包成一个.tar 文件,但不进行压缩
tar
c ##创建
f ##指定文件名称
x ##解档
v ##现实过程
t ##查看
r ##向归档文件中添加文件
--get ##解档指定文件
--delete ##删除指定文件
-C ##指定解档路径
压缩
压缩文件可以减少存储空间的占用,提升数据传输的效率
Linux 系统默认支持多种压缩格式,以下是一些常见的默认支持格式:
gz 格式:以.gz为扩展名,是 Linux 系统中广泛使用的压缩格式。它使用gzip算法进行压缩,具有较快的压缩和解压缩速度,适用于大多数日常文件的压缩。例如,许多软件包在发布时会采用.gz压缩格式。
bz2 格式:文件扩展名为.bz2。这种格式采用bzip2算法,压缩率相对较高,但压缩和解压缩速度比gz格式慢一些。在需要更高压缩比的情况下,如对大型数据文件或备份文件进行压缩时,常采用.bz2格式。
xz 格式:以.xz为扩展名,使用xz算法进行压缩。它具有极高的压缩率,能最大程度地减小文件体积,但压缩和解压缩过程相对较慢,通常用于对空间要求极为苛刻的场景,如长期存储的大量数据归档。
zip 格式:虽然zip格式在 Windows 系统中更为常见,但 Linux 系统也默认支持。它可以将多个文件和目录压缩到一个文件中,并且支持跨平台使用,方便在不同操作系统之间传输文件。此外,zip格式还支持加密功能,可以对压缩文件中的内容进
2. 压缩工具对比
格式 | 命令 | 特点 |
---|---|---|
gz | gzip 文件 | 速度快,通用性强 |
bz2 | bzip2 文件 | 压缩率高,速度较慢 |
xz | xz 文件 | 极高压缩率,适合长期存储 |
zip | zip -r 压缩包 目录 | 跨平台支持,支持加密 |
压缩命令的使用
()1)zip
zip -r mnt.tar.zip mnt.tar #zip格式压缩
unzip mnt.tar.zip #zip格式解压缩
(2)gzip
gzip mnt.tar #gzip格式压缩
gunzip mnt.tar.gz #gzip格式解压缩
(3)bz2
bzip2 mnt.tar #bzip2格式压缩
bunzip2 etc.tar.bz2 #bzip2格式解压缩
(4)xz
xz mnt.tar #xz格式压缩
unxz mnt.tar.xz #xz格式解压缩
一步完成归档与压缩:
gzip
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
bzip2
tar jcf etc.tar.bz2 /etc
tar jxf etc.tar.bz2
xz
tar Jcf etc.tar.xz /etc