Linux实现重要文件的异机备份(sftp命令跨服务器进行文件上传下载)

8 篇文章 0 订阅

生产环境中为了安全起见,需要对数据库文件以及Web应用上传的附件已经定期的数据备份,为了防止应用服务器或者数据库服务器崩溃时数据的损坏,无法恢复的情况,重要备份文件一般不仅要在本地进行备份,还考虑文件备份在另外一条主机上(异机备份)。

数据库备份文件异机备份(sftp命令跨服务器进行文件下载[get])

前提是本地服务器可以访问目标主机。

脚本内容

#!/bin/sh
echo bakup copy start......................

date=`date +%Y_%m_%d`   #获取系统当前日期时间

days=3  #设置删除3天之前的备份文件

bakdir=/backup/bak  #备份文件路径,需要提前创建好

backupUser=root

destServer=127.0.0.1 #目标主机IP

for orowner in USER1 USER2 USER3 USER4 USER5    
     
do 

ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件

cd $bakdir #进入备份目录

echo start cp Time: $date........Orowner:$orowner.................

sftp $backupUser@$destServer << EOF
binary
prompt
get /backup/orabackup/$orowner"_"$date.tar.gz 
bye
EOF

find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;  #删除3天前的备份(注意:{} \中间有空格)

echo "....................$orowner backup end............................"

done

exit

应用备份文件异机备份(sftp命令跨服务器进行文件上传[put])

脚本内容

#!/bin/sh
orignalDir=/net/appfile #原文件路径
bakdir=/data/backfile  #备份路径
days=7  #设置删除7天之前的备份文件
date=`date +%Y_%m_%d`   #获取系统当前日期
echo ................ Start to backup $date.........................................................................................
mkdir $bakdir/bak

cd $bakdir/bak

cp -r $orignalDir $bakdir/bak #数据存在appfile目录下,备份到backfile目录下,所以先将数据拷过来

tar -zcvf $bakdir/bak$(date +%Y%m%d).tar.gz $bakdir/bak  #将数据所在文件夹bak打包
echo ..................attachfile to 127.0.0.1(目标主机) start at $(date +"%Y-%m-%d %H:%M:%S")..................................... 
backDir=/backup/attach_bak
packFile=$bakdir/bak$(date +%Y%m%d).tar.gz
destServer=127.0.0.1 #目标主机IP
backupUser=root

sftp -i /root/.ssh/id_rsa -oPort=22 $backupUser@$destServer<<END_SFTP  
cd $backDir  
put $packFile  
exit  
END_SFTP
echo .....................attachfile to 127.0.0.1(目标主机IP) end at $(date +"%Y-%m-%d %H:%M:%S")....................................

rm -rf $bakdir/bak/   #删除临时文件内容

find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;  #删除7天前的备份(注意:{} \中间有空格)

echo ..................end backup $date.............................................................................................

定时任务执行脚本

创建定时任务请参看博客:Linux为用户新增定时任务

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值