服务器集群代码部署—rsync
简介最近在对项目进行压测的过程中发现我们代码服务器都是集群部署的,但是既然是集群那么我们发布代码的时候该如何做到同时发布的效果,不可能每个服务器都是git pull下吧!所以这里想到了rsync,文件同步服务器。本文就主要记录如何搭建rsync服务,并且如何做到同步代码。
一、前期准备
服务器A:作为rsync服务端(192.168.71.109)
服务器B:作为同步服务器(192.168.71.111)
2、安装rsync服务
yum -y install rsync
需要在两台服务器上都安装
3、配置rsync服务端(192.168.71.109)
[root@localhost ~]# vim /etc/rsyncd.conf #配置主配置文件,内容如下 uid = root gid = root use chroot = yes max connections = 100 pid file = /var/run/rsyncd.pid exclude = lost+found/ transfer logging = yes timeout = 900 ignore nonreadable = yes dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [www] path = /home/www comment = www data read only = true #一个存在于服务器端的用户,如有多个逗号隔开,并且要求具有对需同步目录下的文件的读和执行权限 auth user=root ##存放用户名和密码的地方 secrets file=/etc/rsyncd.passwd #代表允许所有的地址,安全起见,最好配置,可以配置为*,表示允许所有客户端 hosts allow = 192.168.*.*
[root@localhost ~]# vim /etc/rsyncd.passwd #配置访问用户和密码,内容如下,多个用户需要多行 root:123456 [root@localhost ~]# chmod 600 /etc/rsyncd.passwd #并且需要设置权限为600,必须是这个
启动rsync服务端:
[root@localhost ~]# rsync --daemon --config=/etc/rsyncd.conf [root@localhost ~]# netstat -ntlp|grep rsy tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 29666/rsync tcp6 0 0 :::873 :::* LISTEN 29666/rsync
从上面可以看出,默认端口诶873,如果需要修改,请在配置文件中指定port配置即可
4、配置客户端(192.168.71.111)
[root@localhost ~]# vim /etc/rsyncd.password #只需要配置密码即可 123456 [root@localhost ~]# chmod 600 /etc/rsyncd.password #权限需要设置对
5、同步文件
同步文件需要在客户端服务器上执行如下命令:
[root@localhost www]# rsync -avz --delete root@192.168.71.109::www /home/www --password-file=/etc/rsyncd.password
–delete:删除与目标目录不一致的文件
::www:服务端配置的www对应
/home/www:本地服务器需要同步的目录
6、排除不必要的目录和文件
# 首先在/etc下建一个目录rsync.d
[root@localhost ~]# mkdir /etc/rsync.d
# 在/etc/rsync.d下建一个www项目的排除文件目录
[root@localhost rsync.d]# vim www.exclude.list #内容如下,但是必须是相对路径,不能是绝对路径
runtime
.git
tmp
# 指定排除文件同步
[root@localhost rsync.d]# rsync -avz --delete root@192.168.71.109::www /home/www --password-file=/etc/rsyncd.password --exclude-from=/etc/rsync.d/www.exclude.list
7、定时同步
crontab 定时执行,根据自己需要去处理
rsync常用选项
• -a 包含-rtplgoD
• -r 同步目录时要加上,类似cp时的-r选项
• -v 同步时显示一些信息,让我们知道同步的过程
• -l 保留软连接
• -L 加上该选项后,同步软链接时会把源文件给同步
• -p 保持文件的权限属性
• -o 保持文件的属主 //如果对方没有就显示数字
• -g 保持文件的属组
• -D 保持设备文件信息
• -t 保持文件的时间属性
• --delete 删除DEST中SRC没有的文件
• --exclude 过滤指定文件,如–exclude “logs”
• -P 显示同步过程,比如速率,比-v更加详细
• -u (update)加上该选项后,如果DEST中的文件比SRC新,则不同步。
• -z 传输时压缩
无向图(Undirected Graph)
MD5算法一般用于检查文件完整性,尤其常用于检测在(网络)文件传输、拷贝、磁盘错误或其他无恶意涉入的情况下文件的正确性。MD5全称报文摘要算法(Message-DigestAlgorithm 5)[RFC 1321],该算法对任意长度的信息进行逐位计算,产生一个二进制长度128位(十六进制长度32位)的校验和(或称“指纹”,“报文摘要”),不同的文件内容生成相同的报文摘要的概率是极其小的。
平时在工作中会用到很多技术和工具,有时候确实会遗忘,所以这里将这些收藏该文中,便于以后进行查找。也希望查看到该文章的朋友对你们有一定的帮助,后期还会加入更多的信息进来。
Editor.md 是一个可嵌入的开源 Markdown 在线编辑器组件,你可以很方便用在浏览器、NW.js(Node-webkit)等地方,基于CodeMirror、jQuery 和 Marked 构建。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。