iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >怎么进行scp用户的rsync迁移
  • 243
分享到

怎么进行scp用户的rsync迁移

2023-06-15 21:06:58 243人浏览 独家记忆
摘要

怎么进行scp用户的rsync迁移,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 ssh 8.0 预发布公告中,OpenSSH 项目表示,他们认为

怎么进行scp用户的rsync迁移,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在 ssh 8.0 预发布公告中,OpenSSH 项目表示,他们认为 scp 协议已经过时,不灵活,而且不容易修复,然后他们继而推荐使用 sftp 或 rsync 来进行文件传输。

然而,很多用户都是从小用着 scp 命令长大的,所以对 rsync 并不熟悉。此外,rsync 可以做的事情也远不止复制文件,这可能会给菜鸟们留下复杂和难以掌握的印象。尤其是,scp 命令的标志大体上可以直接对应到 cp 命令的标志,而 rsync 命令的标志却和它大相径庭。

让我们跳进最常见的场景:复制文件和复制目录。

复制文件

对于复制单个文件而言,scp 和 rsync 命令实际上是等价的。比方说,你需要把 foo.txt 传到你在名为 server 的服务器上的主目录下:

$ scp foo.txt me@server:/home/me/

相应的 rsync 命令只需要输入 rsync 取代 scp

$ rsync foo.txt me@server:/home/me/

复制目录

对于复制目录,就有了很大的分歧,这也解释了为什么 rsync 会被认为比 scp 更复杂。如果你想把 bar 目录复制到 server 服务器上,除了指定 ssh 信息外,相应的 scp 命令和 cp 命令一模一样。

$ scp -r bar/ me@server:/home/me/

对于 rsync,考虑的因素比较多,因为它是一个比较强大的工具。首先,我们来看一下最简单的形式:

$ rsync -r bar/ me@server:/home/me/

看起来很简单吧?对于只包含目录和普通文件的简单情况,这就可以了。然而,rsync 更在意发送与主机系统中一模一样的文件。让我们来创建一个稍微复杂一些,但并不罕见的例子:

# 创建多级目录结构$ mkdir -p bar/baz# 在其根目录下创建文件$ touch bar/foo.txt# 现在创建一个符号链接指回到该文件$ cd bar/baz$ ln -s ../foo.txt link.txt# 返回原位置$ cd -

现在我们有了一个如下的目录树:

bar├── baz│   └── link.txt -> ../foo.txt└── foo.txt 1 directory, 2 files

如果我们尝试上面的命令来复制 bar,我们会注意到非常不同的(并令人惊讶的)结果。首先,我们来试试 scp

$ scp -r bar/ me@server:/home/me/

如果你 ssh 进入你的服务器,看看 bar 的目录树,你会发现它和你的主机系统有一个重要而微妙的区别:

bar├── baz│   └── link.txt└── foo.txt 1 directory, 2 files

请注意,link.txt 不再是一个符号链接,它现在是一个 foo.txt 的完整副本。如果你习惯于使用 cp,这可能会是令人惊讶的行为。如果你尝试使用 cp -r 复制 bar 目录,你会得到一个新的目录,里面的符号链接和 bar 的一样。现在如果我们尝试使用之前的 rsync 命令,我们会得到一个警告:

$ rsync -r bar/ me@server:/home/me/skipping non-regular file "bar/baz/link.txt"

rsync 警告我们它发现了一个非常规文件,并正在跳过它。因为你没有告诉它可以复制符号链接,所以它忽略了它们。rsync 在手册中有一节“符号链接”,解释了所有可能的行为选项。在我们的例子中,我们需要添加 -links 标志:

$ rsync -r --links bar/ me@server:/home/me/

在远程服务器上,我们看到这个符号链接是作为一个符号链接复制过来的。请注意,这与 scp 复制符号链接的方式不同。

bar/├── baz│   └── link.txt -> ../foo.txt└── foo.txt 1 directory, 2 files

为了省去一些打字工作,并利用更多的文件保护选项,在复制目录时可以使用归档标志 -arcHive(简称 -a)。该归档标志将做大多数人所期望的事情,因为它可以实现递归复制、符号链接复制和许多其他选项。

$ rsync -a bar/ me@server:/home/me/

如果你感兴趣的话,rsync 手册页有关于存档标志的深入解释。

注意事项

不过,使用 rsync 有一个注意事项。使用 scp 比使用 rsync 更容易指定一个非标准的 ssh 端口。例如,如果 server 使用 8022 端口的 SSH 连接,那么这些命令就会像这样:

$ scp -P 8022 foo.txt me@server:/home/me/

而在使用 rsync 时,你必须指定要使用的“远程 shell”命令,默认是 ssh。你可以使用 -e 标志来指定。

$ rsync -e 'ssh -p 8022' foo.txt me@server:/home/me/

rsync 会使用你的 ssh 配置;但是,如果你经常连接到这个服务器,你可以在你的 ~/.ssh/config 文件中添加以下代码。这样你就不需要再为 rsync 或 ssh 命令指定端口了!

Host server    Port 8022

另外,如果你连接的每一台服务器都在同一个非标准端口上运行,你还可以配置 RSYNC_RSH 环境变量。

为什么你还是应该切换到 rsync?

现在我们已经介绍了从 scp 切换到 rsync 的日常使用案例和注意事项,让我们花一些时间来探讨一下为什么你可能想要使用 rsync 的优点。很多人在很久以前就已经开始使用 rsync 了,就是因为这些优点。

即时压缩

如果你和服务器之间的网络连接速度较慢或有限,rsync 可以花费更多的 CPU 处理能力来节省网络带宽。它通过在发送数据之前对数据进行即时压缩来实现。压缩可以用 -z 标志来启用。

差量传输

rsync 也只在目标文件与源文件不同的情况下复制文件。这可以在目录中递归地工作。例如,如果你拿我们上面的最后一个 bar 的例子,并多次重新运行那个 rsync 命令,那么在最初的传输之后就不会有任何传输。如果你知道你会重复使用这些命令,例如备份到 U 盘,那么使用 rsync 即使是进行本地复制也是值得的,因为这个功能可以节省处理大型数据集的大量的时间。

同步

顾名思义,rsync 可以做的不仅仅是复制数据。到目前为止,我们只演示了如何使用 rsync 复制文件。如果你想让 rsync 把目标目录变成源目录的样子,你可以在 rsync 中添加删除标志 -delete。这个删除标志使得 rsync 将从源目录中复制不存在于目标目录中的文件,然后它将删除目标目录中不存在于源目录中的文件。结果就是目标目录和源目录完全一样。相比之下,scp 只会在目标目录下添加文件。

结论

对于简单的使用情况,rsync 并不比老牌的 scp 工具复杂多少。唯一显著的区别是在递归复制目录时使用 -a 而不是 -r。然而,正如我们看到的,rsync 的 -a 标志比 scp 的 -r 标志更像 cp 的 -r 标志。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么进行scp用户的rsync迁移

本文链接: https://www.lsjlt.com/news/281611.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么进行scp用户的rsync迁移
    怎么进行scp用户的rsync迁移,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 SSH 8.0 预发布公告中,OpenSSH 项目表示,他们认为 ...
    99+
    2023-06-15
  • 怎么使用dbeaver进行数据迁移
    要使用DBeaver进行数据迁移,你可以按照以下步骤操作: 打开DBeaver并连接到源数据库和目标数据库。 在DBeave...
    99+
    2024-03-14
    dbeaver
  • SQLServer中怎么进行数据迁移
    在SQL Server中进行数据迁移可以通过多种方法实现,以下是一些常用的方法: 使用SQL Server自带的导入导出工具:S...
    99+
    2024-03-11
    SQLServer
  • 如何在Mac之间进行数据迁移,macbook怎么迁移数据
    更换了新的Mac电脑,怎样把旧Mac里面的文件、应用程序和帐号信息等迁移到新Mac上?如何在Mac之间进行数据迁移。 一、mac电脑怎么迁移数据 mac电脑怎么迁移数据?据苹果官方消息得知,Mac里储存的文件资料、系统设置、帐户信息...
    99+
    2023-09-01
    macos windows microsoft
  • SVN仓库怎么进行备份和迁移
    本文小编为大家详细介绍“SVN仓库怎么进行备份和迁移”,内容详细,步骤清晰,细节处理妥当,希望这篇“SVN仓库怎么进行备份和迁移”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。仓库备份svnadmin dump备份...
    99+
    2023-06-27
  • 怎么使用DTS进行自建Oracle间的数据迁移
    本篇内容介绍了“怎么使用DTS进行自建Oracle间的数据迁移”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • 怎么在DM7中进行数据过滤迁移
    这篇文章主要介绍“怎么在DM7中进行数据过滤迁移”,在日常操作中,相信很多人在怎么在DM7中进行数据过滤迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在DM7中进行数...
    99+
    2024-04-02
  • 如何使用 PHP 进行 MySQL 数据迁移?
    php mysql 数据迁移指南:建立到源和目标数据库的连接。从源数据库提取数据。在目标数据库中创建匹配源表的结构。使用逐行插入逐行将数据从源数据库迁移到目标数据库。 如何使用 PHP...
    99+
    2024-05-12
    mysql php
  • 如何将应用程序进行Spring6迁移
    这篇文章主要介绍“如何将应用程序进行Spring6迁移”,在日常操作中,相信很多人在如何将应用程序进行Spring6迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何将应用程序进行Spring6迁移”的疑...
    99+
    2023-07-05
  • 远程CDB中怎么将名为jypdb的PDB进行迁移
    这篇文章主要介绍“远程CDB中怎么将名为jypdb的PDB进行迁移”,在日常操作中,相信很多人在远程CDB中怎么将名为jypdb的PDB进行迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • oracle怎么查看行动迁移
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • mysql使用mysqldump 与 mysqlimport进行数据库迁移
    ...
    99+
    2024-04-02
  • 怎么使用CP / SCP / RSYNC在Linux中排除特定目录
    这篇文章给大家分享的是有关怎么使用CP / SCP / RSYNC在Linux中排除特定目录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在本文中,我们将演示如何排除特定的文件或目录,或者使用用于此目的的三种最常...
    99+
    2023-06-16
  • linux下怎么用SCP命令进行网络传输
    本篇内容主要讲解“linux下怎么用SCP命令进行网络传输”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下怎么用SCP命令进行网络传输”吧!早上看到scp 的内容,因为自己偶尔也会用到...
    99+
    2023-06-16
  • 怎么用冷拷贝表空间的形式进行Oracle部分数据迁移
    这篇文章主要介绍“怎么用冷拷贝表空间的形式进行Oracle部分数据迁移”,在日常操作中,相信很多人在怎么用冷拷贝表空间的形式进行Oracle部分数据迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • linux怎么使用rsync的高级用法进行大型备份
    这篇文章给大家分享的是有关linux怎么使用rsync的高级用法进行大型备份的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基础的 rsync 命令通常足够来管理你的 Linux 备份,但是额外的选项使大型备份集更...
    99+
    2023-06-16
  • ADMT工具进行活动目录迁移的步骤是怎样的
    ADMT工具进行活动目录迁移的步骤是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  1、在目标域上建立双向信任关系。  2、在目标域上关闭SID筛选  源域: ol...
    99+
    2023-06-14
  • 怎么迁移mysql的分区
    本篇内容主要讲解“怎么迁移mysql的分区”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么迁移mysql的分区”吧! 今天发现主从mysql的slave时忘...
    99+
    2024-04-02
  • 怎么用mysqldump做数据迁移
    这篇文章主要介绍“怎么用mysqldump做数据迁移”,在日常操作中,相信很多人在怎么用mysqldump做数据迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用mys...
    99+
    2024-04-02
  • 迁移Linux服务器用户数据(将一个服务器的Linux用户数据迁移到另一个Linux服务器用户的流程)
    文章目录 1、打包源Linux服务器用户的数据2、发送源Linux服务器用户的数据3、查看目的服务器用户接受到的数据 1、打包源Linux服务器用户的数据 先来到根目录,再使用tar...
    99+
    2023-10-23
    服务器 linux 运维
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作