首页 > 系统相关 >两台linux的文件传输

两台linux的文件传输

时间:2024-10-30 08:58:22浏览次数:7  
标签:文件 rsync 文件传输 目录 传输 user linux 远程 两台

起因

本地拉取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 更适合复杂的同步和备份场景。

标签:文件,rsync,文件传输,目录,传输,user,linux,远程,两台
From: https://www.cnblogs.com/PrepAndPonder/p/18514885

相关文章

  • Linux基础常识
    1什么是shellshell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。显示系统当前使用的shellecho${SHELL} #/bin/bash查看系统当前使用的所有shellcat/etc/shells#/bin/sh#/bin/......
  • Linux进程调度器-CPU负载
    1.概述CPU负载(cpuload)指的是某个时间点进程对系统产生的压力。来张图来类比下(参考UnderstandingLinuxCPULoad)CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状态对应不同的cpuload值;单CPU满负荷运行时cpu_load为1,当多个CPU或多核时,相当于大桥......
  • 操作系统(7) (POSIX--Linux线程编程---使用多线程计算平方pthread_t/create/join应用)
    1.代码目的我们希望创建一个程序:启动多个线程,每个线程计算一个数字的平方值。每个线程将计算结果返回给主线程。主线程接收每个线程的返回值,并将结果打印出来。在这个例子中,我们通过传递不同的参数给每个线程,来让每个线程计算不同数字的平方值。2.代码实现以下是代码的......
  • 【linux网络编程】| socket套接字 | 实现UDP协议聊天室
        前言:本节内容将带友友们实现一个UDP协议的聊天室。主要原理是客户端发送数据给服务端。服务端将数据再转发给所有链接服务端的客户端。所以,我们主要就是要实现客户端以及服务端的逻辑代码。那么,接下来开始我们的学习吧。    ps:本节内容建议了解so......
  • 【最新】Kali Linux虚拟机安装与优化全攻略:必做设置让你事半功倍!
    内容预览≧∀≦ゞ【干货】KaliLinux虚拟机安装与优化全攻略简介一、从清华镜像源下载KaliLinux镜像二、配置虚拟机硬件设置三、切换KaliLinux的软件源四、解决KaliLinux与Windows之间的复制粘贴互通问题五、Kali终端优化1.调整终端窗口大小、字体大小及光标样式2.......
  • 最新宝塔安装教程:Linux 稳定版 9.0 宝塔面板+免费SSL证书解析
    在本教程中,我们将详细介绍如何在Linux服务器上安装宝塔面板的最新稳定版9.0,并为您的网站添加免费的SSL证书。此教程适合初学者和有一定经验的用户。通过SSH连接至VPS服务器后,您将能够顺利完成宝塔安装和初步设置,这篇文章将为您提供简单易懂的操作指南,帮助您在几分钟内完成服务......
  • Linux基本指令(一)
    01ls指令语法:ls[选项][目录或文件]功能:罗列当前目录下的指定文件或目录常见选项-a(显示当前目录下的所有文件) -l(显示文件详情) -d(不进入文件里面)示例:ls-a ls-l ls-a-l(命令中的选项可以传递多个)以“.”开头的为隐藏文件,在加上-a后才可见  文件=......
  • 最新宝塔安装教程:Linux 稳定版 9.0 宝塔面板+免费SSL证书解析
    在本教程中,我们将详细介绍如何在Linux服务器上安装宝塔面板的最新稳定版9.0,并为您的网站添加免费的SSL证书。此教程适合初学者和有一定经验的用户。通过SSH连接至VPS服务器后,您将能够顺利完成宝塔安装和初步设置,这篇文章将为您提供简单易懂的操作指南,帮助您在几分钟内完成服务......
  • 【Linux操作系统】Linux配置OpenSSH服务器步骤记录
    1.安装OpenSSH服务器软件包用指令查询,已经全部安装。编辑/etc/ssh/sshd_config文件:#      $OpenBSD:sshd_config,v1.1032018/04/0920:41:22tjExp$#Thisisthesshdserversystem-wideconfigurationfile. See#sshd_config(5)formoreinformat......
  • 如何在Linux上配置软件负载均衡(如HAProxy)
    在Linux环境中,确保应用服务的高可用性和性能是至关重要的。本文将引导你完成以下步骤:1.理解软件负载均衡的重要性;2.选择合适的负载均衡器;3.详细配置HAProxy为例;4.进行性能调优和测试;5.监控和维护。开始负载均衡配置之前,首先需要明确其作用和目标。1.理解软件负载均衡的重要性......