数据备份工具rsync
搭建rsync服务
1.安装rsync
# yum install -y rsync
2.创建rsync配置文件:
# vim /etc/rsyncd.conf
log file=/var/log/rsync.logpid file=/var/run/rsyncd.pid [test] path=/home/ use chroot=false max connections=10 read only=no list=true uid=root gid=root auth users=test secrets file=/etc/rsyncd.passwd hosts allow=*
log file 指定日志文件;
pid file 指定pid文件,这个文件的作用涉及到服务的启动以及停止等进程管理操作;
[test] 指定模块名,自定义;
path 指定数据存放的路径;
use chroot true|false 默认是true,意思是在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件的话建议设置成false;
max connections 指定最大的连接数,默认是0即没有限制;
read only ture|false 如果为true则不能上传到该模块指定的路径下;
list 指定当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏
uid/gid 指定传输文件时,以哪个用户/组的身份传输;
auth users 指定传输时要使用的用户名;
secrets file 指定密码文件,该参数连同上面的参数如果不指定则不使用密码验证,注意该密码文件的权限一定要是600;
hosts allow 指定被允许连接该模块的主机,可以是IP或者网段,如果是多个,之间用空格隔开;
创建rsync的账户密码文件:
# vim /etc/rsyncd.passwd
test:123456 |
设置权限:
# chmod 600 /etc/rsyncd.passwd
启动:
# rsync --deamon --config=/etc/rsyncd.conf
若想开机启动则把此条命令加入到/etc/rc.d/rc.local文件中;
测试:
登陆另一台机器上运行测试
# sync -avL 192.168.88.128::/home/ /tmp/
从上面看还是需要密码,有两只可以不用输入密码方式;
方式一:指定密码文件
在客户端的机器上创建一个密码文件/etc/pass
# cat /etc/pass
123456 //这里的密码是在服务端rsyncd.passwd里的密码,要保持一致 |
指定权限:
# chmod 600 /etc/pass
测试:
# rsync -avL 192.168.88.128::/test/ /tmp/ --password-file=/etc/pass
/pass receiving incremental file list ./ test.txt sent 76 bytes received 9615 bytes 19382.00 bytes/sec total size is 9458 speedup is 0.98 |
从结果看,现在已经不需要输入密码也可以同步文件了;
方法二:不指定用户密码
修改成/etc/rsyncd.conf文件如下
# cat /etc/rsyncd.conf
log file=/var/log/rsync.logpid file=/var/run/rsyncd.pid [test] path=/home/ use chroot=false max connections=10 read only=no list=true uid=root gid=root #auth users=test #secrets file=/etc/rsyncd.passwd hosts allow=*
把auth users 和secrets file两项注释掉,不指定用户连接;
测试:
# rsync -avL 192.168.88.128::/test /tmp/
receiving incremental file list sent 26 bytes received 70 bytes 64.00 bytes/sec total size is 9458 speedup is 98.52 |
这里需要注意的不需要加用户了,直接服务端的ip即可同步。