大多数情况下,rsync使用shell模式与远程主机进行数据同步,但是如果有经常备份数据的应用场景,通过定时任务执行脚本时shell的这种交互模式就不适用了,如果通过ssh免密登录又会有安全风险。那么此时,使用rsync通过守护进程模式运行就再适合不过了。
客户端:10.0.1.30 centos6.8
服务端:10.0.1.61 centos6.8 1◆ rsync在centos6版本中是默认没有rsyncd.conf配置文件的,在rsync7默认有rsyncd.conf配置,但是无伤大雅,没有我们直接在/etc下新建rsyncd.conf文件就可以了,添加如下配置: uid = root #运行rsync命令时使用的用户,也可以根据目录的权限自定义用户就行
gid = root
read only=no #关闭只读,否则会权限报错
use chroot = no
max connections = 1000 #支持的最大连接数
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
hosts allow = 10.0.1.0/24 #客户端主机白名单
timeout = 900 #超时设置
auth users = sacga #rsync服务端与客户端交互的用户,注意与ssh用户无关
secrets file= /etc/rsyncd.password #sacga用户的密码配置,格式为 用户名:密码
[jilin] #模块名称,相当于【jilin】代表了服务端同步的目录
path = /data/regularsacga #需要同步的路径 2◆ 然后创建秘钥文件:echo "sacga:123456" > /etc/rsyncd.password 3◆ 注意一定要授权 chmod 600 /etc/rsyncd.password 4◆ 以守护进程模式启动rsync服务: rsync --daemon 5◆ 如果配置文件不是在/etc/rsyncd.conf , 那么必须 rsync --daemin --config=配置文件路径方式启动 6◆ 客户端新增验证的秘钥文件 echo "123456" >> /etc/rsyncd.password 7◆客户端运行命令: rsync -avz sacga@10.0.1.61::jilin /data/project --password-file=/etc/rsyncd.password 8◆执行结果 (我这里是批量同步了3个模块,配置只添加了jilin,脚本只看rsync命令部分即可$sass表示jinlin,${dic["$sass"]}表示吉林,参照我下一篇文章字典 ,数组的用法)
您还未添加分享代码,请到主题选项中,添加百度分享代码!
您可以选择一种方式赞助本站
支付宝转账赞助
支付宝扫一扫赞助
微信钱包扫描赞助