文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux数据备份,增量备份,完整备份

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

时间:2007-10-11  来源:antsnm

公司的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 <<EOC

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文件进行备份。

该脚本还不完善,如果未能发送到远程主机不能自行判断,下面我将对该问题进行修改

该脚本在经过简单修改后,可以实现数据的本分与主从同步。使用范围比较广泛。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载