重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 148|回复: 0
打印 上一主题 下一主题

[系统管理] Linux将本地 RMAN 备份拷贝至 NFS,并保留 3 天的脚本

[复制链接]
跳转到指定楼层
楼主
发表于 2026-8-2 14:33:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#!/bin/bash
# ==========================================
# 脚本用途: 将本地 RMAN 备份拷贝至 NFS,并保留 3 天
# ==========================================

# 定义目录
LOCAL_BAK_DIR="/u01/rmanbackup/bakset"
REMOTE_NFS_DIR="/rmanbak"
LOG_FILE="/u01/rmanbackup/logs/sync_nfs_$(date +%Y%m%d).log"

echo "========== 备份同步开始: $(date) ==========" >> $LOG_FILE

# 1. 增量拷贝:只把本地今天新生成的备份传过去,忽略 NFS 上已有的文件
# 这样可以避免每天重复拷贝旧文件,节省内网带宽
rsync -av --ignore-existing ${LOCAL_BAK_DIR}/ ${REMOTE_NFS_DIR}/ >> $LOG_FILE 2>&1

if [ $? -eq 0 ]; then
    echo "--> 增量同步完成。" >> $LOG_FILE
else
    echo "--> 增量同步遇到错误,请检查网络或权限!" >> $LOG_FILE
fi

# 2. 远端清理:删除 NFS 挂载点中修改时间在 3 天前(+2 代表 >72 小时)的文件
# 确保只删除文件(-type f),防止误删目录
find ${REMOTE_NFS_DIR} -type f -mtime +2 -exec rm -f {} \; >> $LOG_FILE 2>&1

echo "========== 备份同步与清理结束: $(date) ==========" >> $LOG_FILE
echo "" >> $LOG_FILE

脚本如上。
后台脚本测试完毕后,计划任务如下制定:
crontab -l
# 每天凌晨 02:10 执行本地 RMAN 备份 (原有任务)
10 02 * * * /u01/rmanbackup/rman.sh

# 每天凌晨 05:00 执行 NFS 同步与清理任务 (保留3天)
00 05 * * * /u01/rmanbackup/sync_to_nfs.sh

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-8-12 12:06 , Processed in 0.434307 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表