运维人员如何基于 CentOS 实现两台应用服务器程序同步的步骤,超详细

基于 CentOS 实现两台应用服务器程序同步的步骤

在运维基于 CentOS 系统的应用服务器时,确保两台服务器之间程序的同步至关重要。这里我们将使用 rsync 工具来实现高效的程序同步,以下是详细的操作步骤:

一、环境准备

服务器环境

源服务器:操作系统为 CentOS 7,IP 地址为 192.168.1.100。请确保该服务器已正确配置网络,能够正常访问外部网络,并且防火墙设置允许与目标服务器通信。如果服务器启用了防火墙,可通过以下命令开放必要端口(假设使用默认 SSH 端口 22):

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --reload

目标服务器:操作系统为 CentOS 7,IP 地址为 192.168.1.101。同样,要保证目标服务器网络正常、防火墙设置正确,且具有与源服务器通信的权限。

安装 rsync

在源服务器和目标服务器上都执行以下命令安装 rsync:

yum install -y rsync

该命令会自动从 CentOS 的官方软件源下载并安装 rsync 及其依赖包。安装完成后,可通过rsync --version命令检查安装是否成功。如果安装成功,会显示 rsync 的版本信息,例如:rsync version 3.1.2 protocol version 31。若安装过程中出现错误,可能是网络问题导致无法连接到软件源,可检查网络连接或尝试更换软件源地址。

二、配置 SSH 免密登录(可选但推荐)

为了实现自动化同步,建议配置源服务器到目标服务器的 SSH 免密登录。

在源服务器上生成 SSH 密钥对:

ssh-keygen -t rsa

执行此命令后,系统会提示你输入保存密钥的位置,直接回车将使用默认路径~/.ssh/id_rsa。接着会提示你输入密码短语(passphrase),可以留空不输入(不设置密码短语在自动化场景中更方便,但安全性会稍低,若有更高安全需求可设置复杂密码短语)。生成的密钥对位于~/.ssh/目录下,其中id_rsa是私钥,id_rsa.pub是公钥。

2. 将源服务器的公钥复制到目标服务器:

ssh-copy-id -i \~/.ssh/id\_rsa.pub username@192.168.1.101

这里username是目标服务器上的用户名。执行该命令后,系统会提示你输入目标服务器用户密码。输入正确密码后,公钥将被复制到目标服务器的~/.ssh/authorized_keys文件中。如果~/.ssh/目录在目标服务器上不存在,系统会自动创建。若复制公钥过程中出现权限问题,可能是目标服务器~/.ssh/目录权限设置不正确,应确保该目录权限为 700,authorized_keys文件权限为 600。可通过以下命令在目标服务器上调整权限:

chmod 700 \~/.ssh/

chmod 600 \~/.ssh/authorized\_keys

验证免密登录:

在源服务器上执行ssh username@``192.168.1.101,如果无需输入密码即可登录到目标服务器,则说明免密登录配置成功。登录后,你可以看到目标服务器的命令行提示符,表示已成功登录。若无法免密登录,可检查公钥是否正确复制到目标服务器、目标服务器的 SSH 配置文件/etc/ssh/sshd_configPubkeyAuthentication是否设置为yes(默认是yes,若被修改可能导致免密登录失败),修改后需重启 SSH 服务使配置生效:

systemctl restart sshd

三、使用 rsync 进行程序同步

简单同步命令

假设源服务器上程序文件位于/var/www/myapp目录,要同步到目标服务器的/var/www/目录下,在源服务器上执行以下命令:

rsync -avz /var/www/myapp/ username@192.168.1.101:/var/www/

参数说明:

-a:归档模式,保持文件的权限、时间戳、所有者等属性,相当于-rlptgoD选项的组合,确保同步后的文件与源文件在属性上一致。

-v:详细输出,显示同步过程中的信息,例如正在传输的文件名、传输进度等,方便查看同步状态。

-z:压缩传输数据,在网络传输过程中对数据进行压缩,减少网络带宽的占用,提高传输效率。

执行该命令时,如果出现权限不足的错误,可能是目标服务器/var/www/目录的权限设置不允许源服务器用户写入。此时,需要在目标服务器上调整/var/www/目录的权限,例如将其权限设置为 777(不推荐在生产环境中对重要目录设置这么宽松的权限,可根据实际需求设置合适的用户组和权限):

chmod -R 777 /var/www/

定时同步(使用 crontab)

如果需要定期同步程序文件,可以使用 crontab 设置定时任务。在源服务器上编辑 crontab 文件:

crontab -e

该命令会打开默认的文本编辑器(通常是 vi 或 nano),用于编辑当前用户的 crontab 任务列表。添加以下内容,例如每小时同步一次:

0 \* \* \* \* rsync -avz /var/www/myapp/ username@192.168.1.101:/var/www/

这里0 * * * *表示在每小时的第 0 分钟执行任务。保存并退出编辑器后,crontab 将按照设定的时间间隔自动执行 rsync 同步任务。如果在保存 crontab 文件时遇到问题,可能是编辑器使用不熟练。若使用 vi 编辑器,按Esc键,输入:wq并回车可保存并退出;若使用 nano 编辑器,按Ctrl+X,再按Y,最后按回车即可保存并退出。

通过以上步骤,我们可以利用 rsync 工具在 CentOS 系统的两台应用服务器之间实现程序的高效同步,无论是一次性同步还是定时同步都能满足需求。,赞先收藏。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值