[转帖]Linux 定期自动备份脚本_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3622 | 回复: 0   主题: [转帖]Linux 定期自动备份脚本        下一篇 
liulin_2
注册用户
等级:少校
经验:1143
发帖:85
精华:5
注册:2012-12-10
状态:离线
发送短消息息给liulin_2 加好友    发送短消息息给liulin_2 发消息
发表于: IP:您无权察看 2012-12-11 10:30:20 | [全部帖] [楼主帖] 楼主

Wow! Ubuntu / Ubuntu 新闻、技巧、软件及游戏! 作者:ITwhy

我们在网维工作中,常常要备份一些资料,虽然事情不复杂,但是很费时间的,我在这里分享一个 Linux 备份脚本,轻松自如的实现自动备份,并且可以保留N天备份的档案。这个脚本分为两个文件,一个是执行文件backup.sh,另一个是备份项目文件 project.lst。

#backup.sh
-- 重要变量名 作用
LogFile 日志文件
SourceDir 需要备份的目录
BakDir 备份至此目录
RetainDay 备份档案文件保留天数
ProjectLst 备份项目文件配置文件

代码:

01#!/bin/bash
02#author:        InBi
03#date:          2011-07-28
04#role:          backup files periodically.
05#website:       http://www.itwhy.org/2011/07-28/707.html
06##################################################
07LogFile=/backup/log/`date+"%Y-%m"`.log
08DATE=`date+"%Y-%m-%d"`
09SourceDir=/var/RDfile
10BakDir=/backup
11RetainDay=20
12ProjectLst=/backup/project.lst
13##################################################
14echo"backup start at $(date +"%Y-%m-%d %H:%M:%S")"> $LogFile
15echo"--------------------------------------------------">> $LogFile
16cd$BakDir
17PROJECTLIST=`cat$ProjectLst`
18forProject in$PROJECTLIST
19do
20ProjectData=$SourceDir/$Project
21DestDir=$BakDir/$Project
22PackFile=$DATE.$Project.tgz
23if[ -f $BakDir/$PackFile ]
24then
25echo"backup file have exist !">>$LogFile
26else
27cp-RHpf $ProjectData $DestDir > /dev/null
28tar-zcvf $PackFile $Project > /dev/null
29echo"backup $Project done into $PackFile ">>$LogFile
30rm-rf $Project
31fi
32OldFile="$BakDir/"$(date--date="$RetainDay days ago"+"%Y-%m-%d").$Project.tgz
33if[ -f $OldFile ]
34then
35rm-f $OldFile > /dev/null
36echo"[$OldFile],Delete Old File Success!">> $LogFile
37fi
38echo" ">> $LogFile
39done
40echo"--------------------------------------------------">> $LogFile
41echo"backup end at $(date +"%Y-%m-%d %H:%M:%S")">> $LogFile
42echo" ">> $LogFile
43exit0
# project.lst :  这个文件比较好理解,就是一个text文件,它的每一行表示一个项目,也就是你需要备份的目录下面的文件或目录。

onu_arm
onu_voip
onu_wifi
5xxx
7xxx
8xxx
nms




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论