Linux 文件传输:系统数据交互的动脉

发布于:2025-04-18 ⋅ 阅读:(28) ⋅ 点赞:(0)

前言:sshd

Linux系统中,文件传输常依赖于SSH协议(Secure Shell),而sshdOpenSSH Daemon)是负责处理SSH连接的后台服务程序。通过sshd,用户可以在加密的通道中进行安全的远程登录、命令执行和文件传输(如scpsftprsync等)。

相关命令

命令 说明
systemctl start sshd 启动 sshd 服务
systemctl stop sshd 停止 sshd 服务
systemctl restart sshd 重启 sshd 服务(中断现有连接)
systemctl reload sshd 重载配置文件(不中断连接)
systemctl status sshd 查看服务运行状态

一、系统文件传输方法 

1、scp

(1)概念

scpSecure 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需要的时间也最长。所以在压缩的时候需要考虑以下压缩大小与时间的需求。


网站公告

今日签到

点亮在社区的每一天
去签到