zoukankan      html  css  js  c++  java
  • Linux 定期自动备份文件夹脚本

    根据网上代码改编而成,这个脚本分为两个文件,一个是执行文件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

  • 相关阅读:
    第一阶段冲刺05
    生成器
    三元表达式 ,列表推导式 , 字典生成式
    装饰器
    闭包函数
    函数的定义和参数
    列表内置方法
    字符串的内置方法
    py_11_ 0731
    py_11_ 0730
  • 原文地址:https://www.cnblogs.com/ghjbk/p/7794232.html
Copyright © 2011-2022 走看看