Chinaunix首页 | 论坛 | 博客
  • 博客访问: 688703
  • 博文数量: 34
  • 博客积分: 4020
  • 博客等级: 上校
  • 技术积分: 367
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 16:22
文章分类

全部博文(34)

文章存档

2010年(1)

2009年(16)

2008年(9)

2007年(8)

我的朋友

分类:

2007-04-05 18:55:33

下面的代码是我在做员工培训时写的一个演示脚本:将命令行写入crontab中后,可以实现对指定源文件进行每日备份,并且可以指定备份文件的最大保存天数,超过此设定值的备份文件会被自动删除。
 

#将src中设定的源文件进行打包备份,备份文件名为当前日期(yyyymmdd)
#备份前会自动删除超过保存天的备份文件
#使用前请建立好备份路径

#要备份的文件
src="/usr/jtkk/*.sh /usr/jtkk/*.txt"
#备份路径
bakdir="/usr/jtkk/backup"
#备份文件的最大保存天数
maxday=7
#判断传入的参数是否是数值
isnum()
{
 if [ $# -lt 1 ]; then
  return 1
 fi
 expr $1 + 10 2>/dev/null 1>&2
 return $?
}
 
#备份文件名
today=`date +%Y%m%d`
#下面的for循环删除超过保存天数的文件
for file in `ls -1 $bakdir`
do
 isnum $file
 if [ $? -ne 0 ]; then
  continue 
 fi
 
 l=`expr length "$file"`
 if [ $l -ne 8 ]; then
  continue
 fi
 
 m=`expr $today - $file`
 if [ $m -gt $maxday ]; then
  rm -f $bakdir/$file
 fi
done
 
#对源文件进行打包备份
tar -cvf $bakdir/$today $src
if [ $? -eq 0 ]; then
 echo "Backup is OK!"
else
 echo "Backup error!"
fi
阅读(3305) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~