【rsync】同步目录并通过7z压缩

本文介绍了一个使用bash编写的自动化脚本,用于管理数据库备份,包括记录日志、压缩旧备份文件、同步最近一天的数据,并通过rsync进行数据传输。脚本还涉及远程挂载和安全认证。
摘要由CSDN通过智能技术生成
#! /bin/bash

# 记录日志
function log(){
    logf="/var/log/dbbak.log"
    d=`date "+%Y-%m-%d %H:%M:%S.%s"`;
    log="$d    $1";
    echo $log >> $logf;
    echo $1;
}
# 压缩1天前的所有bak文件
function 7zbak(){
    if [[ ! -d /media/root/a67049af-a7eb-4290-99e0-5772816707b5 ]]; then
        return 0;
    fi
    find /media/root/a67049af-a7eb-4290-99e0-5772816707b5/backup/dbbak/ -maxdepth 1 -type f  -name "*.bak" -mtime +0 | while read f;
    do
        log "compress $f";
        log "md5sum ...";
        md5sum $f |cut -d ' ' -f1 > $f.md5;
        log "compress ...";
        7z a $f.7z $f $f.md5;
        log "remove ...";
        rm $f.md5 $f -rf;
        log "ok";
    done

}

# 备份当天(1天内)的数据
function rsyncLast1day(){
    if [[ ! -d /media/root/a67049af-a7eb-4290-99e0-5772816707b5 ]]; then
        return 0;
    fi
    find /media/root/192.168.3.7/d/dbbak -maxdepth 1 -type f  -mtime -1 | while read f ;
    do 
        log "rsync : $f";
        rsync -avzP $f /media/root/a67049af-a7eb-4290-99e0-5772816707b5/backup/dbbak/;
    done
}


if [[ ! -d "/media/root/192.168.3.7/d" ]]; then    
    mkdir -p /media/root/192.168.3.7/d;
fi
ret=`mount | grep "192.168.3.7"`;
if [[ $ret == "" ]]; then
    mount -t cifs -o username="administrator",password="feX191x0",ro //192.168.3.7/D$ /media/root/192.168.3.7/d;    
fi

if [[ -d "/media/root/192.168.3.7/d/dbbak" ]]; then
    log "start.";
    log "rsync...";
    rsyncLast1day
    log "compress...";
    7zbak
    log "finish.";
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值