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

Linux 定期自动备份文件夹脚本的更多相关文章

  1. linux中FTP自动备份VPS脚本

    服务器多了,网站也越来越多,总觉得不整个备份心里放不下心,并且有好几次rm的操作失误,造成难以挽回的损失.并且大多数的VPS提供商是不提供自动备份功能或者此功能收费价格略高.所以自己还是有必要把这个工 ...

  2. 用批处理文件自动备份文件及文件夹,并自动删除n天前的文件

    原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...

  3. Centos7下crontab+shell脚本定期自动删除文件

    问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...

  4. 如何在LINUX中开机、登陆、退出、定时、定期自动运行程序

    1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...

  5. linux - 怎么自动填写有交互的shell脚本 - SegmentFault

    linux - 怎么自动填写有交互的shell脚本 - SegmentFault TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行 ...

  6. Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

    说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...

  7. linux查看文件夹大小,备份文件夹zip压缩解压

    linux查看文件夹大小,备份文件夹zip压缩解压 du -sh : 查看当前目录总共占的容量.而不单独列出各子项占用的容量 du -lh --max-depth=1 : 查看当前目录下一级子文件和子 ...

  8. linux解析映射文件与自动加载脚本

    目录 一 :解析映射文件 1.解析文件的由来之主机名: 2.解析映射文件(DNS) 二:磁盘挂载文件 三:开机自动加载脚本 一 :解析映射文件 1.解析文件的由来之主机名: 无论是在局域网还是在INT ...

  9. SunRay4(新蕾4) 定时自动关机方案, Linux后台自动任务crontab实践

    目录: 需求和思路分析 具体实现步骤 理解Crontab Crontab具体参数详细说明 最近碰到一个想要实现定时自动关机的功能,关机的指令无非就是: shutdown -h time 调用openw ...

随机推荐

  1. LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  2. 磨刀不误砍柴工!vs2010快捷键大全

    最常用的快捷键: VS2012变化的快捷键: 注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键.相当于Ctr ...

  3. C#与SQl数据的对应关系(tinyint、smallint、int、bigint)

    SQL                                                           C# bigint(sql大小:8byte)                 ...

  4. Problem O

    Problem Description Before bridges were common, ferries were used to transport cars across rivers. R ...

  5. Codeforces 376B. Coupons and Discounts

    B. Coupons and Discounts time limit per test 1 second memory limit per test 256 megabytes input stan ...

  6. Android 开发笔记___滚动视图__scroll view

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. Spring MVC体系结构和处理请求控制器

    Spring MVC体系结构和处理请求控制器 一:MVC设计模式: (1.)数据访问接口:DAO层 (2.)处理业务逻辑层:Service层 (3.)数据实体:POJO (4.)负责前段请求接受并处理 ...

  8. ASP.NET Core 2.0 MVC「远程」验证

    问题 如何 在ASP.NET Core MVC中使用[Remote]属性来实现模型验证 . 解 在 启动时, 为MVC配置中间件和服务. 添加一个模型. 添加一个控制器. 为jQuery添加一个Raz ...

  9. python的Windows下的安装

    1.先打开网址http://www.python.org/download/: 2.在下载列表中选择Window平台安装包, 找到最后 web-based installer 是需要通过联网完成安装的 ...

  10. [转载] Lucene 工作原理

    转载自http://www.cnblogs.com/dewin/archive/2009/11/24/1609905.html Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引 ...