当前位置: 首页 > news >正文

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

前言: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

scprsync
传输模式基于 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需要的时间也最长。所以在压缩的时候需要考虑以下压缩大小与时间的需求。

相关文章:

  • 极狐GitLab 外部流水线验证功能解读
  • SpringAI+DeepSeek大模型应用开发——4 对话机器人
  • 多模态大模型的算力需求预测:从理论FLOPs到实际集群配置(搭建算力成本评估模型的方法论)
  • Linux,redis群集模式,主从复制,读写分离
  • 山东大学软件学院创新项目实训开发日志(15)之中医知识问答历史对话查看bug处理后端信息响应成功但前端未获取到
  • 在Pycharm配置stable diffusion环境(使用conda虚拟环境)
  • Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战
  • 1. 列表解决数列问题1
  • halcon模板匹配(七)adapt_shape_model_high_noise
  • 数据库-day06
  • FPGA阵列
  • AI写程序:用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具:轻松解决文本编码转换难题
  • Vue与React组件化设计对比
  • Rust + WebAssembly 生产部署指南
  • apollo 动态配置
  • Kubernetes》》K8S》》Pod的健康检查
  • 绿幕抠图直播软件-蓝松抠图插件--使用相机直播,灯光需要怎么打?
  • 多路由器通过三层交换机互相通讯(单臂路由+静态路由+默认路由版),通过三层交换机让pc端相互通讯
  • 如何分析服务器日志以追踪黑客攻击行为
  • 阿里云RAM账号免密登录Java最佳实践
  • 央媒评网红质疑胖东来玉石定价暴利:对碰瓷式维权不能姑息
  • 广东省中医院脾胃病科大科主任张北平病逝,年仅52岁
  • 哲学新书联合书单|远离苏格拉底
  • 这个“超强致癌细菌”,宝宝感染率高达40%,预防却很简单
  • 我国7名优秀护理工作者荣获第50届南丁格尔奖
  • 河南洛阳新安县煤渣倾倒耕地:多年难恢复,为何至今未解决?