Chinaunix首页 | 论坛 | 博客
  • 博客访问: 499115
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类:

2012-09-15 18:16:21

原文地址:创建日期目录 作者:hxl

每天数据库备份,我想将备份集自动备份到按照日期创建的目录中,如下脚本是自动按照日期创建目录(这里是创建下个月的日期目录).
 
步骤1.vi create_dir.sh 输入如下内容
 
  1. #!/bin/sh

  2. create_dir()
  3. {
  4. if test -z "$2"
    then
      next_month=`date -d next-month +%Y%m` #get next month 参数2为空则创建下个月
    else 
      next_month=$2  #根据输入参数2 创建
    fi

  5. year=`echo ${next_month}|cut -c1-4`
  6. month=`echo ${next_month}|cut -c5-6`

  7. rman_path_root=$1 #/u01/rman_backup

  8. l_cal=`cal $month $year`

  9. l_days=`echo $l_cal|awk '{print $NF}'`

  10. l_zero=0

  11. leng=`expr length $month`

  12. if [ $leng -lt 2 ]
  13.   then
  14.     month=${l_zero}${month}
  15.   else
  16.     month=${month}
  17. fi

  18. year_path=${rman_path_root}/${year}

  19. month_path=${year_path}/${year}${month}

  20. if ! [ -d ${year_path} ]
  21. then
  22.           mkdir -p ${year_path}
  23. fi

  24. if ! [ -d ${month_path} ]
  25. then
  26.           mkdir -p ${month_path}
  27. fi

  28. for((i=1;i<=$l_days;i++));
  29. do
  30.   leng=`expr length $i`
  31.   if [ $leng -lt 2 ]
  32.   then
  33.     l_run_day_path=${month_path}/${year}${month}${l_zero}${i}
  34.   else
  35.     l_run_day_path=${month_path}/${year}${month}${i}
  36.   fi

  37.   ##create dir
  38.   if ! [ -d ${l_run_day_path} ]
  39.   then
  40.     mkdir -p ${l_run_day_path}
  41.   fi

  42.   echo $l_run_day_path

  43. done
  44. }

  45. create_dir /u01/rman_backup
  46. create_dir /u01/rman_backup/level_0_bak
  47. create_dir /u01/rman_backup/level_1_bak
  48. create_dir /u01/rman_backup/level_2_bak

步骤2.赋予执行权限

  1. chmod 755 create_dir.sh

步骤3.使用linux的crontab调度该脚本自动创建日期目录

crontab -e

加入如下内容

  1. 00 15 * * * /myscript/create_dir.sh >> /myscript/run_log.log #每天下午3点执行
阅读(357) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~