- 论坛徽章:
- 0
|
10可用积分
写了一个备份的脚本,有2个device同时运行。前面都还正常,可是到了往tape写文件的时候,“wait”不起作用了(脚本中红色标记的地方),直接就运行后面的命令,将tape move出来了,贴上log和脚本,老大们,帮忙看下,急。。。。
-------------------------------------------------------------------------------------------------------
/usr/bin/wait 19287 AND /usr/bin/wait 19286
/mnt/backup/GIS/gis.dump
/mnt/backup/CORP/CIS.dmp1
finished at Wed May 13 23:42:25 PDT 2009
-------------------------------------------------------------------------------------------------------
backup ended at Wed May 13 23:42:25 PDT 2009...
Moving changer Wed May 13 23:42:25 PDT 2009.....
Opening /dev/sg/c1t4l0
Enter tld commands (? returns help information)
Initiating MOVE_MEDIUM from address 128 to 257
MOVE_MEDIUM complete
Initiating MOVE_MEDIUM from address 129 to 264
MOVE_MEDIUM complete
Moving changer done at Wed May 13 23:44:18 PDT 2009
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
脚本:
[root@fcafsbkp2 backup] # cat tapebackup.sh
#!/bin/sh
MT=/usr/bin/mt
TAR=/usr/local/bin/tar
TAPE0=/dev/rmt/0n
TAPE1=/dev/rmt/1n
CHANGER=/dev/sg/c1t4l0
TLDTEST=/opt/openv_old/volmgr/bin/tldtest
SLEEP=/usr/bin/sleep
#NOTIFY="sa@xxxxx.com,dbabeijing@xxxxx.com"
NOTIFY="iva@xxxxx.com"
SUBJECT="Daily offsite backup of US at `hostname`!"
MAIL=/usr/bin/mailx
LOG=/root/backup/log/tapebackup.log
TIME=/usr/bin/time
WAIT=/usr/bin/wait
for i in 2 1 0
do
j=`expr $i + 1`
test -f $LOG.$i && mv $LOG.$i $LOG.$j
# echo $i
# echo $j
done
test -f $LOG && mv $LOG $LOG.0
exec 1>$LOG 2>$1
WEEKDAY=`date +%a`
case $WEEKDAY in
Mon)
SLOT0=7
SLOT1=14
;;
Tue)
SLOT0=1
SLOT1=8
;;
Wed)
SLOT0=2
SLOT1=9
;;
Thu)
SLOT0=3
SLOT1=10
;;
Fri)
SLOT0=4
SLOT1=11
;;
Sat)
SLOT0=5
SLOT1=12
;;
Sun)
SLOT0=6
SLOT1=13
;;
esac
echo "backup started at `date `..."
echo "Moving changer at `date`....."
$TLDTEST -r $CHANGER <<+
m s${SLOT0} d1
m s${SLOT1} d2
q
+
$SLEEP 20
echo "$MT -f $TAPE0 rewind"
$MT -f $TAPE0 rewind
$SLEEP 20
echo "$MT -f $TAPE1 rewind"
$MT -f $TAPE1 rewind
$SLEEP 20
echo "Moving changer done at `date`"
LINE0="`ls /mnt/backup/CORP/CIS.dmp?` `ls /mnt/backup/CORP/HIS.dmp?` `ls /mnt/backup/CORP/syslogins.out` `ls /mnt/backup/CORP/*.dmp` `ls /mnt/backup/CORP2/*.dmp` `ls /mnt/backup/DWS/DW_PROD.dmp?` `ls /mnt/backup/DWS/*.dmp` `ls /mnt/backup/EU/*.dmp` `ls /mnt/backup/KB/*.dmp` `ls /mnt/backup/L2S/*.dmp` `ls /mnt/backup/L2SBVI/*.dmp` `ls /mnt/backup/EU/*.dmp` `ls /mnt/backup/PRICE/*.dmp
` `ls /mnt/backup/UNF/DDL.dmp`"
LINE1="`ls /mnt/backup/GIS/gis.dump` `ls /mnt/backup/MFGPRO/*.0.tar` `ls /mnt/backup/SFCS/fullbackup/0/*`"
echo
echo
echo "-------------------------------------------------------------------------------------------------------"
echo "$TAR cvf $TAPE0 $LINE0 at `date`"
echo
echo
ls -lh $LINE0
echo
echo "-------------------------------------------------------------------------------------------------------"
echo
echo "$TAR cvf $TAPE1 $LINE1 at `date`"
echo
echo
ls -lh $LINE1
echo
echo "-------------------------------------------------------------------------------------------------------"
$TAR cvf $TAPE0 $LINE0 &
TASK0=$!
$TAR cvf $TAPE1 $LINE1 &
TASK1=$!
echo "$WAIT $TASK1 AND $WAIT $TASK0"
$WAIT $TASK1
$WAIT $TASK0
echo
echo "finished at `date`"
echo "-------------------------------------------------------------------------------------------------------"
echo "backup ended at `date `..."
echo "Moving changer `date`....."
$SLEEP 10
$TLDTEST -r $CHANGER <<+
m d1 s${SLOT0}
m d2 s${SLOT1}
q
+
echo "Moving changer done at `date`"
$MAIL -s"$SUBJECT" $NOTIFY < $LOG
[ 本帖最后由 lvan6750 于 2009-5-14 15:40 编辑 ] |
|