5 Exp脚本解释 ]. q0 h+ f! B; L A
GetPrevDate(){
9 O' o4 P2 o, H: P2 A str=$12 H: u% P2 I* p: m0 O! S7 I
days=$26 ^ ^, n6 |( }( }) M7 S* o3 N7 t
yy=`echo $str|cut -c 1-4`
; ^; c- g p6 {5 U) s, V2 R: ? mm=`echo $str|cut -c 5-6`
' j9 w- `2 E3 Z dd=`echo $str|cut -c 7-8`
[, v) T: \) E3 o3 A0 ?9 { sav_dd=$days* }, q) [4 g# {% s5 c
days=`expr $days - $dd`
1 h1 r o1 r/ X; ^7 x" y while [ $days -ge 0 ]
% ?- ], b' G0 d( t do: q# Q. g1 m& D. J# ]
mm=`expr $mm - 1`% b" Y. w- s; i- Y
[ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`& Z7 m; j' I0 c! W9 G/ _' m
aaa=`cal $mm $yy`1 a, E# [ y, O
bbb=`echo $aaa|awk ’{print $NF}’`
) l6 g) J; C& ^* R% W days=`expr $days - $bbb`: a v: A6 L8 q6 b/ t' m/ w. w( F
done, B3 P5 D% K: L1 ~# y
dd=`expr 0 - $days`- Z* d' h3 z' A4 b% s/ o9 ?2 H
expr $dd : "^.$" > /dev/null && dd=0$dd: v, A! v8 R5 v- B6 h
expr $mm : "^.$" > /dev/null && mm=0$mm
( s1 [1 s& _8 E0 e echo $mm"_"$dd
- D4 @+ r" u7 a, P: E( ^/ \7 Q }
! R; r8 C, M- U 注释:Ksh下的函数,用于取得第n天前日月数
5 i; h$ Q9 U1 M* h& w todayDate=`date "+%Y%m%d"` ( V- y+ Q Y1 N: i! J. r
thisday="`GetPrevDate ${todayDate} 2`"
3 N# A# v' b' l% }) K 注释:用于取得前天的日月,形如08_08
' _; f8 P! `4 q3 t! l% S/ }' u$ a dmpfile="/sms/t_sms.dmp"- p) Z% y* P, _: u
注释:Dmp文件名称及路径
" R% B2 v% t, D, ^& M0 |: J logfile="/sms/t_sms_"$thisday".log"3 y9 k! i# r' B b. h U% y7 `. S
注释:备份日志名称及路径 ; i! k: k4 F, y) O. x
partitionno="t_sms:P"$thisday``
% J* ^( B$ {/ U; G" c exp sms/sms rows=y indexes=n compress=n buffer=204800000 direct=y feedback=100000
1 T) J& M; L( b j file=$dmpfile log=$logfile tables=$partitionno+ G0 ^6 ]5 `/ u2 X( a+ o/ Q N
注释:tables=$partitionno |