|
|
发表于 2004-7-27 14:03:43
|
显示全部楼层
以下是我(我是一名菜鸟)写的脚本,同时请各位大侠提出意见:
#!/bin/sh
# backuphours.sh
# Backup from SOURCE to DESTIN every 10 hours script.
# Writed by tolly 2003.07.11
# 从 SOURCE 目录每隔 10 小时备份一次到 DESTIN 目录的脚本
# 并在 DESTIN 目录中按日期建立目录/时间目录
# 此脚本避免在 0:00 时日期变化时段执行
# 脚本作者:TOLLY 日期:2003.07.11
########### Source directory ############
SOURCE=/scsi2/pub
########### Destin directory ############
DESTIN=/ata1/pub
########### Log file path ############
BACKUPLOG=/usr/home/log/backuphours.log
########### Mount to host #############
#这里是通过NFS备份的,如果是本地的,可以略去这一步并适当修改
if [ ! -f $DESTIN/flag ]
then
mount_nfs 192.168.1.xxx:/ata1 /ata1
fi
if [ -f $DESTIN/flag ]
then
# delete the error copy tmp directory.
# 删除上次错误备份时产生的tmp目录
if [ -d $DESTIN/tmp ]
then
rm -Rf $DESTIN/tmp
fi
# make directory for tmp
# 建立复制的临时目录 tmp
mkdir $DESTIN/tmp
# 开始时间记录
date "+%Y-%m-%d %H:%M:%S 备份开始。" >> $BACKUPLOG 2>&1
# 主要备份命令
tar --ignore-failed-read --newer-mtime '10 hours ago' -cf - -C $SOURCE . | tar xpf - -C $DESTIN/tmp
# 上面的 10 hours ago可以改为 10 days ago之类的。
# test current date directory exist and make dir
# 建立日期目录
if [ ! -d $DESTIN/`date +%Y%m%d` ]
then
mkdir $DESTIN/`date +%Y%m%d`
fi
# delete the same minute directory.
# 删除相同分钟数的目录
if [ -d $DESTIN/`date +%Y%m%d`/`date +%H`点`date +%M`分备份 ]
then
rm -Rf $DESTIN/`date +%Y%m%d`/`date +%H`点`date +%M`分备份
fi
# 移动到时间目录
mv $DESTIN/tmp $DESTIN/`date +%Y%m%d`/`date +%H`点`date +%M`分备份
# 完成时间记录
date "+%Y-%m-%d %H:%M:%S 备份结束。" >> $BACKUPLOG 2>&1
这样备份的结果就是备份按日期放一个目录,每天下面按时间再细分。 |
|