#! /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
【rsync】同步目录并通过7z压缩
最新推荐文章于 2024-05-04 21:06:12 发布
本文介绍了一个使用bash编写的自动化脚本,用于管理数据库备份,包括记录日志、压缩旧备份文件、同步最近一天的数据,并通过rsync进行数据传输。脚本还涉及远程挂载和安全认证。
摘要由CSDN通过智能技术生成