- 论坛徽章:
- 1
|
SCO关于自动备份的两个问题?
数据假设放在 /usr/data 目录中
备份放在 /usr/back 目录中
可以用下列脚本实现
week=`date +%w`
cd /usr/back
if [ ! -d $week ]; then
mkdir $week
fi
cd $week
cp /usr/data/* .
=========
具体实现可以参考我们的备份数据脚本。(放在crontab)里面,定时每日执行。 参看附件 autoback.sh
=====================================
- #!/bin/sh
- #
- # 对公、储蓄数据日终备份 用于系统自动定时处理
- # /u/01, /u/02, ... /u/8208598 /u/8205103...
- # spender, 2003/7/13
- #
- LOGFILE=/u/databack.log
- DiskBackPath=/u
- TarDevice=/dev/rct0
- writelog()
- {
- Msg=$*
- ymd=`date +"20%y/%m/%d %H:%M:%S"`
- echo "$ymd| ${Msg}">;>;$LOGFILE
- return 0
- }
- BSistoday()
- {
- sh=$1
- tmd=`date +"%b %d"`
- [ -r /usr/$sh/main-f/fmi ] || {
- writelog "Warning: BS $sh no data, skip..."
- return 1
- }
- fmd=`l /usr/$sh/main-f/fmi|awk '{print $6,$7}'`
- [ "$tmd" = "$fmd" ] || {
- writelog "Warning: BS $sh data not update, skip..."
- return 1
- }
- return 0
- }
- CXistoday()
- {
- sh=$*
- tmd=`date +"%b %d"`
- [ -r /usr/chuxu/$sh/afsj.dat ] || {
- writelog "Warning: Chuxu $sh no data, skip..."
- return 1
- }
- fmd=`l /usr/chuxu/$sh/afsj.dat|awk '{print $6,$7}'`
- [ "$tmd" = "$fmd" ] || {
- writelog "Warning: Chuxu $sh data not update, skip..."
- return 1
- }
- return 0
- }
- BackupCX()
- {
- sh=$1
- msg="Chuxu backup $sh ..."
- Date=`date +"%m%d"`
- lsh=`expr substr $sh 5 3`
- tarfile="cx${lsh}_${Date}.tar"
- cd $DiskBackPath/cxrzbf
- [ -d $sh ] || mkdir $sh
- rm -rf ./$sh/*
- [ -f "$tarfile.gz" ] && rm "$tarfile.gz"
- cp -R /usr/chuxu/$sh/* ./$sh
- tar cf $tarfile ./$sh
- gzip $tarfile
- msg="$msg Done!"
- writelog "$msg"
- return 0
- }
- BackupBS()
- {
- sh=$1
- cd $DiskBackPath/bsrzbf
- msg="BS backup $sh ..."
- Date=`date +"%m%d"`
- tarfile="bs${sh}_${Date}.tar"
- [ -d $sh ] || mkdir $sh
- rm -f /u/bsrzbf/$sh/*
- [ -f "$tarfile.gz" ] && rm "$tarfile.gz"
- cp /usr/$sh/main-f/* ./$sh
- cp /usr/$sh/work-f/* ./$sh
- cp /usr/$sh/append-f/* ./$sh
- cp /usr/$sh/tmp/* ./$sh
- cp /usr/$sh/small-f/* ./$sh
- tar cf $tarfile ./$sh
- gzip $tarfile
- msg="$msg Done!"
- writelog "$msg"
- return 0
- }
- echo "Backup today data [bs & chuxu]...\c">;&2
- trap '' 0 1 2 3 9 10 15
- [ -d $DiskBackPath/bsrzbf ] || mkdir $DiskBackPath/bsrzbf
- [ -d $DiskBackPath/cxrzbf ] || mkdir $DiskBackPath/cxrzbf
- writelog "============== Backup Begin ============================"
- # 备份数据
- cd /u
- ls | while read fn rest
- do
- [ -f $fn ] && continue
- [ `expr $fn : '^[0-9]*' ` -eq 2 ] && {
- BSistoday $fn && ( BackupBS $fn )
- }
- done
- cd /usr/chuxu
- ls | while read fn rest
- do
- [ -f $fn ] && continue
- [ `expr $fn : '^[0-9]*' ` -eq 7 ] && ( CXistoday $fn && ( BackupCX $fn ) )
-
- done
- ################# Tar to Disk ###########################
- tar cf $TarDevice $DiskBackPath/bsrzbf/*.tar.gz $DiskBackPath/cxrzbf/*.tar.gz 1>;/dev/null 2>;/dev/null
- if [ $? -eq 0 ]; then
- writelog "Write data to tape, Ok!"
- else
- writelog "Error: \007write data to tape failed !!!"
- fi
- writelog "-------------- End of Backup ---------------------------\n"
- echo "Done!">;&2
复制代码 |
|