免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1057 | 回复: 0
打印 上一主题 下一主题

linux数据备份,增量备份,完整备份 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-16 11:23 |只看该作者 |倒序浏览

linux数据备份,增量备份,完整备份

公司的linux服务器使用的是一台普通的台式机,缺乏灾难恢复的机制。公司大量数据存放在该服务器上,一旦发生故障后果不堪设想。所以需要对这个机器的重要数据进行有效的备份。经过几天捉摸收集资料,终于编写出了自己的linux脚本,实现了每月的完整备份,和每天的增量备份,打包出来的文件内有当天备份的文件详细列表,以便以后恢复时查找。增量备份存储90内的数据,90以前的将被自动删除。所有备份文件本地保存一份,通过网络自动备份到另外一个主机一份,做到了万无一失。

下面是详细的脚本内容

#!/bin/sh
DATE=`date +%F-%H`
host="192.168.16.17"
id="admin"
pw="123456"
ftpdir="days"
baktime=`date --date='90 days ago' +%Y-%m-%d`
if [`date +%d`='1']
then
filename="linux$DATE.tar.gz"
basedir="/mnt/smb/bak/monthly"
zl=""
bakdir="/data/ARCA/work/linux"

else
filename="bak$DATE.tar.gz"
basedir="/mnt/smb/bak/days"
zl="-T /tmp/filelist-2.daily"
bakdir=""
fi


find /data/ARCA/work/linux/ -type f -mtime -1  -print >$bakdir/filelist.daily
cat /tmp/filelist.daily |grep '\.[c.h]$' >/tmp/filelist-2.daily
#echo $baktime
#tar -N '$baktime' zcvf $basedir/$filename  $bakdir
tar $zl -czvf ${basedir}/$filename ${bakdir}

#Starting FTP to send file
cd $basedir
ftp -n >"$basedir"/"$filename".log 2>&1  
open $host
user $id $pw
binary
cd $ftpdir
mput $filename
bye
EOC

test -e bak$baktime.tar.gz && rm -f bak$baktime* || echo Not fonud this files

将文件存放到/etc/cron。daily目录下,该目录为系统定期运行的目录,该脚本将每天运行一次,每个月的1号进行完整本分,其他日期进行增量备份.有些文件不重要所以只选择.c .h文件进行备份。
该脚本还不完善,如果未能发送到远程主机不能自行判断,下面我将对该问题进行修改
该脚本在经过简单修改后,可以实现数据的本分与主从同步。使用范围比较广泛。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29128/showart_401473.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP