Linux下的Rsync简介

news/2024/9/23 1:43:29/

Linux的rsync服务

rsync 是一个用于文件和目录同步的工具,广泛应用于Linux系统。它的主要功能包括本地和远程文件的同步、数据备份和镜像。rsync 在同步过程中只传输差异部分,从而大大提高了效率。

功能

  1. 文件和目录同步:将文件和目录从一个位置同步到另一个位置。
  2. 远程同步:支持通过SSH协议进行远程文件同步。
  3. 增量备份:只传输更改的部分,减少带宽和时间。
  4. 压缩传输:在传输过程中进行压缩,以减少带宽占用。
  5. 权限保留:保持文件的权限、时间戳、符号链接等属性。

常用参数

/dir和/dir/的区别

/dir指的是目录本身和目录下所有文件;
/dir/指的是目录下所有文件,不包括目录本身

-a 参数详解

-a 参数是“归档模式”,等同于以下一组参数的组合:-rlptgoD

  • -r:递归模式,复制目录及其内容。
  • -l:复制符号链接。
  • -p:保留文件权限。
  • -t:保留时间戳。
  • -g:保留组信息。
  • -o:保留所有者信息。
  • -D:保留设备文件和特殊文件,包括--devices--specials

其他常用参数

  • -v:详细模式,显示同步的详细信息。
  • -z:压缩文件数据在传输过程中。
  • -P:显示传输进度,并在传输中断时支持断点续传。
  • --delete:删除目标目录中那些源目录中不存在的文件。
  • --exclude:排除指定的文件或目录。
  • -e:指定远程shell程序,例如ssh。
  • --bwlimit=RATE:限速参数,限制传输速度。RATE 为传输速率,可以带单位(如KM)。

使用举例

本地同步

rsync -av /source/directory/ /destination/directory/

远程同步

rsync -avz -e ssh /source/directory/ user@remotehost:/destination/directory/

排除某些文件或目录

rsync -av --exclude='*.tmp' /source/directory/ /destination/directory/

显示进度和断点续传

rsync -avP /source/directory/ /destination/directory/

限制传输速度

rsync -avz --bwlimit=500K /source/directory/ /destination/directory/

常见错误与处理方式

1. SSH连接失败

错误信息ssh: connect to host remotehost port 22: Connection refused

处理方式

  • 确认远程主机的SSH服务是否启动。
  • 检查网络连接是否正常。
  • 确认防火墙设置是否允许SSH连接。

2. 权限不足

错误信息rsync: failed to set times on "/destination/directory": Operation not permitted (1)

处理方式

  • 使用sudo命令提升权限。
  • 确认有足够的权限访问和修改目标目录。

3. 文件或目录不存在

错误信息rsync: link_stat "/source/directory/" failed: No such file or directory (2)

处理方式

  • 确认源目录路径是否正确。
  • 使用绝对路径以避免路径问题。

4. 部分文件未同步

错误信息rsync: some files/attrs were not transferred (see previous errors)

处理方式

  • 检查详细的错误日志以了解哪些文件未同步以及原因。
  • 使用 -v 参数以获得更多调试信息。

总结

rsync 是一个强大且灵活的文件同步工具,通过合理使用各种参数,可以高效完成各种同步任务。了解常见错误及其处理方法,可以帮助快速解决同步过程中遇到的问题。通过熟练掌握rsync,可以大大提高文件管理和备份的效率。


http://www.ppmy.cn/news/1462182.html

相关文章

苹果MacOS系统使用微软远程桌面连接Windows电脑桌面详细步骤

文章目录 前言1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1.2 局域网远程控制windows 2. 测试Mac公网远程控制windows2.1 在windows电脑上安装cpolar2.2 Mac公网远程windows 3. 配置公网固定TCP地址 前言 日常工作生活中,有时候会涉及到不同设备不同操作系…

鸿蒙HarmonyOS Next应用开发需要学什么语言

鸿蒙HarmonyOS Next应用开发需要学什么语言? 鸿蒙HarmonyOS Next作为华为自主研发的操作系统,其在应用开发方面有着独特的需求和优势。对于想要从事鸿蒙应用开发的开发者来说,掌握合适的编程语言是至关重要的。本文将详细探讨鸿蒙HarmonyOS N…

8.Docker微服务实战

文章目录 1、创建微服务2、通过Dockerfile发布微服务 1、创建微服务 创建空项目并在其中创建一个Module ​ 这里使用start.aliyun.com代替start.spring.io,这样可以使用jdk8。 选择需要的配置或者直接在pom文件中手动添加 <?xml version"1.0" encoding"…

Golang实现递归复制文件夹

代码 package zdpgo_fileimport ("errors""os""path/filepath""strings" )// CopyDir 复制文件夹 // param srcPath 源文件夹 // param desPath 目标文件夹 // return error 错误信息 func CopyDir(srcPath, desPath string) error {…

Dropzone 4 for Mac:一拖即达,文件处理更高效!

在繁忙的工作中&#xff0c;你是否曾因频繁切换应用程序和文件夹而烦恼&#xff1f;Dropzone 4 for Mac&#xff0c;这款强大的文件拖拽操作工具&#xff0c;将彻底改变你的工作方式&#xff01; 只需简单地将文件、文本或图片拖放到Dropzone图标上&#xff0c;即可快速执行各种…

C语言游戏实战(12):植物大战僵尸(坤版)

植物大战僵尸 前言&#xff1a; 本游戏使用C语言和easyx图形库编写&#xff0c;通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧&#xff0c;以及锻炼我们独立的项目开发能力&#xff0c; 在开始编写代码之前&#xff0c;我们需要先了解一下游戏的基本规则…

jsp连接数据库

1.打开命令框进入数据库 打开eclipse创建需要连接的项目 粘贴驱动程序 查看驱动器 使用sql的包 int代表个 conlm代表列名 <%page import"java.sql.ResultSet"%> <%page import"java.sql.Statement"%> <%page import"java.sql.Connect…

java版CRM客户关系管理系统crm 客户关系管理系统-简单高效管理客户

我司的CRM客户关系管理系统是一款功能强大的客户关系管理软件&#xff0c;旨在帮助企业更有效地管理客户关系&#xff0c;提高销售效率和客户满意度。该系统涵盖了多个功能模块&#xff0c;包括待办事项、线索管理、客户管理、联系人管理、客户公海、商机管理、合同管理、回款管…