本文介绍: 在本地部署过程中,为了使系统相对来说高可用,一般情况下,我们都会做一个负载,但是客户又会考虑成本,所以只有可怜巴巴的两台服务器,要全部服务都做负载,这个就实现不了。所以只能把两台服务器环境部署成一样,然后每天数据库备份数据同步一次到另外一台服务器上。

1.需求

本地部署过程中,为了使系统相对来说高可用,一般情况下,我们都会做一个负载,但是客户又会考虑成本,所以只有可怜巴巴的两台服务器,要全部服务都做负载,这个就实现不了。所以只能把两台服务器环境部署成一样,然后每天数据库备份数据同步一次到另外一台服务器上。

2.同步脚本

两个关键因素最新变量名推送文件脚本

同时这边分为两种方式登陆,一种是使用用户名密码,另外一种是使用密钥登陆

这里本地部署,很多情况下都是使用用户名密码登陆。

这里会使用一个工具可以直接帮助我们输入密码,进行传输文件

centos 7.9 安装sshpass-CSDN博客

3.编写脚本

vi bf.sh
#!/bin/bash
echo '##########################################'
echo '###### 每天凌晨03:00 自动备份传送数据 ######'
echo '##########################################'
# 设置环境变量
DATE=$(date +%Y%m%d)
echo '获取系统日期:'  $DATE
/opt/sshpass-1.05/sshpass -p '12345678' scp  /datadrive/DB/bak/mgcr_$DATE.sql.gz  root@172.22.0.77:/datadrive/DB/bak/zfwbak
echo '备份完成'  

 赋予可执行文件

chmod +x bf.sh

4.加入定时任务中,让其每天执行

crontab -e
00 3 * * * sh /datadrive/script/bf.sh &>/dev/null 2>&1

 如果发生了错误可以日志输到特定的文件,进行查看如下命令

00 3 * * * sh /datadrive/script/bf.sh &>/tmp/bf.log 2>&1

每天凌晨3点执行脚本

>/dev/null 2>&1  的意思:
标准输出重定向到空设备文件,也就是不输出任何信息终端,标准错误输出重定向等同于标准输出,
因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。


如果命令执行比较频繁(如每分钟一次),或者命令输出内容较多,会使这个邮件文件不断追加内容,
文件越来越大。而邮件文件一般存放在根分区,根分区一般相对较小,所以会造成根分区写满而无法
登录服务器。

4.1.异常情况

注意:如果不把输出日志置空,就会调用邮件,这个时候就会报邮件的错误信息

MAIL (mailed 68 bytes of output but got status 0x004b#012

4.2.sshpass报错Host key verification failed

解决方法
由于该远程机器从未连接过,所以就会报这个错误,首次使用,需要手工连接一下。

ssh -p 22 -o StrictHostKeyChecking=no root@192.168.1.10

然后提示输入一下密码即可

原文地址:https://blog.csdn.net/u011442726/article/details/133885511

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25338.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注