rsync工具用于将文件和目录从一个位置同步到另一个位置。同步位置可以在本地服务器或远程服务器上。在Centos中使用以下命令安装rsync:[root@localhost~]#yum-yinstallrsync示例1:同步本地计算机中的两个目录要同步本地计算机中的两个目录,使用rsync-zvr命令:[root@localhost~]#rsync-zvr/var/log//root/temp/sendingincrementalfilelistbtmpdnf.librepo.log...sssd/sssd_implicit_files.logsssd/sssd_nss.logtuned/tuned.logsent516,136bytesreceived605bytes1,033,482.00bytes/sectotalsizeis40.speedup451,2参数解释:-z启用压缩-v输出详细信息-r表示递归查看/root/temp目录,发现rsync在同步时不保留时间戳。示例2:使用rsync-a在同步期间保留时间戳rsync命令的-a选项指示存档模式。-a选项递归同步,保留符号链接,保留权限,保留时间戳,保留所有者和组。现在,执行以下命令并检查文件的时间:[root@localhost~]#rsync-azv/var/log//root/temp/sendingincrementalfilelist./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent516,231bytesreceived629bytes1,033,720.00bytes/sectotalsizeis5,451,789speedupis10.55如下所示,rsync在同步时保留时间戳。示例三:将本地文件同步到远程目录rsync允许在本地和远程系统之间同步文件/目录,前提是本地和远程系统都安装了rsync,否则会提示如下信息:[root@localhost~]#rsync-avz/root/temp/root@192.168.43.137:/root/temproot@192.168.43.137'spassword:sendingincrementalfilelistcreateddirectory/root/temp./btmpdnf.librepo.logdnf.logdnf.rpm.log...sssd/sssd_nss.logtuned/tuned/tuned.logsent516,231bytesreceived662bytes206,757.20bytes/sectotalsizeis5,451,789speedupis10.55下面是在远程系统中查看同步的目录:可以看到同步的时候需要输入密码,有时候不需要想从本地传输文件到远程服务器备份服务器时输入密码,两台主机之间可以设置免密码登录。示例4:将远程目录的文件同步到本地将远程系统的文件同步到本地时,如下图,在源中指定远程路径,在目标中指定本地路径:[root@localhost~]#rsync-avzroot@192.168.43.137:/root/temp/root/temproot@192.168.43.137'spassword:receivingincrementalfilelisttemp/temp/btmptemp/dnf.librepo.logtemp/dnf.log...temp/tuned/temp/tuned/tuned。logsent634bytesreceived516,247bytes206,752.40bytes/sectotalsizeis5,451,789speedupis10.55示例5:不要覆盖目标位置上修改过的文件如果文件在目标位置上被修改,我们可能不想用源中的旧文件覆盖该文件地点。这可以通过-u选项来完成。以下示例在本地修改了test.txt文件的内容。不会被远程系统的test.txt文件覆盖:#查看远程系统temp目录下test.txt文件的大小[root@localhost~]#sshroot@192.168.43.137ls-l/根/temproot@192.168。43.137'spassword:total4-rw-r--r--.1rootroot7Apr72021test.txt#查看本机temp目录下test.txt文件的大小。本地机器的test.txt文件被修改,所以比远程系统的test.txt文件大[root@localhost~]#ll/root/temp/total4-rw-r--r--.1rootroot77Apr721:10test.txt#执行rsync-avzu同步[root@localhost~]#rsync-avzuroot@192.168.43.137:/root/temp/root/root@192.168.43.137'spassword:receivingincrementalfilelistsent25bytesreceived76bytes40.40bytes/sectotalsizeis7speedupis0.07下面查看本机/root/temp目录下的test.txt是否被覆盖:发现并没有被覆盖。例6:传输过程中查看rsync的进度使用--progress选项显示rsync执行的详细进度,如下:[root@localhost~]#rsync-avz--progress/root/temp/root@192.168。43.137:/root/temp示例七:删除源目录中不存在的目标目录中的文件如果源中不存在但目标中存在的文件,您可能希望删除目标中的文件rsync同步。这种情况请使用--delete选项:#查看源目录下的文件[root@localhost~]#ll/root/temp/total0-rw-r--r--.1rootroot0Apr721:46name.csv#查看目标目录下的文件[root@localhost~]#sshroot@192.168.43.137ls-l/root/temproot@192.168.43.137'spassword:total944drwxr-xr-x.2rootroot6Apr72021anacondadrwx------.2rootroot6Apr72021audit-rw--------.1rootroot0Apr72021btmp-rw------.1rootroot0Apr72021btmp-20210406drwxr-xr-x.2rootroot6Apr72021chrony-rw------.1rootroot8432Apr72021cron-rw------。1rootroot12200Apr72021cron-20210221-rw------.1rootroot48130Apr72021cron-20210228-rw------.1rootroot3910Apr72021cron-20210308-rw------.1rootroot22455Apr-ron-72021c-.1rootroot383369Apr72021dnf.librepo.log-rw--------.1rootroot476949Apr72021dnf.librepo.log-20210221#rsync使用--delete选项删除目标目录中不包含源目录的文件[root@localhost~]#rsync-avz--delete/root/temproot@192.168.43.137:/rootroot@192.168.43.137'spassword:sendingincrementalfilelistdeletingtemp/chrony/deletingtemp/audit/deletingtemp/anaconda/deletingtemp/dnf.librepo.log-20210221deletingtemp/dnf.librepo.logdeletingtemp/cron-20210406deletingtemp/cron-20210308deletingtemp/cron-20210228deletingtemp/cron-20210221deletingtemp/crondeletingtemp/btmp-20210406deletingtemp/btmptemp/temp/name.csvsent123bytesreceived281bytes161.60bytes/sectotalsizeis0speedupis0.00在查看一下目标目录是否被删除:例8:文件传输时的包含和排除模式rsync允许在同步时提供包含和排除文件或目录的模式[root@localhost~]#rsync-avz--include'P*'--exclude'*'root@192.168.43.137:/var/lib/rpm//root/temp/在上面的示例中,它只包括以'P'开头的文件或目录,并排除所有其他文件或目录。示例9:不要传输大文件您可以使用rsync--max-size选项告诉rsync不要传输大于指定大小的文件。[root@localhost~]#rsync-avz--max-size='1M'root@192.168.43.137:/var/lib/rpm//root/temp/--max-size=1M使得rsync传输仅小于或等于1M文件。单位可以是K、M、G等,也可以使用--min-size=参数指定传输的最小文件大小。本文转载自微信公众号《Linux就该这么学》,可以通过以下二维码关注。转载本文,请联系Linux像这样学习公众号。
