正在加载中……
最新消息:欢迎大家访问,导航分类不完善,如果找不到自己想要的文章,可以通过【关键词】来进行搜索,^_^!

Linux 定期自动备份文件夹脚本

Linux专题 REKFAN.COM 10632浏览 2评论

更多


根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件backup.txt。backup.txt这个文件比较好理解,就是一个text文件,它的每一行表示一个项目,也就是你需要备份的目录下面的文件或目录。
代码如下:

#!/bin/bash
#author:        Rekfan
#date:          2013-01-11
#作用:          定期备份文件
#website:      
http://blog.rekfan.com
##################################################
# 重要变量名      作用
# SourceDir    需要备份的目录
# LogFile      日志文件
# BakDir1      备份上层目录
# BakDir2      备份目录
# RetainDay    备份档案文件保留天数
# ProjectTxt   备份项目文件配置文件
##############★ 以下信息需要配置 ★##################
DATE=`date +"%Y-%m-%d"`
SourceDir=/var/web
BakDir1=/web_bak
BakDir2=/web_bak/`date +"%Y-%m-%d"`
LogFile=/web_bak/log_`date +"%Y-%m-%d"`.log
RetainDay=20
ProjectTxt=/web_bak/backup.txt

##############★   创建备份目录   ★##################
mkdir -p $BakDir2/
echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" > $LogFile
echo "--------------------------------------------------" >> $LogFile
echo " " >> $LogFile
echo "创建备份目录【$BakDir2】成功" >> $LogFile
cd $BakDir2
##############★   备份核心代码   ★##################
ProjectList=`cat $ProjectTxt`
for Project in $ProjectList
do
 ProjectData=$SourceDir/$Project
 DestDir=$BakDir2/$Project
 PackFile=$Project-$DATE.tar.gz
  
 if [ -f $BakDir2/$PackFile ]
 then
  echo "backup file have exist !" >>$LogFile
 else
cd $SourceDir
  tar -zcvf $BakDir2/$PackFile $Project > /dev/null
  echo "目录或文件 $SourceDir/$Project已经备份到 $BakDir2/$PackFile ">>$LogFile
 fi
##############★   删除$RetainDay天前的备份   ★##############
 OldFile="$BakDir1/"$(date --date="$RetainDay days ago" +"%Y-%m-%d")
 if [ -f $OldFile ]
 then
  rm -rf $OldFile > /dev/null
  echo "[$OldFile],Delete Old File Success!" >> $LogFile
 fi

echo " " >> $LogFile
done
echo "--------------------------------------------------" >> $LogFile
echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "                                                      ----------BY:Rekfan " >> $LogFile
echo " " >> $LogFile
exit 0

转载请注明:|REKFAN|系统运维| » Linux 定期自动备份文件夹脚本

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 以下信息需要配置 下修改了我要备份的目录和目的地后怎没有备份,另backup.txt 里内容是什么?

    jacky2015-02-05 16:47 回复
    • backup.txt 就是一个text文件,它的每一行表示一个项目,也就是你需要备份的目录下面的文件或目录。

      admin2015-06-07 01:07 回复