首页 > 系统相关 >Linux 工具 | rsync

Linux 工具 | rsync

时间:2023-05-06 18:15:32浏览次数:34  
标签:dir2 rsync 文件 -- auv dir1 Linux 工具

rsync 是非常常用的文件同步工具

既可以同步本地数据,类似于 cp。又可以同步远程数据,类似于 scp

rsync 不会复制全部文件,而是采取增量备份,只复制有改动的文件,速度很快

rsync 算法中判断文件改动的默认规则是,文件大小或文件修改时间


同步本地文件

最基础的用法

rsync -auv /dir1/file1 /dir2/file2

上面的命令可以把 dir1 目录下的 file1 文件,同步到 dir2 目录下,且文件名为 file2

其中用到的三个参数也是最基础的参数

  • -a 表示递归传输文件,并且保持所有属性

  • -u 表示排除目标文件比源文件更新的文件,不进行覆盖

  • -v 表示打印传输过程的信息

目标文件或目录不存在时,会自动创建

运行 rsync 命令的用户需对源目录有读取权限,对目标目录有写入权限


同步多个目录或文件,则分别列出源文件或目录

rsync -auv /dir1/ /dir2/ /dir3

上面的命令把 dir1 目录和 dir2 目录下的内容都拷贝到 dir3 目录下

注意源目录后面的斜线,如果不加,则拷贝后生成 /dir3/dir1 和 /dir3/dir2 结构


要让目标目录成为源目录的镜像副本,则用 --delete 参数

rsync -auv --delete /dir1/ /dir2

通常情况下,会把源目录的所有改动文件都拷贝到目标目录,但是只在目标目录中存在的文件不会被删除

要想目标目录内容和源目录完全一致,要加上 --delete 参数,来删除不要的文件


有时拷贝时需要排除一些文件或目录,要用--exclude 参数

rsync -auv --exclude '/back/*' --delete /dir1/ /dir2

将 dir1 目录下的内容拷贝到 dir2 目录,并且排除掉 dir1 目录下的 back 目录内容

排除多个目录及文件时,可以使用多个 --exclude 参数,或者用大括号扩展,还可以引用文件

rsync -auv --exclude '/back/*' --exclude '*.log' --delete /dir1/ /dir2

或者

rsync -auv --exclude={'/back/*', '*.log'} --delete /dir1/ /dir2

或者

rsync -auv --exclude-from='ignore.txt' --delete /dir1/ /dir2

在 ignore.txt 文件中,列出所有要排除的模式,一行一个


有时可以结合 --include 参数,更方便的排除和指定要拷贝的内容

rsync -auv --exclude '*.log' --include 'nginx-*.log' --delete /dir1/ /dir2

上面的命令表示排除掉除了 nginx 以外的 log 文件

同理,也可以用 --include-from='include.txt' 引入文件的方式


有时需要定期更新文件,且每次都放在同一个目录,用 --inplace 参数

rsync -auv --inplace --delete /dir1/ /dir2

当 dir2 目录已经存在时,就地更新 dir2 目录内容


如果想模拟测试一下执行结果,则用-n参数

rsync -anv /dir1/ /dir2

通过 -v 参数把信息打印到终端,查看模拟结果


如果同步后需要删除源目录,用 --remove-source-files 参数

rsync -auv /dir1/ /dir2 --remove-source-files

把 dir1 目录的内容拷贝到 dir2 目录后,删除 dir1 目录内容

linux 系统没有垃圾箱,删除内容需谨慎!!!!!!!!!!!!!!!!!!



同步远程文件

rsync 中的 r 是 remote,命令本身就是远程同步的意思

默认 ssh 协议,支持从本地同步到远程,或者从远程同步到本地

本地到远程 ↓

rsync -auv /dir1/ owner@host:/dir2

远程到本地 ↓

rsync -auv owner@host:/dir1/ /dir2

当 ssh 使用了非默认值时,用 -e 参数指定

rsync -auv -e 'ssh -p 1022' /dir1/ owner@host:/dir2


rsync 命令还有很多可用参数,可以用 rsync -h 查看全部参数及解释

rsync 远程同步文件时,除了 ssh 协议外,还可以用 rsync 协议,用到后再补充

标签:dir2,rsync,文件,--,auv,dir1,Linux,工具
From: https://www.cnblogs.com/rendd/p/17378187.html

相关文章

  • RPC,远程连接Linux开发
    RPC​ 指远程过程调用eg:​ 两台服务器,A,B,A想要调用B服务器上的应用的函数或方法,但是他两不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据,只要调用成功这就称为RPC调用.主要应用在分布式系统当中与微服务。由于计算能力需要横向扩展,需要在多台机......
  • linux 下安装和使用Elasticsearch8+php的操作
    首先安装Elasticsearch8版本不需要jdk环境,就是JVAV的环境,他本身的压缩文件里就包含了固定的jdk去官网1、下载Elasticsearch的官方地址:https://www.elastic.co/cn/下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch我这里下载的是elasticsearch-8.......
  • 提高效率的自定义表单工具!
    在信息化快速发展的今天,传统的表单制作工具在办公自动化环境中局限性很多,不利于企业提升办公协作效率。自定义表单工具的出现,让数据资源得到归拢和整理,表单制作更为简单和明了,今天,我们就一起来看看自定义表单工具的优势、特点等相关知识吧。1、自定义表单工具的优势在线表单制作......
  • java内存监控工具及命令
    关键字:内存监控工具及命令一篇非常好的内存监控知识,分享给爱学习的亲们.....jinfo:可以输出并修改运行时的java进程的opts。jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat:一个极强的监视VM......
  • Rocky Linux 9 GitLab 部署
    1、环境8核/16G内存/500G硬盘当前gitlab暂不支持RockyLinux9,不过可以使用AlmaLinux8的安装源进行安装2、安装依赖#安装依赖dnfinstall-ycurlpolicycoreutilsopenssh-serverperlpostfix#启动邮件服务systemctlenable--nowpostfix3、安装源配置(......
  • spring cloud 配置 redis、定义redis工具类
    一、引入redis工具依赖在build.gradle文件中的dependencies的对象中引入依赖compile'org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE'二、application.xml配置redisspringredis:database:#Redis数据库索引(默认为0)host:......
  • Linux 系统的目录结构
    Linux系统的目录结构如下:•/(根目录):整个文件系统的根目录。•/bin:存放着最重要的命令二进制文件。•/boot:存放启动Linux时使用的一些核心文件,如内核、引导程序等。•/dev:设备文件目录,存放设备节点文件。•/etc:系统配置文件目录。•/home:用户主目录所在地。......
  • Linux 系统进程守护工具 cesi + superviosr
    一、安装Supervisorpipinstallsupervisor使用echo_supervisord_conf命令生成默认配置文件echo_supervisord_conf>/etc/supervisord.conf配置文件说明位置:etc/supervisord.conf内容:#指定了socketfile的位置[unix_http_server]file=/tmp/supervisor.sock;UNIXsock......
  • 聚能量赢未来,OpenHarmony开发者大会开发工具分论坛圆满落幕
    4月19日,以“开源正当时,共赢新未来”为主题的开放原子开源基金会OpenHarmony开发者大会2023(以下简称“大会”)在北京举行,“开发工具分论坛”于当天下午召开。在本次论坛上,各位演讲嘉宾重点分享了OpenAtomOpenHarmony(以下简称“OpenHarmony”)3.2Release版本的开发工具、开发方法......
  • LINUX系统的快捷键是什么?
    1、终端及标签页快捷键快捷键功能Shift+Ctrl+T新建标签页Shift+Ctrl+W关闭标签页Ctrl+PageUp前一标签页Ctrl+PageDown后一标签页Shift+Ctrl+PageUp标签页左移Shift+Ctrl+PageDown标签页右移Alt+1切换到标签页1Alt+2切换到标签页2Alt+3切......