michael1983
作者michael19832019-09-02 11:36
技术总监, 某证券

Linux日常运维-rsync同步工具小总结

字数 2426阅读 5134评论 0赞 7

在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

1. rsync特性

  • 支持拷贝特殊文件如链接文件、设备等
  • 可以有排除指定文件或目录同步的功能,相当于tar的排除功能
  • 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p
  • 可以实现增量同步,即指同步发生变化的数据,因此数据传输效率很高,tar -N
  • 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
  • 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*
  • 支持匿名的或认证(无须系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像

2. Rsync的命令格式可以为以下六种:

  1. rsync [OPTION]... SRC DEST
  2. rsync [OPTION]... SRC [USER@]HOST:DEST
  3. rsync [OPTION]... [USER@]HOST:SRC DEST
  4. rsync [OPTION]... [USER@]HOST::SRC DEST
  5. rsync [OPTION]... SRC [USER@]HOST::DEST
  6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

对应于以上六种命令格式,rsync有六种不同的工作模式:

  • 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup
  • 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync -avz *.c foo:src
  • 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync -avz foo:src/bar /data
  • 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack
  • 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www
  • 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

3. rsync三种模式

  1. 1、Local: rsync [OPTION...] SRC... [DEST]
  2. 2、Access via remote shell:
  3. Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  4. Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
  5. 3、Access via rsync daemon:
  6. Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
  7. rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  8. Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
  9. rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

4. rsync 常用参数选项

5. 服务端配置文件

  1. [root@localhost /]# cat /usr/local/rsync/rsyncd.conf
  2. uid = root
  3. gid = root
  4. use chroot = no
  5. max connections = 5
  6. strict modes = yes
  7. port = 8888
  8. pid file = /var/run/rsyncd.pid
  9. lock file = /var/run/rsync.lock
  10. log file = /var/log/rsyncd.log
  11. [backup]
  12. path = /tmp/test/
  13. comment = This is a test
  14. ignore errors
  15. read only = false
  16. list = no
  17. -#hosts allow = 0.0.0.0
  18. auth users = rsync
  19. secrets file =/etc/rsyncd/rsyncd.secrets
  20. [root@localhost /]# cat /etc/rsyncd/rsyncd.secrets
  21. rsync:fswl1234

6. 从linux备份到win本地

从linux的/rsyncbak目录到windows的D:\rsyncbak

  1. cd C:\Program Files\cwRsync\bin\
  2. rsync --port=8888 -vzrtopg --progress --timeout 600 --delete rsync@172.16.5.215::backup /cygdrive/d/rsyncbak

记得授权

7. 从win本地传输到linux

从windows的D:\rsyncbak传linux的/rsyncbak

  1. cd C:\Program Files\cwRsync\bin\
  2. rsync --port=8888 -vzrtopg --progress --timeout 600 --delete /cygdrive/d/rsyncbak rsync@172.16.5.215::backup

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

7

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广