linux下使用rsync实现文件远程同步备份

时间:5年前   阅读:6314

之前介绍了linux下使用rsync实现本机文件增量备份,考滤到数据安全,还是将文件备份到远程主机上更放心,于是就有了这篇文章。

服务端(源文件服务器):

查看系统是否安装rsync:

rpm -qa|grep rsync

删除系统自带rsync:

rpm -e rsync-3.0.6-9.el6.x86_64

安装程序:

wget https://rsync.samba.org/ftp/rsync/src/rsync-3.1.4.tar.gz
tar zvxf rsync-3.1.4.tar.gz
cd rsync-3.1.4
./configure --prefix=/usr
make && make install

非必须步骤,启动时假如报libiconv.so.2错,可执行下列命令建立软链接。

ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

编辑配置主配置文件:
vi /etc/rsyncd.conf

uid = nobody 
gid = nobody 

use chroot = yes
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
port = 873
read only = yes
auth users = backup
secrets file = /etc/rsyncd.pwd

[web1]
path = /home/www1/
hosts allow = 192.168.0.101/24
[web2]
path = /home/www2/
hosts allow = 192.168.0.101/24
[web3]
path = /home/www3/
hosts allow = 192.168.0.101/24

uid和gid 指明了运行身份;
chroot 表示连接后自动切换目录;
read only=yes 禁止客户端向本机的服务器端上传;
host allow和deny 允许和限制连接地址;
auth user 认证用户名;
secrets file = /etc/rsyncd.pwd 表示认证用户名时到这里读取密码。

接下来编辑密码文件:
vi /etc/rsyncd.pwd

backup:123456

设置文件权限600:(权限不对会登陆不上)

chmod 600 /etc/rsyncd.pwd

设置rsync开机启动:

echo "rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local

注意: iptables必须允许 rsync 的 873 端口被连接。

启动rsync:

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

客户端

现在到192.168.0.101的客户端上,命令格式如下:

rsync [-参数] 源地址路径 目标地址路径

例如将100上的 /home/www1 目录下的文件及文件夹同步到本机的 /home/www1 目录中,则创建执行脚本:
vi /root/rsync.sh

rsync -avL --progress --delete --exclude="*.ini" backup@192.168.0.100::web1 /home/www1/ --password-file=/root/rsync.pwd

这个命令会把rsync主服务器(192.168.0.100)[web1]模块设定的备份目录下所有目录及文件同步到本地 /home/www1 目录下。
a ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (注意不包括 -H)
v --verbose 详细模式输出
L --copy-links 像对待常规文件一样处理软链接
--progress 是指显示出详细的进度情况
--delete 是指删除目标目录比源目录多余的文件。即:如果服务器端删除了这一文件,那么客户端也相应把文件删除
--execlude 排除不需要同步的文件后缀名

参数详解:

自动同步:
1、创建客户端的密码文件:
vi /root/rsync.pwd

123456

注意:客户端的密码脚本不带用户名。

设置密码文件权限600:(权限不对会登陆不上)

chmod 600 /root/rsync.pwd

2、将客户端脚本加入计划任务,每5分钟同步一次:

echo "*/5 * * * * root /root/rsync.sh" >> /etc/crontab

现在可以直接运行 /root/rsync.sh 观看效果。
至此 rsync配置完成。

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

上一篇:MySQL数据库多服务器实时同步

下一篇:The ENU localization is not supported by this SQL Server media

网友评论

请先 登录 再评论,若不是会员请先 注册