目前很多时候我们的应用是部署在虚拟机或者容器中,当虚拟机或者容器出现问题的时候,我们备份的一些数据或者文件存在丢失的风险,比如每日定时备份的数据库文件,应用日志等。

       我想到一个简单的办法,写一个shell脚本,每日定时拷贝我们的文件到一台物理机,给我们的运维工作再增加一道保险。当然文件不是实时的,存在一定风险,请酌情处理。

有3台服务器, 一台是备份机器, 2台要备份的机器


举个列子

192.168.1.31 #虚拟机服务器

192.168.1.32 #物理机


安装步骤:

安装scp一般机器都有安装;

yum install openssh-clients

在备份服务器上生成rsa,用于scp免密码登录传输文件;

#生成密钥对

192.168.1.31> ssh-keygen -t rsa

#用于免密登录,如果存在authorized_keys则复制不成功

192.168.1.31> cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

#用于scp远程免密登录 这里需要输入用户密码

192.168.1.31> scp /root/.ssh/authorized_keys root@192.168.1.32:/root/.ssh/

在要备份的服务器上执行, 看是否安装成功;

192.168.1.32>ssh root@192.168.1.31

192.168.1.32> scp /data/* root@192.168.1.31:/home/backup/site32/

/data 是要备份的目录;

site32 site33 用于区分不同的服务器备份文件, 目录要提前生成;

要备份的服务器上要定时执行的脚本: 本地打包并上传到备份服务器

#!/bin/sh
backpath=/home/wwwbackup/
date=`date +%y%m%d`
site=wwwroot
tar -zcvf ${backpath}${site}"-"${date}.tar.gz /${site}
scp ${backpath}${site}"-"${date}.tar.gz root@192.168.1.31:/home/backup/site32/
find ${backpath} -mtime +3 -exec rm {} \;

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐