rsync是unix系统下的数据镜像 备份工具,一般linux系统都 自带:
# rpm -qa|grep rsync rsync-3.0.9-17.el7.x86_64
服务器端:10.100.0.123 同步目录:/data/samba/share
客户端:10.100.0.198 同步到目录:/DataBack/SambaBack
1:服务端配置:
新建配置文件:/etc/rsyncd.conf #并配置以下内容:
# cat /etc/rsyncd.conf uid=nobody //运行rsync守护进程的用户 git=nobody //运行rsync守护进程的组 use chroot = no //不使用chroot max connections = 10 //最大连接数,0为不限制 pid file = /var/run/rsyncde.pid //pid文件存放位置 lock file = /var/run/rsync.lock //锁文件存放位置 log file = /var/log/rsyncd.log //日志记录文件 的存放位置 Timeout = 300 //通过该选项可以覆盖客户指定的ip超时时间,通过该选项可以确保rsync服务器 不会永远等待一个崩溃的客户端,超时单位为秒钟,0表示没有超时定义,这也是默认值, 对于匿名rsync服务器来说,一个理想的数字是600 Log format = %t %a %m %f %b [backup] //这里是认证的模块名,在client端需要指定 #path=/home/source/ path=/data/tmp/samba/share/ //需要做镜像目录 ignore errors //可以忽略一些无关的IO错误 read only = yes //该选项设定是否允许客户上传文件 list = no //不允许列文件 auth users = rsync //认证的用户名 secrets file = /etc/rsyncd.secrets //秘密文件 hosts allow = 10.100.0.198 //允许主机或网段 hosts deny = 0.0.0.0/0 //禁止主机
创建密码文件,并增加用户和密码:
# cat /etc/rsyncd.secrets rsync:rsync
更改密码文件权限:
# chmod 0600 /etc/rsyncd.secrets # ll -h /etc/rsyncd.secrets -rw------- 1 root root 12 May 11 13:27 /etc/rsyncd.secrets
# /usr/bin/rsync --daemon
启动服务默认端口:873
客户端:
客户端就不用启动rsync服务了
创建密码文件,文件名自定义,但内容需要填相标服务授权密码
# cat /etc/rsyncd.secrets rsync #列改文件权限 #chmod 0600 /etc/rsyncd.secrets
在客户端去同步服务端的数据,所以要在服务端运行:
rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@10.100.0.123::backup /DataBack/SambaBack
参数详解:
v:传输时的进度等信息,z:表示压缩,r:是递归,t:保持文件原有时间,o:保持文件原有属主,P:传输进度,g:保持文件原有用户组 --progress :指显示 --delete:指如果服务器端删除了这一文件,那么客户端也想应把文件删除,保持真正的一致 --password-file=/etc/sysncd.secrets:认证密码 rsync:认证用户 backup:认证模块
写脚本并结合计划任务来定时同步数据:
# cat /data1/sh/rsync_samba.sh #!/bin/bash rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@10.100.0.123::backup /DataBack/SambaBack 查看定时任务: 0 2 * * * cd /data1/sh && ./rsync_samba.sh