Page tree
Skip to end of metadata
Go to start of metadata

作用

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

特性如下:

  • 可以镜像保存整个目录树和文件系统。
  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  • 无须特殊权限即可安装。
  • 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  • 支持匿名传输,以方便进行网站镜像。

机制

此方式主要是服务端开放服务,并由客户端主动的获得增量信息,拉取到客户端口

服务器端

安装rsync

yum -y install rsync

添加配置文件

/etc/rsyncd.conf

#global settings 
pid file=/var/rsync/rsync.pid
port=873
lock file=/var/rsync/lock.log
log file=/var/rsync/rsync.log

[mysql] 
path=/home/data_back/  #参与同步的目录 ,注意同步的文件目录权限
use chroot=no  #不使用chroot
max connections=10
read only=yes
write only=no
list=no
uid=nobody  #进行备份的用户 nobody为任何用户
gid=nobody  #进行备份的组   nobody为任何组
auth users=rsyncuser  #认证的用户名
secrets file=/etc/rsync_server.pas
strict modes=yes
hosts allow=27.223.26.74,192.168.1.2/10
hosts deny=*
ignore errors=yes  #可以忽略一些无关的IO错误
timeout=120 #秒
本页内容


参数说明:
[mysql] :模块名,自己定义,可以在下方添加其它模块。须与客户端执行命令中的模块名一致。
path:要备份的服务端文件夹路径。
hosts allow:允许的客户端连接IP。
secrets file:服务端密码文件,内容格式为,用户名:密码。
auth users:有权限的用户名,与密码文件中用户名一致。

创建密码文件

在/etc中创建文件rsync_server.pas,加入用户名与密码,内容格式为:用户名:密码。

vi /etc/rsync_server.pas
rsyncuser:123456

然后设置密码文件权限为600

chmod 600 /etc/rsync_server.pas

注意密码文件只有设置为600权限才可以使用,客户端的密码文件也必须为600。


启动与停止rsync服务

#启动

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf


#停止
ps -ef | grep rsync
kill -9 进程号
rm -rf /var/rsync/rsync.pid


安装rsync客户端

  • 查看是否安装rsync,系统一般默认已安装,安装方法:yum -y install rsync(同服务端)。
  • 在/etc下创建密码文件rsync_client.pas,注意内容只有密码,且与服务端密码文件中的密码相同。
  • 更改密码文件权限为600
  • 执行同步命令
rsync -aqzrtopg --delete rsync://rsyncuser@27.223.26.74/mysql /home/oa_daba_backup --password-file=/etc/rsync_client.pas

同步命令

rsync -参数    用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内   本地存放路径

如:

rsync -avzP    rsyncd@192.168.10.1::mysql  /backup说明:

示例参数说明:

  • -a 参数,相当于-rlptgoD,
  • -r 是递归
  • -l 是链接文件,意思是拷贝链接文件;
  • -p 表示保持文件原有权限;
  • -t 保持文件原有时间;
  • -g 保持文件原有用户组;
  • -o 保持文件原有属主;
  • -D 相当于块设备文件;
  • -z 传输时压缩;
  • -P 传输进度;
  • -v 传输时的进度等信息


rsync参数

  1. -v, --verbose 详细模式输出
  2. -q, --quiet 精简输出模式
  3. -c, --checksum 打开校验开关,强制对文件传输进行校验
  4. -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
  5. -r, --recursive 对子目录以递归模式处理
  6. -R, --relative 使用相对路径信息
  7. -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
  8. --backup-dir 将备份文件(如~filename)存放在在目录下。
  9. -suffix=SUFFIX 定义备份文件前缀
  10. -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
  11. -l, --links 保留软链结
  12. -L, --copy-links 像对待常规文件一样处理软链接
  13. --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链接
  14. --safe-links 忽略指向SRC路径目录树以外的链接
  15. -H, --hard-links 保留硬链接
  16. -p, --perms 保持文件权限
  17. -o, --owner 保持文件属主信息
  18. -g, --group 保持文件属组信息
  19. -D, --devices 保持设备文件信息
  20. -t, --times 保持文件时间信息
  21. -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
  22. -n, --dry-run显示哪些文件将被传输
  23. -W, --whole-file 拷贝文件,不进行增量检测
  24. -x, --one-file-system 不要跨越文件系统边界
  25. -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
  26. -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
  27. --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
  28. -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
  29. --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
  30. --delete 删除那些DST中SRC没有的文件
  31. --delete-excluded 同样删除接收端那些被该选项指定排除的文件
  32. --delete-after 传输结束以后再删除
  33. --ignore-errors 即使出现IO错误也进行删除
  34. --max-delete=NUM 最多删除NUM个文件
  35. --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
  36. --force 强制删除目录,即使不为空
  37. --numeric-ids 不将数字的用户和组ID匹配为用户名和组名
  38. --timeout=TIME IP超时时间,单位为秒
  39. -I, --ignore-times 不跳过那些有同样的时间和长度的文件
  40. --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
  41. --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
  42. -T --temp-dir=DIR 在DIR中创建临时文件
  43. --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
  44. -P 等同于 --partial
  45. --progress 显示备份过程
  46. -z, --compress 对备份的文件在传输时进行压缩处理
  47. --exclude=PATTERN 指定排除不需要传输的文件模式
  48. --include=PATTERN 指定不排除而需要传输的文件模式
  49. --exclude-from=FILE 排除FILE中指定模式的文件
  50. --include-from=FILE 不排除FILE指定模式匹配的文件
  51. --version 打印版本信息
  52. --address 绑定到特定的地址
  53. --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
  54. --port=PORT 指定其他的rsync服务端口
  55. --blocking-io 对远程shell使用阻塞IO
  56. -stats 给出某些文件的传输状态
  57. --progress 在传输时显示传输过程
  58. --log-format=formAT 指定日志文件格式
  59. --password-file=FILE 从FILE中得到密码
  60. --bwlimit=KBPS 限制I/O带宽,KBytes per second
  61. -h, --help 显示帮助信息