linux系统的rsync命令实现本机到远程主机之间目录的复制和同步

一、rsync命令介绍

        在Linux中,`rsync` 是一个强大的命令行工具,用于同步文件和目录。它可以在本地或通过网络在远程系统之间复制文件。

二、远程目录复制的条件

1、系统要已经安装rsync工具

        要使用 `rsync` 复制远程目录,需要确保系统上安装了 `rsync` ,并且具有相应的权限来执行数据传输。远程机器上也需要有 rsync 服务端(通常 rsync 会作为 SSH 的一部分一起安装)。

        在linux命令行直接输入:

                rsync

        出现类似下图的输出,表明 rsync 已经安装成功,可以使用了。

2、正确获得远程的端口号

        Rsync默认使用的 SSH 端口号22,若远程主机的端口号不是22,需要特别指定对应的端口号。命令要指明正确的端口号,如下命令:

rsync -avz -e 'ssh -p 2222' username@remote_host:/path/to/remote/directory/ /path/to/local/directory/

        其中 2222 是远程机器的 SSH 端口。

        实际操作如下:

[root@localhost ~]#
[root@localhost ~]# rsync -avz  root@192.168.1.109:/usr/java/jdk1.8.0_121/include /home/test-rsync1
ssh: connect to host 192.168.1.109 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.2]
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# rsync -avz -e 'ssh -p 2222' root@192.168.1.109:/usr/java/jdk1.8.0_121/include /home/test-rsync1
root@192.168.1.109's password:
receiving incremental file listsent 26 bytes  received 215 bytes  53.56 bytes/sec
total size is 191,947  speedup is 796.46
[root@localhost ~]#
[root@localhost ~]#

        可以看出,主机192.168.1.109的端口22不接受连接,改成2222端口后,可以正常执行命令。

三、命令实例和解释

1、目录复制命令

(1)本地目录复制到远程主机的命令

         以下是一个基本的 `rsync` 命令,用于远程复制目录:

rsync -avz --delete /path/source_directory user@remote_host:/path/to/destination_directory

        这里各选项的含义是:

         `-a`:归档模式,它保持符号链接、权限、时间戳、组和所有权信息。

         `-v`:详细模式,它输出同步过程中的详细信息。

         `-z`:压缩文件数据。

         `--delete`:在同步时删除那些只存在于目的目录中的文件。

        实际应用的时候,  需要将 `/path/source_directory` 替换为我们想要复制的本地目录的路径,将 `user@remote_host` 替换为远程服务器的用户名和主机名,将 `/path/to/destination_directory` 替换为远程服务器上的目标目录路径。

    例如,如果想要将本地的 `/home/user/source_dir` 目录复制到远程服务器 `remote.example.com` 上的 `/home/user/dest_dir` 目录,可以使用以下命令:

rsync -avz --delete /home/user/source_dir user@remote.example.com:/home/user/dest_dir

        在执行 `rsync` 命令之前,需要确保远程服务器上的用户具有足够的权限来接收文件,并且远程目录存在。如果不存在,`rsync` 会提示创建它。

(2)远程主机复制到本地目录的命令

        若想远程主机的某个目录复制到本地的某个目录,可以采用如下命令:

rsync -avz --delete user@remote_host:/path/source_directory /path/to/destination_directory

    实际应用,比如把192.168.1.109的目录 /usr/java/jdk1.8.0_121/include 复制到本地的/home/test-rsyn1目录下,可以采用如下命令:

rsync -avz  root@192.168.1.109:/usr/java/jdk1.8.0_121/include /home/test-rsyn1

        实际操作如下:

[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# rsync -avz root@192.168.1.109:/usr/java/jdk1.8.0_121/include /home/test-rsync1
root@192.168.1.109's password:
receiving incremental file list
created directory /home/test-rsync1
include/
include/classfile_constants.h
include/jawt.h
include/jdwpTransport.h
include/jni.h
include/jvmti.h
include/jvmticmlr.h
include/linux/
include/linux/jawt_md.h
include/linux/jni_md.hsent 192 bytes  received 31,339 bytes  9,008.86 bytes/sec
total size is 191,947  speedup is 6.09
[root@localhost ~]# ll /home/test-rsync1/include/
总用量 192
-rw-r--r-- 1 10 143 20128 12月 13 2016 classfile_constants.h
-rw-r--r-- 1 10 143  8690 12月 13 2016 jawt.h
-rw-r--r-- 1 10 143  6407 12月 13 2016 jdwpTransport.h
-rw-r--r-- 1 10 143 73701 12月 13 2016 jni.h
-rw-r--r-- 1 10 143  3774 12月 13 2016 jvmticmlr.h
-rw-r--r-- 1 10 143 77428 12月 13 2016 jvmti.h
drwxr-xr-x 2 10 143    39 12月 13 2016 linux
[root@localhost ~]#

        从操作结果中可以看出,命令执行成功,远程主机的目录及子目录和文件已经全部复制到本地的目录中了。

2、注意事项

        由于 `rsync` 默认是同步两个目录的内容,如果目的目录中不存在某些源目录中的文件,它们不会被自动创建。使用 `--delete` 选项可以确保在目的目录中,删除那些只存在于源目录中的文件。

        为了安全起见,`rsync` 传输的数据会通过 SSH 进行加密,因此需要有 SSH 密钥对,并且远程服务器上的用户需要配置好 SSH 免密登录。如果没有为 `rsync` 设置 SSH 密钥对,在执行命令时将被提示输入远程服务器的密码。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

知识图谱与知识表示:人工智能的基石

知识图谱与知识表示:人工智能的基石 一、知识图谱:连接数据的桥梁1.1 知识图谱的构成1.2 知识图谱的应用 二、知识表示:AI的推理基础2.1 知识表示的定义2.2 知识表示的形式 三、从符号表示到向量表示3.1 符号表示与向量表示3.2 向量表示的优势…

自动化机器学习——网格搜索法:寻找最佳超参数组合

自动化机器学习——网格搜索法:寻找最佳超参数组合 在机器学习中,选择合适的超参数是模型调优的关键步骤之一。然而,由于超参数的组合空间通常非常庞大,手动调整超参数往往是一项耗时且困难的任务。为了解决这个问题,…

算法入门<二>:分治算法之汉诺塔问题及递归造成的栈溢出

1、分治算法 分治(divide and conquer),全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两个步骤。 分(划分阶段):递归地将原问题分解为两…

PyCharm 2024新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Python环境搭建二、PyCharm下载及安装三、解释器配置及项目测试四、PyCharm汉化五、背景图设置 很高兴你打开了这篇博客,如有疑问&#x…

小浪助手:下载学浪视频的最佳助手

小浪助手我已经打包好了,有需要的自己下载一下 学浪下载器链接:百度网盘 请输入提取码 提取码:1234 --来自百度网盘超级会员V10的分享 1.首先解压好我给大家准备好的压缩包 2.打开小浪助手.exe 3.选择一种登录方式,扫码登录或者手机号…

【办公类-26-02】20240423 UIBOT学分自动评价(自动登录、评价和退出,全自动)

背景需求: 我想用UIBOT自动模拟鼠标,登录每位老师的账户,进入评价区域,自动选择7次“满意”,输入1次“无”,然后提交。 C Dim objExcelWorkBook,arrayRet,iRet,temp,iPID,hWeb,dictRet,XobjExcelWorkBook …

警惕虚假宣传:GPT-4.0免费领取真相揭秘

警惕虚假宣传:GPT-4.0免费领取真相揭秘 在人工智能技术飞速发展的今天,尤其是OpenAI推出的GPT-4.0成为技术前沿的焦点,不少不法分子也开始借机进行欺诈。网络上出现了大量声称“免费领取GPT-4.0”的虚假信息,这不仅误导了公众&am…

latex使用bib引用参考文献时,正文编号顺序乱序解决办法,两分钟搞定!

一、背景 用Latex写文章时,使用bib添加参考文献是一种最为简便的方式。但有的期刊模板,如机器人顶会IROS,会出现正文参考文献序号没按顺序排列的情况,如下图所示。按理说文献[4]应该是文献[2],[2]应该是[3]&#xff0…

计米功能块(CODESYS 完整ST源代码)

1、S7-1200测速计米功能块 S7-1200高速计数器编码器线速度测量(独立测速FB计米FB)_s7-1200高速计数器编程实例-CSDN博客文章浏览阅读646次。线速度工程中有很多采集方法,这里不再细述。博途PLC的高速计数器编程应用大家可以查看下面相关应用文章:计米轮…

代码随想录算法训练营DAY46|C++动态规划Part8|139.单词拆分、多重背包理论基础、背包问题总结篇

文章目录 139.单词拆分思路CPP代码 多重背包理论基础处理输入把所有个数大于1的物品展开成1个开始迭代,计算dp数组代码优化 背包问题总结篇 139.单词拆分 力扣题目链接 文章讲解:139.单词拆分 视频讲解:你的背包如何装满?| LeetCo…

70.网络游戏逆向分析与漏洞攻防-角色与怪物信息的更新-整理与角色数据更新有关的数据

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包…

神经网络中常见的激活函数:理解与实践

神经网络中常见的激活函数:理解与实践 在神经网络中,激活函数是一个非常重要的组成部分,它为神经元引入了非线性特性,使得神经网络可以拟合各种复杂的函数关系。本文将介绍9种常见的激活函数,包括它们的概述、公式以及…

【开源设计】京东慢SQL组件:sql-analysis

京东慢SQL组件:sql-analysis 一、背景二、源码简析三、总结 地址:https://github.com/jd-opensource/sql-analysis 一、背景 开发中,无疑会遇到慢SQL问题,而常见的处理思路都是等上线,然后由监控报警之后再去定位对应…

unity入门——按钮点击了却无法调用函数

查阅了一番都没有解决问题,最后发现问题是由button的Onclick()事件绑定了代码脚本而不是游戏对象导致的。 如果Onclick()事件绑定的是代码脚本,则下拉框里没有函数,但是点击MonoScript后能手动填入函数名(本以为这样就能实现调用…

JavaScript百炼成仙自学笔记——2

一、循环遍历&#xff1a; 方式一 for(var i0;i<10;i){console.log(i); }方式二 var i 0; while(i < 100){console.log(i);i; }细看代码就是 先定义变量i&#xff0c;再执行{}中的代码&#xff0c;最后改循环变量的值 二、遍历 什么事遍历&#xff1f; 什么时候会用…

SpringBoot中阿里OSS简单使用

官方文档:Java跨域设置实现跨域访问_对象存储(OSS)-阿里云帮助中心 1.pom中引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> 如…

图床搭建GitHub+PicGo+jsdelivr(CDN)+Typora(内附加速工具)

目录 安装PicGo GitHub配置与加速器 配置PicGo 使用typroa 安装PicGo PicGo是一个用于上传图片的客户端&#xff0c;支持拖拽上传、剪贴板上传&#xff0c;功能十分方便。 下载地址&#xff1a; https://github.com/Molunerfinn/PicGo/releases 个人网盘自取版本2.4.0…

高颜值管理系统界面,我敢保证你肯定看不够,看了又看。

有不少老铁&#xff0c;还坚持10年前的老思路&#xff0c;总觉得B端管理系统颜值不颜值不重要&#xff0c;关键是好用就行&#xff0c;这就犯了二元论的错误。 谁说高颜值的管理系统&#xff0c;就不好用了呢&#xff1f;高颜值和易用性冲突吗&#xff1f;我看未必吧。看看大厂…

SSL certificate problem: unable to get local issuer certificate【鸿蒙报错已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了【SSL certificate problem: unable to get local issuer certificate】的问…

制作一个 rpm 软件包

首发日期 2024-04-30, 以下为原文内容: 本文以 ibrus (艾刷, 胖喵拼音 ibus 接口模块) 为例, 介绍 rpm 软件包的制作过程. 相关文章: 《发布 AUR 软件包 (ArchLinux)》 https://blog.csdn.net/secext2022/article/details/136803790《多种双拼方案的实现》 https://blog.csdn.…