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
Linux 定期自动备份文件夹脚本的更多相关文章
- linux中FTP自动备份VPS脚本
服务器多了,网站也越来越多,总觉得不整个备份心里放不下心,并且有好几次rm的操作失误,造成难以挽回的损失.并且大多数的VPS提供商是不提供自动备份功能或者此功能收费价格略高.所以自己还是有必要把这个工 ...
- 用批处理文件自动备份文件及文件夹,并自动删除n天前的文件
原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...
- Centos7下crontab+shell脚本定期自动删除文件
问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...
- 如何在LINUX中开机、登陆、退出、定时、定期自动运行程序
1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...
- linux - 怎么自动填写有交互的shell脚本 - SegmentFault
linux - 怎么自动填写有交互的shell脚本 - SegmentFault TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行 ...
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- linux查看文件夹大小,备份文件夹zip压缩解压
linux查看文件夹大小,备份文件夹zip压缩解压 du -sh : 查看当前目录总共占的容量.而不单独列出各子项占用的容量 du -lh --max-depth=1 : 查看当前目录下一级子文件和子 ...
- linux解析映射文件与自动加载脚本
目录 一 :解析映射文件 1.解析文件的由来之主机名: 2.解析映射文件(DNS) 二:磁盘挂载文件 三:开机自动加载脚本 一 :解析映射文件 1.解析文件的由来之主机名: 无论是在局域网还是在INT ...
- SunRay4(新蕾4) 定时自动关机方案, Linux后台自动任务crontab实践
目录: 需求和思路分析 具体实现步骤 理解Crontab Crontab具体参数详细说明 最近碰到一个想要实现定时自动关机的功能,关机的指令无非就是: shutdown -h time 调用openw ...
随机推荐
- 推荐使用国内的豆瓣源安装Python插件
以前都是用pip安装Python插件的,直到今天 pip的原理其实是从Python的官方源pypi.python.org/pypi下载到本地,然后解包安装 但是有的时候,这个操作会非常慢,国内可以通过 ...
- 最长回文子串---Manacher算法
百度:Manacher算法 代码 #include <iostream> #include <string> #include <cstring> #include ...
- jquerymobile实例介绍
[创建页面] data-role="page" 是在浏览器中显示的页面.. data-theme="b"更换主题,有a和b两种 data-role= ...
- Scala从入门到精通之四-映射和元组
在Scala中映射之键值对的集合,元组是n个对象的聚集,但是对象的类型不一定相同 本节内容要点 Scala中映射的创建,遍历和查询 如何从可变和不可变映射中做出选择 Scala映射和Java映射见的互 ...
- URLs对象 blob URL
把指向数据的URL保存到file或者blob对象里,好处就是不需要先文件读取内容然后才能用. function createObjectURL(blob){if (window.URL){retu ...
- 定制滚动条样式 webkit
::-webkit-scrollbar { /* 1 */ } ::-webkit-scrollbar-button { /* 2 */ } ::-webkit- ...
- ⑥bootstrap表单使用基础案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 淘宝联盟api调用笔记
一.流程及主要请求接口 每日凌晨1点开始,服务器定时自动请求淘宝联盟数据,请求完毕之后,执行一个存储过程对数据进行整理,删除过期...购买数量<...的商品......,请求接口分别有(tbk_ ...
- 【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境
前言 这篇文章针对的是基于 LuaJIT 的环境配置.借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍.如果你不是很清楚自己是需要 Lua 还是 LuaJIT,那么建议你从 LuaJIT ...
- oracle精简客户端安装配置及常见问题
有关Instant client 安装步骤 1.首先在官网下载两个安装包instant/sqlplus,对相关文件进行解压缩,存放本地路径 官网地址:http://www.oracle.com/tec ...