服务器集群代码部署—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 传输时压缩
前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
速查表是自己整理了一份在工作中常用的一些资料,包含了自己在日常开发中需要常常用到的相关技术。可以给读者进行参考。
Tauri 是一个框架,用于为所有主要桌面平台构建小巧、快速的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架,以构建他们的用户界面。应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API。
Tauri 应用程序的用户界面目前在 macOS 和 Windows 上利用 tao 作为窗口处理库,在 Linux 上通过 Tauri 团队孵化和维护的 WRY 利用 WebKit、Windows 上的 WebView2 和 Linux 上的 WebKitGTK 创建一个统一的系统 webview(和其他好东西,如菜单和任务栏)接口。
最近关注流媒体服务器来做网络直播,本想使用阿里云的流媒体服务器,由于费用的问题还是想能否自己搭建一个流媒体服务器供自己测试使用。果不其然,Nginx居然如此强大,可以用来做流媒体服务器。本文将具体介绍流媒体服务器的搭建过程和使用过程。
vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用该命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整理情况进行统计,无法对某个进程进行深入的分析。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
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问题