使用rsync增量备份ECS服务器静态文件,实现容灾

 

目录

静态文件容灾_定时增量同步

1. 环境

2. sshpass

2.1. 应用范围

2.2. 安装

3. rsync

3.1. 应用范围

3.2. 安装

4. crontab

4.1. 应用范围

扫描二维码关注公众号,回复: 12431417 查看本文章

4.2. 安装

4.3. 定时任务表达式

4.4. 相关命令

5. 同步录音文件脚本

5.1. 命令详解

6. 停止同步脚本

7. 创建定时任务

8. 运维方案

运维


静态文件容灾_定时增量同步

1. 环境

服务器

IP地址

用户名

密码

端口

文件路径

目标服务器ECS

ECS(公)

ECS (私)

my

MYcomm

7022

/data/rec/

本地服务器

 

root

chinazxt@123

22

/data/rec/

 

2. sshpass

https://www.cnblogs.com/kaishirenshi/p/7921308.html

2.1. 应用范围

可以在命令行直接使用密码来进行远程连接和远程拉取文件。

2.2. 安装

本地服务器安装

# vim /etc/ssh/ssh_config  

# 新增或修改如果配置
StrictHostKeyChecking no

 

# vim /etc/ssh/sshd_config 

# 新增或修改如果配置
GSSAPIAuthentication no
UseDNS no
# service sshd restart

sshpass 命令的安装:

# yum -y install sshpass

3. rsync

3.1. 应用范围

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

3.2. 安装

目标服务器和本地服务器都装

# yum -y install rsync 

启动rsync服务

# systemctl start rsyncd.service
# systemctl enable rsyncd.service

#检查是否已经成功启动

# netstat -lnp|grep 873

4. crontab

4.1. 应用范围

用于设置周期性被执行的指令

4.2. 安装

linux应该都有crontab,没有的话可以安装一下

安装依赖

# yum install  vixie-cron

安装crontab服务

# yum install  crontabs

安装完以后开启crontab服务

# service crond start

查看crontab服务状态

# service crond status 

加入开机自动启动:

# chkconfig –level 35 crond on

也可以用设置开机自动启动crond服务:

# chkconfig crond on

查看crontab服务是否已设置为开机启动

# ntsysv

 

4.3. 定时任务表达式

https://www.howtoing.com/crontab-in-linux-with-20-examples-of-cron-schedule/

4.4. 相关命令

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

/sbin/service crond status //服务状态

5. 同步录音文件脚本

本地服务器:

创建备份的文件夹/data/rec/

创建脚本/data/shell/taskBackupMp3.sh,编写内容:

# vim taskBackupMp3.sh
#!/bin/bash

DIR=/data
LOGDIR=logs
LOGNAME=taskBackupMp3.log

# 打印日志到/data/logs/taskBackupMp3.log
echo `date '+%Y-%m-%d'`"-----------------" >> $DIR/$LOGDIR/$LOGNAME | sudo sh;

# 记录开始时间
echo `date '+%Y-%m-%d %H:%M:%S'`" 备份音频文件开始!" >> $DIR/$LOGDIR/$LOGNAME | sudo sh;

# 备份任务
sshpass -p password rsync -avz --compress --recursive --bwlimit=3000  '-e ssh -p 7022' user@ECS外网ip:/data/rec/ /data/rec/

# 记录结束时间
echo `date '+%Y-%m-%d %H:%M:%S'`" 备份音频文件完成!" >> $DIR/$LOGDIR/$LOGNAME | sudo sh;

exit 0

 

 

给脚本加权限

# chmod 777 /data/shell/taskBackupMp3.sh

5.1. 命令详解

sshpass -p password rsync -avz --compress --recursive --bwlimit=3000  '-e ssh -p 7022' user@***:/data/rec/ /data/rec/

 

命令

解释

-p password

目标服务器密码,特殊字符需要转译

rsync -avz

增量同步

--compress

在传输文件时进行压缩处理

--recursive

对子目录以递归模式处理

--bwlimit=3000

限制带宽,3000*8=24m

'-e ssh -p 7022'

指定端口号7022

user@ECS外网ip:/data/rec/ /data/rec/

用户名@ip:目标路径 本地路径

 

6. 停止同步脚本

本地服务器:

创建脚本/data/shell/ k-taskBackupMp3.sh,编写内容:

# vim k-taskBackupMp3.sh 
#!/bin/bash

processname="rsync"
# 查rsync进程
for i in `ps -ef |grep rsync |grep -v grep |awk {'print $2'}`
do
# 循环杀掉所有进程
kill -9 $i
echo "Kill $i successed."
done

 

给脚本加权限

# chmod 777 /data/shell/ k-taskBackupMp3.sh

7. 创建定时任务

输入命令

# crontab -e

编写需要执行的文件,文件设权限

#晚上8:30执行备份任务
30 20 * * * /bin/sh /data/shell/taskBackupMp3.sh

#早晨6:00杀rsync进程
0 6 * * * /bin/sh /data/shell/k-taskBackupMp3.sh

 

重启服务

/sbin/service crond restart

8. 运维方案

本地服务器

脚本存放位置

/data/shell/

录音文件位置

/data/rec/

rds数据存活位置

/data/rdsBackup/

同步录音文件脚本

/data/shell/taskBackupMp3.sh

停止同步录音文件脚本

/data/shell/k-taskBackupMp3.sh

日志文件:

同步录音文件日志:/data/logs/taskBackupMp3.log

 

定时任务:

#每天20:30执行录音文件备份任务
30 20 * * * /bin/sh /data/shell/taskBackupMp3.sh

#每天6:00杀rsync进程
0 6 * * * /bin/sh /data/shell/k-taskBackupMp3.sh

 

运维

  1. 每周一查看本地服务器磁盘空间是否充足,达到80%时,建议增加磁盘,或将备份文件迁到新的挂载点
  2. 定时查看cpu,保证free充足,rsync同步会消耗大量内存,如free占满,清理buff/cache
  3. 查看日志文件,根据日志判断任务是否正常执行

猜你喜欢

转载自blog.csdn.net/weixin_42170236/article/details/102949082