Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1671991
  • 博文数量: 1279
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 13084
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 16:26
个人简介

Linux学习小标兵,专注Linux资讯分享,技术文章分享

文章分类

全部博文(1279)

文章存档

2023年(236)

2022年(285)

2021年(265)

2020年(248)

2019年(213)

2018年(32)

我的朋友

分类: LINUX

2021-07-22 23:29:21

rsync工具用于将文件和目录从一个位置同步到另一个位置。同步的位置可以在本地服务器或远程服务器上。

在中使用下面安装rsync:

[root@localhost ~]# yum -y install rsync

实例一:本机中的两个目录进行同步

要同步本地计算机中的两个目录,使用

rsync -zvr

[root@localhost ~]# rsync -zvr /var/log/ /root/temp/sending incremental file listbtmpdnf.librepo.log...sssd/sssd_implicit_files.logsssd/sssd_nss.logtuned/tuned.logsent 516,136 bytes received 605 bytes 1,033,482.00 bytes/sectotal size is 5,451,242 speedup is 10.55

参数解释:

  • -z 启用压缩
  • -v 输出详细信息
  • -r 表示递归

查看一下/root/temp目录,发现rsync在同步期间未保留时间戳。

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例二:使用rsync -a在同步期间保留时间戳

rsync命令的

-a

选项表示存档模式。

-a

选项递归同步、保留符号链接、保留权限、保留时间戳、保留所有者和组。

现在,执行以下命令,然后查看文件的时间:

[root@localhost ~]# rsync -azv /var/log/ /root/temp/sending incremental file list./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent 516,231 bytes received 629 bytes 1,033,720.00 bytes/sectotal size is 5,451,789 speedup is 10.55

如下所示,rsync在同步期间保留了时间戳。

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例三:将文件从本地同步到远程目录

rsync允许在本地和远程系统之间同步文件/目录,前提是本地和远程系统都要安装rsync才行,否则会提示如下信息:

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


[root@localhost ~]# rsync -avz /root/temp/ root@192.168.43.137:/root/temproot@192.168.43.137's password: sending incremental file listcreated directory /root/temp./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent 516,231 bytes received 662 bytes 206,757.20 bytes/sectotal size is 5,451,789 speedup is 10.55

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例四:将文件从远程目录同步到本地

要将文件从远程系统同步到本地时,如下所示,在源中指定远程路径,在目标中指定本地路径即可:

[root@localhost ~]# rsync -avz root@192.168.43.137:/root/temp /root/temproot@192.168.43.137's password: receiving incremental file listtemp/temp/btmptemp/dnf.librepo.logtemp/dnf.log...temp/tuned/temp/tuned/tuned.logsent 634 bytes received 516,247 bytes 206,752.40 bytes/sectotal size is 5,451,789 speedup is 10.55

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例五:不要覆盖目标位置上已修改的文件

如果在目标位置修改了文件,我们可能不想用源位置的旧文件覆盖该文件。使用

-u

选项就可以做到这一点。在下面的示例中,在本地将test.txt文件修改了内容。它不会被远程系统的test.txt文件所覆盖:

# 查看一下远程系统temp目录下的test.txt文件大小[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temproot@192.168.43.137's password: total 4-rw-r--r--. 1 root root 7 Apr 7 2021 test.txt# 查看一下本机的temp目录下的test.txt文件大小,本机的test.txt文件已修改,所以比远程系统里面的test.txt文件大[root@localhost ~]# ll /root/temp/total 4-rw-r--r--. 1 root root 77 Apr 7 21:10 test.txt# 执行rsync -avzu同步一下[root@localhost ~]# rsync -avzu root@192.168.43.137:/root/temp /root/root@192.168.43.137's password: receiving incremental file listsent 25 bytes received 76 bytes 40.40 bytes/sectotal size is 7 speedup is 0.07

下面查看一下本机的/root/temp目录里面的test.txt是否被覆盖:

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例六:在传输过程中查看rsync进度

使用

--progress

选项显示rsync执行的详细进度,如下所示:

[root@localhost ~]# rsync -avz --progress /root/temp/ root@192.168.43.137:/root/temp

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例七:在目标目录中删除源目录不存在的文件

如果文件不在源中而是在目标中存在,则可能希望在rsync同步期间删除目标上的文件。在这种情况下,请使用

--delete

选项:

# 查看一下源目录里面的文件[root@localhost ~]# ll /root/temp/total 0-rw-r--r--. 1 root root 0 Apr 7 21:46 name.csv# 查看一下目标目录里面的文件[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temproot@192.168.43.137's password: total 944drwxr-xr-x. 2 root root 6 Apr 7 2021 anacondadrwx------. 2 root root 6 Apr 7 2021 audit-rw-------. 1 root root 0 Apr 7 2021 btmp-rw-------. 1 root root 0 Apr 7 2021 btmp-20210406drwxr-xr-x. 2 root root 6 Apr 7 2021 chrony-rw-------. 1 root root 8432 Apr 7 2021 cron-rw-------. 1 root root 12200 Apr 7 2021 cron-20210221-rw-------. 1 root root 48130 Apr 7 2021 cron-20210228-rw-------. 1 root root 3910 Apr 7 2021 cron-20210308-rw-------. 1 root root 22455 Apr 7 2021 cron-20210406-rw-------. 1 root root 383369 Apr 7 2021 dnf.librepo.log-rw-------. 1 root root 476949 Apr 7 2021 dnf.librepo.log-20210221# rsync使用--delete选项删除目标目录中不包含源目录的文件[root@localhost ~]# rsync -avz --delete /root/temp root@192.168.43.137:/rootroot@192.168.43.137's password: sending incremental file listdeleting temp/chrony/deleting temp/audit/deleting temp/anaconda/deleting temp/dnf.librepo.log-20210221deleting temp/dnf.librepo.logdeleting temp/cron-20210406deleting temp/cron-20210308deleting temp/cron-20210228deleting temp/cron-20210221deleting temp/crondeleting temp/btmp-20210406deleting temp/btmptemp/temp/name.csvsent 123 bytes received 281 bytes 161.60 bytes/sectotal size is 0 speedup is 0.00

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例八:文件传输过程中的include和exclude模式

rsync允许在进行同步时提供要包括和排除文件或目录的模式。

[root@localhost ~]# rsync -avz --include 'P*' --exclude '*' root@192.168.43.137:/var/lib/rpm/ /root/temp/

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例九:不传输大文件

可以使用

rsync --max-size

选项告诉rsync不要传输大于指定大小的文件。

[root@localhost ~]# rsync -avz --max-size='1M' root@192.168.43.137:/var/lib/rpm/ /root/temp/

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


还可以使用

--min-size=

参数,指定传输最小文件的大小。

总结

rsync工具用于将文件和目录从一个位置同步到另一个位置。同步的位置可以在本地服务器或远程服务器上。rsync工具用于将文件和目录从一个位置同步到另一个位置。同步的位置可以在本地服务器或远程服务器上。

在中使用下面安装rsync:

[root@localhost ~]# yum -y install rsync

实例一:本机中的两个目录进行同步

要同步本地计算机中的两个目录,使用

rsync -zvr

[root@localhost ~]# rsync -zvr /var/log/ /root/temp/sending incremental file listbtmpdnf.librepo.log...sssd/sssd_implicit_files.logsssd/sssd_nss.logtuned/tuned.logsent 516,136 bytes received 605 bytes 1,033,482.00 bytes/sectotal size is 5,451,242 speedup is 10.55

参数解释:

  • -z 启用压缩
  • -v 输出详细信息
  • -r 表示递归

查看一下/root/temp目录,发现rsync在同步期间未保留时间戳。

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例二:使用rsync -a在同步期间保留时间戳

rsync命令的

-a

选项表示存档模式。

-a

选项递归同步、保留符号链接、保留权限、保留时间戳、保留所有者和组。

现在,执行以下命令,然后查看文件的时间:

[root@localhost ~]# rsync -azv /var/log/ /root/temp/sending incremental file list./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent 516,231 bytes received 629 bytes 1,033,720.00 bytes/sectotal size is 5,451,789 speedup is 10.55

如下所示,rsync在同步期间保留了时间戳。

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例三:将文件从本地同步到远程目录

rsync允许在本地和远程系统之间同步文件/目录,前提是本地和远程系统都要安装rsync才行,否则会提示如下信息:

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


[root@localhost ~]# rsync -avz /root/temp/ root@192.168.43.137:/root/temproot@192.168.43.137's password: sending incremental file listcreated directory /root/temp./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent 516,231 bytes received 662 bytes 206,757.20 bytes/sectotal size is 5,451,789 speedup is 10.55

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例四:将文件从远程目录同步到本地

要将文件从远程系统同步到本地时,如下所示,在源中指定远程路径,在目标中指定本地路径即可:

[root@localhost ~]# rsync -avz root@192.168.43.137:/root/temp /root/temproot@192.168.43.137's password: receiving incremental file listtemp/temp/btmptemp/dnf.librepo.logtemp/dnf.log...temp/tuned/temp/tuned/tuned.logsent 634 bytes received 516,247 bytes 206,752.40 bytes/sectotal size is 5,451,789 speedup is 10.55

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例五:不要覆盖目标位置上已修改的文件

如果在目标位置修改了文件,我们可能不想用源位置的旧文件覆盖该文件。使用

-u

选项就可以做到这一点。在下面的示例中,在本地将test.txt文件修改了内容。它不会被远程系统的test.txt文件所覆盖:

# 查看一下远程系统temp目录下的test.txt文件大小[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temproot@192.168.43.137's password: total 4-rw-r--r--. 1 root root 7 Apr 7 2021 test.txt# 查看一下本机的temp目录下的test.txt文件大小,本机的test.txt文件已修改,所以比远程系统里面的test.txt文件大[root@localhost ~]# ll /root/temp/total 4-rw-r--r--. 1 root root 77 Apr 7 21:10 test.txt# 执行rsync -avzu同步一下[root@localhost ~]# rsync -avzu root@192.168.43.137:/root/temp /root/root@192.168.43.137's password: receiving incremental file listsent 25 bytes received 76 bytes 40.40 bytes/sectotal size is 7 speedup is 0.07

下面查看一下本机的/root/temp目录里面的test.txt是否被覆盖:

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例六:在传输过程中查看rsync进度

使用

--progress

选项显示rsync执行的详细进度,如下所示:

[root@localhost ~]# rsync -avz --progress /root/temp/ root@192.168.43.137:/root/temp

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例七:在目标目录中删除源目录不存在的文件

如果文件不在源中而是在目标中存在,则可能希望在rsync同步期间删除目标上的文件。在这种情况下,请使用

--delete

选项:

# 查看一下源目录里面的文件[root@localhost ~]# ll /root/temp/total 0-rw-r--r--. 1 root root 0 Apr 7 21:46 name.csv# 查看一下目标目录里面的文件[root@localhost ~]# ssh root@192.168.43.137 ls -l /root/temproot@192.168.43.137's password: total 944drwxr-xr-x. 2 root root 6 Apr 7 2021 anacondadrwx------. 2 root root 6 Apr 7 2021 audit-rw-------. 1 root root 0 Apr 7 2021 btmp-rw-------. 1 root root 0 Apr 7 2021 btmp-20210406drwxr-xr-x. 2 root root 6 Apr 7 2021 chrony-rw-------. 1 root root 8432 Apr 7 2021 cron-rw-------. 1 root root 12200 Apr 7 2021 cron-20210221-rw-------. 1 root root 48130 Apr 7 2021 cron-20210228-rw-------. 1 root root 3910 Apr 7 2021 cron-20210308-rw-------. 1 root root 22455 Apr 7 2021 cron-20210406-rw-------. 1 root root 383369 Apr 7 2021 dnf.librepo.log-rw-------. 1 root root 476949 Apr 7 2021 dnf.librepo.log-20210221# rsync使用--delete选项删除目标目录中不包含源目录的文件[root@localhost ~]# rsync -avz --delete /root/temp root@192.168.43.137:/rootroot@192.168.43.137's password: sending incremental file listdeleting temp/chrony/deleting temp/audit/deleting temp/anaconda/deleting temp/dnf.librepo.log-20210221deleting temp/dnf.librepo.logdeleting temp/cron-20210406deleting temp/cron-20210308deleting temp/cron-20210228deleting temp/cron-20210221deleting temp/crondeleting temp/btmp-20210406deleting temp/btmptemp/temp/name.csvsent 123 bytes received 281 bytes 161.60 bytes/sectotal size is 0 speedup is 0.00

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例八:文件传输过程中的include和exclude模式

rsync允许在进行同步时提供要包括和排除文件或目录的模式。

[root@localhost ~]# rsync -avz --include 'P*' --exclude '*' root@192.168.43.137:/var/lib/rpm/ /root/temp/

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


实例九:不传输大文件

可以使用

rsync --max-size

选项告诉rsync不要传输大于指定大小的文件。

[root@localhost ~]# rsync -avz --max-size='1M' root@192.168.43.137:/var/lib/rpm/ /root/temp/

Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例Linux中rsync备份数据使用实例


--max-size=1M

使rsync仅传输小于或等于1M的文件。单位可以是K,M,G等。

还可以使用

--min-size=

参数,指定传输最小文件的大小。

总结

rsync工具用于将文件和目录从一个位置同步到另一个位置。同步的位置可以在本地服务器或远程服务器上。


阅读(517) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~