电信实时计费数据(原始话单文件)备份脚本
来源:互联网 发布:安装数据库步骤 编辑:程序博客网 时间:2024/04/29 06:25
################################file:bak_orgcdr.sh
#!/bin/ksh
######################################################
# 数据文件按天增量备份脚本
# 功能:按mtime将前一天的文件copy/link备份目录下,不删除原文件
# 执行频率:每天执行(crontab)
######################################################
##########function #############
#date=YYYYMMDD
#Usage:command date days
GetPrevDate(){
str=$1
days=$2
yy=`echo $str|cut -c 1-4`
mm=`echo $str|cut -c 5-6`
dd=`echo $str|cut -c 7-8`
sav_dd=$days
days=`expr $days - $dd`
while [ $days -ge 0 ]
do
mm=`expr $mm - 1`
[ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`
aaa=`cal $mm $yy`
bbb=`echo $aaa|awk '{print $NF}'`
days=`expr $days - $bbb`
done
dd=`expr 0 - $days`
expr $dd : "^.$" > /dev/null && dd=0$dd
expr $mm : "^.$" > /dev/null && mm=0$mm
echo $yy$mm$dd
}
#======================main==================#
todayDate=`date "+%Y%m%d"`
#备份数据源目录
srcPath="/bill/data/pppath/bak/"
#备份目的目录
bakPath="/bill/backup/cdr/${todayDate}/"
#记录处理结果的日志文件目录
logPath="/bill/backup/logpath/cdr/"
#处理日志文件名
logFile="/bill/backup/logpath/cdr/${todayDate}.log"
if [ ! -d $bakPath ]; then
mkdir $bakPath;
fi
#生成时间戳文件,精确到分
beginDate="`GetPrevDate ${todayDate} 1`0001"
endDate="`GetPrevDate ${todayDate} 2`0001"
#for test
#beginDate="200412260001"
#endDate="200412270001"
touch -t "${beginDate}" /bill/backup/script/beginfile
touch -t "${endDate}" /bill/backup/script/endfile
echo "***********************************************************" >$logFile
echo "The cdr backup process is starting at [ `date` ]" >>$logFile
echo "Backup file's mtime between [ $beginDate - $endDate ) " >>$logFile
echo "SrcPath=/bill/data/pppath/bak/" >>$logFile
echo "BakPath=/bill/backup/cdr/${todayDate}/" >>$logFile
echo "Process log is written in $logFile " >>$logFile
echo "Backup files list as: " >>$logFile
#在源目录查找满足条件的文件,并拷贝到备份目录
find $srcPath /( -newer /bill/backup/script/beginfile -a ! -newer /bill/backup/script/endfile /) -depth -print|xargs cpcdr $bakPath $logFile;
echo "Backup cdr completed at [ `date` ]." >>$logFile
#检查处理日志看是否有错误
awk 'BEGIN {cnt=0;} {if($1~/ERROR/) cnt++;} END {if(cnt==0) printf("Backup Successed./n"); else printf("There is %d ERROR found.Please check it./n",cnt);}' $logFile >>$logFile
echo "***********************************************************" >>$logFile
PreNDate=`GetPrevDate ${todayDate} 31`
#echo $PreNDate
cd $logPath
#删除31天前的日志文件
while read file ;
do
if [ -f $file ]; then
rm -f `echo $file |awk '{if(substr($0,1,8)<='$PreNDate') print($0)}' `
fi
done <<!
`ls *.log`
!
################################file:cpcdr(此文件需要有x权限)
#!/bin/ksh
#this file is called by bak_orgcdr.sh
bakpath="$1"
logfile="$2"
shift 2
for x in "$@"
do
#echo cp $x $bakpath;
#cp -f $x $bakpath;
ln -f $x $bakpath`basename $x`
if [ $? -ne 0 ];then
echo "ERROR! cp $x $bakpath failed! " >>$logfile
else
echo "cp $x $bakpath successed." >>$logfile
fi
done
- 电信实时计费数据(原始话单文件)备份脚本
- 电信主机计费系统_数据采集子模块
- 【电信计费系统项目实战】基础篇---解析XML文件
- 【电信计费系统项目实战】基础篇---解析XML文件
- 电信计费术语
- MySQL 备份-通过原始文件
- 一次作业题目-----话单计费(Java)
- 电信计费综合管理系统
- 河北省电信计费系统案例
- 电信计费相关名次解释
- HDB V1.0.0 内存数据引擎Win平台测试数据_模拟移动电信话费计费功能
- linux数据备份脚本
- Mysql 数据备份脚本
- python备份数据脚本
- 备份oracle数据脚本
- oracle数据备份脚本
- 数据备份脚本
- 文件备份bat脚本
- 使用Laszlo开发的Flash MP3播放器-太棒了
- ASP.NET+XML+JavaScript 无限级树形结构
- 到哪里都是从零开始
- IBM WebSphere Portal5.1 开发指南(1)
- 电脑的幽默
- 电信实时计费数据(原始话单文件)备份脚本
- 有选择才精彩
- 如何禁止调整自定义控件的尺寸?
- 一对IT恋人的对话
- 软件技术和职业的顶峰:架构与架构师
- JBuilder 2005代码审查功能体验
- RIA(Rich Internet Application) 介绍
- QQ未解之谜——GIPS是何方神圣?
- 根据BOM获得实际encoding返回相应Reader