两台linux的文件传输

news/2024/10/30 9:08:53/文章来源:https://www.cnblogs.com/PrepAndPonder/p/18514885

起因

本地拉取docker镜像timeout,然后就准备把阿里云上已经在运行的镜像打包下载下来。

指令1:rsync

rsync 是一个非常强大的工具,用于文件同步和高效的数据传输。它可以用于备份、文件传输以及数据同步等多种场景。
rsync 的主要优点在于其高效性和灵活性,特别是在处理大量文件和远程传输时表现优异。

主要特点

  1. 增量传输rsync 只传输两个文件之间的差异部分,而不是整个文件,从而显著减少了传输时间。
  2. 多平台支持rsync 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows。
  3. 安全传输:通过 SSH 或 SSL/TLS 进行加密传输,保证数据的安全性。
  4. 灵活的选项:支持多种选项来定制传输行为,如保留文件元数据、压缩数据等。
  5. 远程文件同步:可以轻松地在本地计算机和远程服务器之间同步文件。

基本语法

rsync 的基本语法如下:

rsync [options] SOURCE DESTINATION

其中:

  • options:一系列用于控制 rsync 行为的选项。
  • SOURCE:要同步或传输的源文件或目录。
  • DESTINATION:目标文件或目录的位置。

常用选项

基础选项

  • -a(archive):归档模式,保留文件属性(如权限、时间戳、符号链接等)。
  • -v(verbose):详细模式,显示更多输出信息。
  • -z(compress):启用压缩,减少数据传输量。
  • -P(progress):显示进度条,并在传输完成后打印统计数据。
  • -r(recursive):递归复制目录。
  • -u(update):只传输那些源端比目标端新或不存在的文件。

进阶选项

  • -e(program):指定用于远程 shell 的程序,默认为 ssh
  • -H(hard-links):保持硬链接的关联。
  • -L(links):将符号链接作为普通文件传输。
  • -B(block-size):指定块大小,用于提高传输效率。
  • -S(sparse):保留稀疏文件的稀疏性。
  • -I(ignore-errors):忽略错误,继续处理其他文件。
  • -q(quiet):安静模式,减少输出信息。

示例

1. 本地文件同步

将本地目录 source_dir 同步到本地目录 dest_dir

rsync -avz /path/to/source_dir /path/to/dest_dir

2. 从远程服务器拉取文件到本地

将远程服务器上的文件 remote_file 拉取到本地目录 local_dir

rsync -avz user@remote_server:/path/to/remote_file /path/to/local_dir

3. 将本地文件推送到远程服务器

将本地目录 local_dir 推送到远程服务器的 remote_dir

rsync -avz /path/to/local_dir user@remote_server:/path/to/remote_dir

应用场景

数据备份

定期将重要数据备份到另一个存储设备或远程服务器上:

rsync -avz --delete /path/to/data user@backup_server:/path/to/backup_dir

文件同步

实时同步工作目录到远程服务器:

rsync -avz --delete /path/to/workdir user@remote_server:/path/to/remotedir

--delete:该选项表示在同步过程中删除目标端(destination)中不再存在于源端(source)的文件或目录。这有助于保持目标端与源端的一致性。

亲测

将我笔记本上的ollama.tar的包传输到办公室的Pi5上。之前从阿里云服务器上下载下来操作类似,网速也差不多,不过没截图。

指令2 scp

scp(Secure Copy)是一个用于通过 SSH 协议安全地传输文件的工具。它主要用于简单的文件传输任务,特别适合在本地计算机和远程服务器之间传输单个文件或目录。

基本语法

scp 的基本语法如下:

scp [options] source destination

常用选项

  • -r:递归复制目录。
  • -p:保留文件的权限、时间戳等属性。
  • -v:详细模式,显示更多输出信息。
  • -C:启用压缩(默认不压缩)。
  • -P :指定 SSH 端口(默认为 22)。
  • -i <identity_file>:指定私钥文件,用于密钥认证。

常见用法

1. 从本地传输文件到远程服务器

将本地的 file.txt 文件传输到远程服务器的 /home/user/ 目录:

scp -P 22 file.txt user@remote_server:/home/user/

这里的 -P 22 指定使用默认的 SSH 端口 22。

2. 从远程服务器拉取文件到本地

将远程服务器上的 file.txt 文件拉取到本地的当前目录:

scp -P 22 user@remote_server:/home/user/file.txt .

3. 传输目录

将本地的 directory 目录传输到远程服务器的 /home/user/ 目录:

scp -Pr directory user@remote_server:/home/user/

这里的 -Pr 表示递归复制目录。

示例

1. 从本地传输文件到远程服务器

假设你要将本地的 ~/Documents/file.txt 文件传输到远程服务器的 ~/backups 目录:

scp -P 22 ~/Documents/file.txt user@remote_server:~/backups

2. 从远程服务器拉取文件到本地

假设你要将远程服务器上的 ~/data/file.txt 文件拉取到本地的 ~/Downloads 目录:

scp -P 22 user@remote_server:~/data/file.txt ~/Downloads

3. 传输目录

假设你要将本地的 ~/Projects/project 目录传输到远程服务器的 ~/projects 目录:

scp -Pr ~/Projects/project user@remote_server:~/projects

rsync 的区别

虽然 scprsync 都可以用来传输文件,但它们有一些不同之处:

  • 功能复杂度rsync 提供了更丰富的功能,如增量传输、文件同步等。
  • 性能:对于大型文件或目录,rsync 通常更高效,因为它只传输文件的不同部分。
  • 易用性scp 更适合简单的文件传输任务,而 rsync 更适合复杂的同步和备份场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824007.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10 早期计算机如何编程

程序需要加载进入内存, 最早是纺织机利用穿孔纸卡进行编程,穿孔纸卡用在过人口普查,用于记录一条条数字,但机器只有汇总功能,汇总穿孔数目 后来机器功能增多,人需要一个控制面板执行不同操作, 最早是重新布线更换指令,后来有了插线板,控制面板成了可拔插,可以给机器插…

PbootCMS模板首页循环调用所有栏目和对应内容

{pboot:nav} 栏目链接:[nav:link] 栏目名称:[nav:name] {pboot:list scode=[nav:scode] num=4 order=date} 内容链接:[list:link] 内容名称:[list:title] 内容图片:[list:ico] 内容时间:[list:date style=Y-m-d] 内容描述:[list:description] {/pboot:list} {/pboot:nav…

PbootCMS自带的sitemap.xml增加tag标签链接

修改 SitemapModel.php 文件:打开 /apps/home/model/SitemapModel.php 文件 在 78 行后面增加以下代码:public function getSortTags($scode) {$join = array(array(ay_content_sort b, a.scode=b.scode, LEFT),array(ay_model c, b.mcode=c.mcode, LEFT));$scode_arr = arra…

PbootCMS 面包屑导航样式修改和自定义的设置方法

问题:PbootCMS面包屑导航样式修改和自定义的设置方法。 答案:面包屑调用:{pboot:position}自定义参数:separator=*:分隔符,默认为 >>。 separatoricon=*:分割图标,例如 separatoricon=fa fa-angle-double-right。 indextext=*:首页文本,默认为“首页”。 index…

Maximum execution time of 30 secon

这种问题出现在Web开发环境中,特别是PHP等脚本语言中,当某个脚本运行时间超过预设的最大执行时间(例如30秒)时,服务器会终止该脚本的执行以防止资源被长时间占用。 解决方案增加脚本的最大执行时间在PHP中,可以通过修改php.ini文件中的max_execution_time值来增加脚本的最…

工地货梯AI人数识别系统

工地货梯AI人数识别系统采用人体神经网络深度学习算法,工地货梯AI人数识别系统对升降机轿厢内的人数进行智能分析和识别,能够精确识别出升降机内的人数。系统可以实时监测升降机内的人数变化,并根据设定的门限值,当人数超过限制时自动触发图像抓取和报警功能。报警方式可以…

物品堆放限高监测系统

物品堆放限高监测系统采用神经网络深度学习算法,物品堆放限高监测系统能够实时监测物品堆放区域的状态。通过在现场安装监控摄像头,系统对摄像头拍摄的实时视频进行处理分析,识别并判断物品堆放的高度情况。当堆放超过限定的高度范围时,系统将立即触发语音告警功能。物品堆…

煤块堵塞监测识别系统

煤块堵塞监测识别系统利用现场摄像头实时监测煤矿生产线上的皮带煤块堵塞情况。煤块堵塞监测识别系统可以准确地识别出堆积在生产线上的煤块,并计算出其堆积的程度。当煤块堆积的程度超过预设的警戒范围时,系统会立刻通知相关工作人员前往现场进行物料疏通。与传统人工巡检相…

1、K8S环境渗透学习

一、概述Kubernetes,简称k8s,是当前主流的容器调度平台,被称为云原生时代的操作系统。在实际项目也经常发现厂商部署了使用k8s进行管理的云原生架构环境,在目前全面上云的趋势,有必要学习在k8s环境的下的一些攻击手法。 二、k8s用户 Kubernetes 集群中包含两类用户:一类是…

zlibrary镜像地址,zlibrary中文版地址及客户端/app

Z-Library是一个全球性的数字图书馆,它提供了一个庞大的免费资源库,致力于让全球读者能够轻松访问科学图书和学术文献。以下是关于Z-Library的一些主要介绍:藏书量:Z-Library拥有超过1100万册图书和8400多万篇学术文章,覆盖各个学科领域。 实体书籍交流中心:在全球42个国…

10.31 实验7:单例模式

[实验任务一]:学号的单一 仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。 实验要求: 1.画出对应的类图; 2.提交源代码;#include <iostream>using namespace std;class S_num{ private:static S_num sno;static int num; public:static S_num getintan…

十月三十一日

[实验任务一]:向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 #include <iostream> using namespace std; //向量类 class Vector{ private:int *p;int len; public:Vect…