亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3515 | 回復: 5
打印 上一主題 下一主題

數(shù)據(jù)文件按天增量備份腳本 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2005-01-01 09:35 |只看該作者 |倒序瀏覽
-------------------------------------------------------------------------------
文件:bak_orgcdr.sh
-------------------------------------------------------------------------------
#!/bin/ksh
######################################################
#        數(shù)據(jù)文件按天增量備份腳本
#        功能:按mtime將前一天的文件copy/link備份目錄下,不刪除原文件
#        執(zhí)行頻率:每天執(zhí)行(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"`
#備份數(shù)據(jù)源目錄
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 "rocess log is written in $logFile " >>$logFile
echo "Backup files list as: " >>$logFile
#在源目錄遞歸查找滿足條件的文件,并拷貝到備份目錄
#注意:不同目錄下如果有同名文件將會丟失數(shù)據(jù)文件
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,<='$PreNDate') print($0)}' `
    fi
done <<!
`ls *.log`
!

-------------------------------------------------------------------------------
文件:cpcdr
-------------------------------------------------------------------------------
#!/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
#取日期的函數(shù)版內(nèi)一個前輩寫的
#這個腳本很簡單,也許對大家有用

環(huán)境:HP-UX B.11.23 U ia64

論壇徽章:
0
2 [報告]
發(fā)表于 2005-01-01 10:46 |只看該作者

數(shù)據(jù)文件按天增量備份腳本

有很多版本的取日期方法。對類似的車輪問題大家最好還是用perl的模塊,能更減少開發(fā)周期~
此次回復與本帖無關,純屬心血來潮,樓主的程序還是很不錯的,有一點要說的,dd是UNIX的一個命令,最好不要用來做變量。

論壇徽章:
0
3 [報告]
發(fā)表于 2005-01-01 12:11 |只看該作者

數(shù)據(jù)文件按天增量備份腳本

取昨天日期:

  1. bash-2.05$ perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time-86400);print $year+1900,$mon+1,$mday'
  2. 20041231
復制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2005-01-01 17:43 |只看該作者

數(shù)據(jù)文件按天增量備份腳本

不錯
頂一下

論壇徽章:
0
5 [報告]
發(fā)表于 2005-01-02 08:53 |只看該作者

數(shù)據(jù)文件按天增量備份腳本

謝謝各位的回復,我是很不喜歡perl,所以從來不用也不會,我正在翻譯Programming in lua有人有興趣嗎?

論壇徽章:
0
6 [報告]
發(fā)表于 2008-09-12 10:27 |只看該作者

回復 #5 歐陽不修 的帖子

謝謝分享,找了好久,一會在linux as5.2上測試一下。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP