当前位置:首页 > CN2资讯 > 正文内容

rsync代理服务

1天前CN2资讯


利用 rsync 同步项目代码、数据文件

背景:当前IT环境下,网络安全越来越重要,其中在等级保护条例中,要求提交系统或项目代码、数据的同步和备份的相关配置说明,要求定时备份且定时加密,作为开发人员,个人项目代码和数据文件的安全也需要提高重视。

1、安装rsync

两台服务器安装 yum install -y rsync 或者在官网https://rsync.samba.org/ 下载离线包编译安装

https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz

2、添加配置文件:

rsync默认没有配置文件,需自行新建

mkdir -p /etc/rsync touch rsyncd.conf rsyncd.motd chmod 600

主服务器配置

pid file = /var/run/rsyncd.pid motd file = /etc/rsyncd/rsyncd.motd log file = /var/log/rsync.log log format = %t %a %m %f %b syslog facility = local3 timeout = 60 port = 31873 address = 192.168.100.4 uid = root gid = root use chroot = yes read only = yes hosts allow=192.168.100.5 hosts deny=* max connections = 4 [django_apps] path = /root/mydjango list=yes ignore errors auth users = root secrets file = /etc/rsyncd/ comment = webapps data sync exclude = logs/

参数说明:

这里的端口已经被重新设定为5位数,安全考虑,并且防火墙iptables要放通该端口

read only:只容许客户端对服务器的同步目录读,保证安全

[django_apps] :模块名,自己定义,可以在下方添加多个模块,每个模块对应一个目录。须与客户端执行命令中的模块名一致。

因为客户端命令:rsync://192.168.100.4/django_apps 这里django_apps就是模块名

path:要备份的服务端文件夹路径。
hosts allow:允许的客户端连接IP,多个IP用逗号隔开,也可以写一段IP。
secrets file:服务端密码文件,内容格式为,用户名:密码,uid=root,所以这里用户名设为root,密码不需要设置为服务器登录密码,可以是其他密码。
auth users:有权限的用户名,与密码文件中用户名一致。

exclude:排除不需要同步目录,例如这里 logs/

注意:https://download.samba.org/pub/rsync/rsync.html以及

https://download.samba.org/pub/rsync/rsyncd.conf.html

官方使用指引,非常详细,推荐参考

3、配置账户密码,这里使用root账户,但密码是随机设置,请勿设置服务器登录密码!

vim

root:Jp219881_$Ah

4、修改 rsyncd.motd

它是定义 rysnc 服务器在客户端同步登陆显示的欢迎条,可自行定义,最好说明来自哪里的同步server

files syncon blog server which server IP is

5、在主服务器上启动

后台进程启动:

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

6、在备服务器上,配置简单很多

创建 /etc/rsyncd文件,里面只需要

新建sh文件etc/rsyncd/run_rsync.sh

rsync -ztruvoglp --password-file=/etc/rsync/rsyncd.secrets --delete rsync://192.168.100.4:31873/django_apps /root/mydjango/ # 如有多个目录,可以继续添加 rsync -ztruvoglp --password-file=/etc/rsync/rsyncd.secrets --delete rsync://192.168.100.4:31873/django_blog /root/myblog/

这里rsync://IP/对应服务器rsyncd.conf配置需要同步的“module”,也就是django_apps,注意不是目录路径

/root/mydjango/ 对应在备服务器上创建与主服务器一致的文件目录路径,如果备服务器已经创建了该目录,那么rsync不在创建,而是同步文件和目录

rsync -ztruvoglp 参数说明

-a 以archive模式操作、复制目录、符号连接 -r 递归,同步目录及其子目录所有文件 -l 是链接文件,意思是拷贝链接文件; -p 表示保持文件原有权限; -t 保持文件原有时间; -g 保持文件原有用户组; -o 保持文件原有属主; -D 相当于块设备文件; -z 传输时压缩; -P 传输进度; -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档; -e ssh的参数建立起加密的连接。 -u 只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时 --progress是指显示出详细的进度情况 --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致 --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了

这里为何创建run_rsync.sh,因为rsync客户端侧,没有定时运行功能,因此需要自行写个sh,然后在crontab里设定定时任务,定时向rsync服务器端更新文件

*/1 * * * * /etc/rsyncd/run_rsync.sh 每1分钟从主服务器增量同步一次

也可以为不同同步目录创建不同的sh来控制其同步间隔

例如大文件 */30 * * * * /etc/rsyncd/large_file_rsync.sh 每30分钟从主服务器增量同步一次

注:若所同步的文件夹为小文件且数量多、更改频繁的,同步时间间隔可以设为较大值

若所同步的文件为大文件,其删改频率低,同步时间间隔可以设为较大值

7、主服务器防火墙放通rsync端口

防火墙配置是一个非常重要环节,在很多技术产品部署过程中,很多教程都让你先关闭防火墙以便排除网络、端口连通性故障,但实际生产或者项目正式使用时,防火墙必须打开,而且需要写入精细的acl策略,保证系统安全。

centos7.5

firewall-cmd --zone=public --add-port=31873/tcp --permanent firewall-cmd --reload

redhat6.5 使用iptables配置防火墙

直接在shell命令行加入,通过save操作,将其写入到/etc/sysconfig/iptables,保证永久生效

iptables -A INPUT -p tcp --dport 31873 -s 192.168.100.0/24 -j ACCEPT /etc/rc.d/init.d/iptables save service iptables restart

或者在iptables文件中详细写入相关规则

iptables 的策略配置:

  • 首先拒绝所有包访问主服务器
  • 逐条放通某个端口或者某个IP访问该主服务器
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # 以三条 :blog-server - [0:0] -A INPUT -j blog-server -A FORWARD -j blog-server -A OUTPUT -j blog-server -A blog-server -i lo -j ACCEPT -A blog-server -p icmp --icmp-type any -j ACCEPT -A blog-server -m state --state ESTABLISHED,RELATED -j ACCEPT # 放通rsyncd端口31873,仅192.168.100.0/24可访问 -A blog-server -p tcp --dport 31873 -s 192.168.100.0/24 -j ACCEPT # 放通ssh端口31873,仅192.168.100.0/24可访问 -A blog-server -p tcp --dport 31022 -s 192.168.100.0/24 -j ACCEPT # 服务器禁ping -A blog-server -j REJECT --reject-with icmp-host-prohibited COMMIT


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24573.html

    分享给朋友:

    “rsync代理服务” 的相关文章

    VAiCDN:提升用户访问体验的专业CDN解决方案

    在当今互联网时代,内容交付网络(CDN)成为了确保网站和应用顺畅运行的重要工具。VAiCDN 作为一家专业的 CDN 运营商,旨在为用户提供卓越的网络体验。同时,VAiCDN 的使命是推动全球内容交付的标准,以高效、安全的方式满足不同客户的需求。 从背景来看,VAiCDN成立初衷是为了应对日益复杂的...

    VPSCheap评测:低价VPS服务的最佳选择与性能分析

    VPSCheap的概述 我第一次听说VPSCheap的时候,是在一个热闹的VPS论坛上。这个成立于2010年的主机商,主要提供KVM型VPS服务,其特点是低价格和无限流量。从那以后,我对VPSCheap的关注逐渐加深。它的数据中心位于美国达拉斯,给不少用户带来了良好的使用体验。论坛上的用户在讨论各自...

    如何使用DigitalOcean优惠码获取200美元免费额度

    DigitalOcean是一家备受赞誉的云计算服务提供商,专门致力于为开发者和初创公司提供一流的云基础设施解决方案。通过其简单易用的界面和高效的性能,DigitalOcean帮助用户轻松地部署和扩展应用程序。我在使用DigitalOcean时,深刻感受到了它为开发者量身定制的便捷性,毫无疑问,这使得...

    全面VPN测评:如何选择最适合你的虚拟私人网络服务

    VPN测评是评估虚拟私人网络(VPN)服务质量的一种方法。对我而言,了解VPN测评极为重要,因为它能帮助我做出明智的选择,以确保在使用互联网时的隐私和安全。VPN测评通常涉及多个方面,包括用户评价、性能测试和专业评测。 每个人使用VPN的需求都不尽相同,这就需要从不同的角度来分析VPN服务的优劣。用...

    反向代理的工作原理与应用场景详解

    反向代理概述 反向代理,听起来似乎有点复杂。实际上,这是一个位于客户端和服务器之间的“中间人”,它对客户端是透明的。换句话说,客户端并不知道有这个反向代理的存在。它的主要任务是接收客户端的请求,然后把这些请求转发给后端的服务器,再把服务器的响应返回给客户端。想象一下,反向代理就像一个邮递员,负责将信...

    easyvm:轻松创建和管理虚拟机的虚拟化解决方案

    什么是 easyvm easyvm 是一种轻量级的虚拟化解决方案,旨在帮助用户快速、简单地创建和管理虚拟机。面对日益增长的技术需求和IT成本压力,easyvm 提供了一个灵活且易于使用的平台,适合不同技术水平的用户。它不仅支持多种操作系统的虚拟化,还能够满足不同开发、测试以及生产环境的需求。每个人都...