使用tar备份脚本

完全备份和累计备份
下面的脚本来自 http://www.faqs.org/docs/se curing/chap29se c306.htm l [http://www.proxys erve.net
/index.php? q=aH R0 c D ovL 3 d3 dy5 mY XFzLm9 yZy9 kb2 N zL 3 N lY 3 V yaW5 nL 2 N oY XA yO XN lY zM wN i5 odG 1 s ]
#!/bin/sh
# NAME : /etc/cron.daily/backup.cron
# FROM : http://www.faqs.org/docs/securing/chap29sec306.html
# full and incremental backup script
SmarTraining 工作室 » 使用 tar 备份http://www.proxyserve.net/index.php?q=aHR0cDovL3NtYXJ0cmFp...
# created 07 February 2000
# Based on a script by Daniel O'Callaghan <danny@freebsd.org>
# and modified by Gerhard Mourani <gmourani@videotron.ca>
# 更改如下的 5 个变量以适应您的 computer/backup
COMPUTER=deep # 本机的机器名称
DIRECTORIES="/home" # 要备份的目录
BACKUPDIR=/backups # 备份文件存放的目录
TIMEDIR=/backups/last-full # 存放上次完全备份时间文件的目录
TAR=/bin/tar # tar 的完整路径
# 您不应该更改以下的内容
LANG=C # 设置语言(避免产生中文日期输出)

PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a` # 周几 例如:Mon
DOM=`date +%d` # 天数 例如:27
DM=`date +%d%b` # 天数和月份 例如:27Sep
# 每月 1 日生成完全备份。
# 每周日生成完全备份,并覆盖上周日生成的完全备份。
# 月内的其他日子生成累计备份,每个累计备份都覆盖上周生成的累计备份。
#
# 如果 NEWER = "",那么备份指定目录中的所有文件(完全备份),
# 否则备份比 $NEWER 新的文件,NEWER 的值由每周日写在
# /backups/last-full/deep-full-date 的内容获得
# 每月的完全备份
if [ $DOM = "01" ]; then
NEWER=""
$TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DM.tar $DIRECTORIES
fi
# 每周的完全备份
if [ $DOW = "Sun" ]; then
NEWER=""
NOW=`date +%d-%b`

# 更新完全备份的日期
echo $NOW > $TIMEDIR/$COMPUTER-full-date
$TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES
# 生成累计备份 - 覆盖上周相应的文件
else
# 获取上次完全备份的日期
NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"
$TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES

为了使用上面的脚本,需要执行如下步骤:
# 编辑文件 /etc/cron.daily/backup.cron
# vi /etc/cron.daily/backup.cron
# 添加执行权限
# chmod +x /etc/cron.daily/backup.cron
1. 在使用脚本之前,要保证存放备份文件和存放完全备份时间的目录已经存在。
2. 若您希望保留备份的属性,请在 tar 命令中添加 -p 选项;若您希望压缩数据,请在 tar 命令中添加 -z 或 -j 选项。
若您不是在一个月的 1 日或非周日开始运行此脚本,可以依照脚本中的文件名约定手工创建一个完全备份文件,并用如下的命令将完全备份的
日期写入 /back ups/last-full 目录下的文件 $C O MPUTER -full-date 中,此脚本默认的文件名是 de e p-full-date。

# LANG=C; date +%d%b > /backups/last-full/deep-full-date

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值