【linux】rsync命令 - 增量备份静态文件,实现容灾

目录

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

1. 环境

2. sshpass

2.1. 应用范围

2.2. 安装

3. rsync

3.1. 应用范围

3.2. 安装

4. crontab

4.1. 应用范围

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. 查看日志文件,根据日志判断任务是否正常执行
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rsync是一个用于文件同步和备份的实用工具,而rsync--daemon是rsync的守护进程模式。通过启动rsync守护进程,可以在Linux系统上运行rsync服务,允许其他计算机通过网络连接并与之通信。 要在Linux上启动rsync守护进程,可以按照以下步骤进行操作: 1. 确保你已经安装了rsync软件包。如果没有安装,可以使用适合你的Linux发行版的包管理器进行安装。 2. 编辑rsync的配置文件,通常位于/etc/rsyncd.conf。可以使用文本编辑器(如vi或nano)打开该文件。 3. 在配置文件中,你可以定义rsync守护进程的参数和模块。模块是指定要同步的目录或文件集合。你可以为每个模块指定不同的参数和权限。 以下是一个示例配置文件的简单示例: ``` # /etc/rsyncd.conf # 全局配置 uid = nobody gid = nobody use chroot = yes max connections = 10 log file = /var/log/rsyncd.log # 模块定义 [module1] path = /path/to/module1 comment = Module 1 read only = yes list = yes [module2] path = /path/to/module2 comment = Module 2 read only = no list = yes ``` 在这个例子中,我们定义了两个模块(module1和module2),分别指向不同的目录,并设置了相应的权限和注释。 4. 保存并关闭配置文件。 5. 启动rsync守护进程。在终端中执行以下命令: ``` rsync --daemon ``` 如果一切顺利,rsync守护进程将会启动,并开始监听指定的端口(默认为873)。 现在,其他计算机可以使用rsync客户端连接到你的Linux系统上的rsync守护进程,并进行文件同步和备份操作。例如,可以使用以下命令从客户端同步文件到服务器: ``` rsync -avz /path/to/source username@server_ip::module_name ``` 其中,/path/to/source是要同步的源文件或目录,username是具有合适权限的用户名,server_ip是运行rsync守护进程的服务器IP地址,module_name是在配置文件中定义的模块名称。 这是关于在Linux上使用rsync--daemon的简要说明。有关更多详细信息和参数选项,请查阅rsync的官方文档或执行`man rsync`命令

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值