金笛邮件论坛  

返回   金笛邮件论坛 > 金笛电子邮件系统 > 金笛邮件售后服务专区

回复
 
LinkBack 主题工具 显示模式
旧 2012-07-23, 14:42   #1 (permalink)
版主
 
注册日期: 2012-02-07
帖子: 281
默认 linux用rsync实现文档自动备份功能

#!/bin/bash

mydate="`date '+%Y%m%d.%H%M'`"

# Define rmt location
RmtUser=root
#RmtHost=192.168.0.55
#RmtPath=/home/
#BackupSource="${RmtUser}@${RmtHost}:${RmtPath}"
BackupSource="/home/accounts" # 若进行本地备份则用本地路径替换上面的行
# Define location of backup
#BackupRoot="/backups/$RmtHost/"
BackupRoot="/root" # 若进行本地备份则用本地路径替换上面的行
LogFile="${BackupRoot}/backup.log"
ExcludeList="/root/exclude-list.txt"
#ExcludeList="/root/backup/backup-exclude-list.txt"
BackupName='domains'
BackupNum="7" # 指定保留多少个增量备份(适用于每周生成归档文件)
#BackupNum="31" # 指定保留多少个增量备份(适用于每月生成归档文件)

# 定义函数检查目录 $1 是否存在,若不存在创建之
checkDir() {
if [ ! -d "${BackupRoot}/$1" ] ; then
mkdir -p "${BackupRoot}/$1"
fi
}
# 定义函数实现目录滚动
# $1 -> 备份路径
# $2 -> 备份名称
# $3 -> 增量备份的数量
rotateDir() {
for i in `seq $(($3 - 1)) -1 1`
do
if [ -d "$1/$2.$i" ] ; then
/bin/rm -rf "$1/$2.$((i + 1))"
mv "$1/$2.$i" "$1/$2.$((i + 1))"
fi
done
}

# 调用函数 checkDir ,确保目录存在
checkDir "archive"
checkDir "daily"

#======= Backup Begin =================
# S1: Rotate daily.
rotateDir "${BackupRoot}/daily" "$BackupName" "$BackupNum"

checkDir "daily/${BackupName}.0/"
checkDir "daily/${BackupName}.1/"

mv ${LogFile} ${BackupRoot}/daily/${BackupName}.1/

cat >> ${LogFile} <<_EOF
===========================================
Backup done on: $mydate
===========================================
_EOF

# S2: Do the backup and save difference in ${BackupName}.1
rsync -avzP --delete \
-b --backup-dir=${BackupRoot}/daily/${BackupName}.1 \
--exclude-from=${ExcludeList} \
$BackupSource ${BackupRoot}/daily/${BackupName}.0 \
1>> ${LogFile} 2>&1

# S3: Create an archive backup every week
if [ `date +%w` == "0" ] # 每周日做归档
# if [ `date +%d` == "01" ] # 每月1日做归档
#then
tar -cjf ${BackupRoot}/archive/${BackupName}-${mydate}.tar.bz2 \
-C ${BackupRoot}/daily/${BackupName}.0 .
chyb 当前离线   回复时引用此帖
回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 03:31


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.