linux 下的 rsync 文件同步
发布时间:2020-05-28 01:43:05 所属栏目:Linux 来源:互联网
导读:rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync是用 “rsync
|
rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync是用 “rsync 算法”提供了客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好。 一、获取rsync源码 http://rsync.samba.org/download.html如:rsync-3.1.2.tar.gz 二、安装rsync > tar -zxf rsync-3.1.2.tar.gz > cd rsync-3.1.2 > ./configure --prefix=/data/rsync > make && make install三、rsync的配置 rsync主要有三个配置文件: 1、rsyncd.conf(主配置文件) 3、rsyncd.secrets(密码文件) 3、rsyncd.motd(rysnc服务器信息)分别创建如下文件 > touch /etc/rsyncd.conf > touch /etc/rsyncd.secrets > chmod 600 /etc/rsyncd.secrets > touch /etc/rsyncd.motd修改上面创建的文件 > vi /etc/rsyncd.conf #PID文件路径 pid file = /data/rsync/rsyncd.pid #锁文件路径 lock file = /data/rsync/rsyncd.lock #服务器日志文件路径 log file = /data/rsync/log/rsyncd.log #端口 port = 873 #IP地址 address = 192.168.1.10 #运行RSYNC守护进程的用户 uid = root #运行RSYNC守护进程的组 gid = root #使用chroot use chroot = yes #最大连接数为5 max connections = 5 #motd文件路径 motd file = /etc/rsyncd.motd #传输文件的日志 transfer logging = yes #日志文件格式 log format = %t %a %m %f %b #指定rsync发送日志消息给syslog时的消息级别。 syslog facility = local3 timeout = 300 #模块是定义服务器哪个目录要被同步 #每个模块都要以[name]形式定义 [backup] #镜像目录,不可缺少 path = /data/backup #允许列文件 list=yes #可以忽略一些无关的IO错误 ignore errors #认证的用户 auth users = test #密码文件路径 secrets file = /etc/rsyncd.secrets #注释 comment = backup data #排除/data/backup下的指定文件 exclude = test1/ test2/ #允许主机 hosts allow = 192.168.1.10 127.0.0.1 #禁止主机 hosts deny = *(*如果自定义了日志文件路径,请手动创建log目录,并给予必要的权限) 修改配置密码文件 > vi /etc/rsyncd.secrets格式为: 用户名:密码 test:123456(*出于安全考虑,我们把rsyncd.secrets权限设为600,注意这里的用户名和密码并不一定是系统的用户和密码,为了安全可以自已设置) 修改服务器欢迎信息 > vi /etc/rsyncd.motd ++++++++++++++++++++++++++++++++++ welcome to use the rsync services! ++++++++++++++++++++++++++++++++++四、rsync基本操作 启动rsync服务 (1)以--daemon方式启动服务 > /data/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf(2)通过xinetd的方式 查看rsync服务是否启动 > ps -ef|grep rsync > netstat -anlp|grep 873(*如果没有正常启动,请查看日志文件) bind() failed: Cannot assign requested address (address-family 2) 2016/04/15 13:37:21 [14946] unable to bind any inbound sockets on port 873 2016/04/15 13:37:21 [14946] rsync error: error in socket IO (code 10) at socket.c(555) [Receiver=3.1.2]如果出现如上信息,则需要把rsyncd.conf中的address改为127.0.0.1。 五、客户端配置与文件同步 客户端rsync的配置与服务器端基本相同,这里就不过多描述了。 > yum -y install rsync我这里就只在本机演示了 > /data/rsync/bin/rsync -avzP test@127.0.0.1::backup /data/backup2上述命令的意思是用test用户登陆到127.0.0.1的rsync服务器上,把backup数据同步到本地的/data/backup2目录下。 -a 参数,相当于-rlptgoD; -r 是递归; -l 是链接文件,意思是拷贝链接文件; -p 表示保持文件原有权限; -t 保持文件原有时间; -g 保持文件原有用户组; -o 保持文件原有属主; -D 相当于块设备文件; -z 传输时压缩; -P 传输进度; -v 传输时的进度等信息,和-P有点关系; --progress 是指显示出详细的进度情况 --delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致 --password-file=/password/path/file 来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。 > /data/rsync/bin/rsync -avzP --delete test@127.0.0.1::backup /data/backup2 > /data/rsync/bin/rsync -avzP --password-file=/data/rsync.pwd test@127.0.0.1::backup /data/backup2/data/rsync.pwd用来存储客户端用test用户登陆服务器时需要的密码 > echo "123456" > /data/rsync.pwd > chmod 600 /data/rsync.pwd六、客户端自动与服务器进行文件同步 通过创建定时任务来完成同步 > crontab -e * * * * * /data/rsync/bin/rsync -avzP --delete --password-file=/data/rsync.pwd test@127.0.0.1::backup /data/backup2表示每分钟执行一次命令 > killall crond > /usr/sbin/crond杀死crond进程,再重新启动 我们通过在/data/backup下创建新的文件,看看是否会同步到backup2目录下。 > cd /data/backup/ > echo "test..." > test.txt > cd /data/backup2/ > ls等待了一分钟后,文件成功同步了。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
