Linux文件传输详解

试验环境介绍

        在企业的多Linux系统环境中,文件传输是日常运维和开发中的必备技能。Linux中常用的文件传输工具(scprsync)以及如何通过归档与压缩提升传输效率,我们需要借助网络和一个服务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. 压缩工具对比

格式命令特点
gzgzip 文件速度快,通用性强
bz2bzip2 文件压缩率高,速度较慢
xzxz 文件极高压缩率,适合长期存储
zipzip -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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值