Szia,
Szüksége, hogy biztonsági másolat készítése az egyik rendszerről a szalagos egység egy másik rendszer. Miért, hát azért, mert a helyi szalagos eszköz töltve, és én desparately szükség van a biztonsági mentés befejeződött inkább előbb, mint egyáltalán nem.
A kérdésem az, hogy hogyan tudom beállítani az alábbi kódot engedje meg, hogy végezze el a
cpio parancsot, hogy írjon az
everest_backup: a szerver / dev/nrStp0 készülék?
Kód:
:
state=`cat /etc/MSTATE`; if [ $state != "master" ]; then exit 0;fi
umask 0
DIRECTORY=/u/backup
export DIRECTORY
DEVICE1=everest_backup:/dev/rStp0
DEVICE2=everest_backup:/dev/nrStp0
CPIOCMD="cpio -ovcB > $DEVICE2"
FILE=nite`date '+%d'`
STATUS="OK"
export FILE
## **** Comment the below two(2) lines ONLY when testing ****
#/u/everest/cron/rcp_trans_logs_daily.sh
#/u1/everestnz/cron/rcp_trans_logs_daily.sh
# If a different directory or file name is required for the backup,
# changed the above lines only.
# Check for the existance of backup directory.
# If it doesn't exist, create it. The logfile will be created automatically.
exit_print ()
{
if [ $* -gt 0 ]
then
STATUS=FAULTY
fi
# echo "Exit Code: $*" >> $LOGFILE
cat $LOGFILE | \
mail -s"$STATUS backup of TVL(EVEREST) on Everest-backup." ops@somedomain.com.au
exit 0
}
if [ ! -d $DIRECTORY ]
then
mkdir $DIRECTORY
fi
LOGFILE=$DIRECTORY/$FILE
LOGFILE_DETAIL=$DIRECTORY/"$FILE"_DETAIL
# Remove all core and enc files from directories being backed up.
# find /usr/acct \( -name core -o -name '*.enc' \) -print | xargs /bin/rm -f &
# Remove all core from system.
# The following command has been # out as it took over 1&half hours to complete
# run from cron every week instead
#find / -name core -print | xargs /bin/rm -f
# Remove enc files from directories being backed up.
echo "" > $LOGFILE
echo "" > $LOGFILE_DETAIL
echo "Backup of everest commenced "`date` >> $LOGFILE
echo "" >> $LOGFILE
# Retension tape
echo "** Backup Start using cpio command:"
echo "** '"$CPIOCMD"'."
echo "** Rewinding Tape Device: "$DEVICE1
tape rewind $DEVICE1
echo "** Rewinding Tape Device: "$DEVICE1
tape rewind $DEVICE1
echo "** Sleeping (20)"
sleep 20
echo "** Rewinding Tape Device: "$DEVICE1
tape rewind $DEVICE1
ERROR="$?"
echo "** Error Result of Rewind: "$ERROR
case $ERROR in
0) ;;
*) echo " " >> $LOGFILE
echo "**** WARNING ****" >> $LOGFILE
echo "Cannot retension tape. Backup Aborted." >> $LOGFILE
echo " Error Status = $ERROR" >> $LOGFILE
exit_print $ERROR ;;
esac
cd /
marker=0
errcount=0
# "/x1" used for testing.
#for shit in "/x1"
#for shit in "/" "/stand" "/u" "/u1" "/u2"
#for shit in "/" "/stand" "/u" "/u1" "/u2" "/x1"
for shit in "/x1"
do
echo "**** Changing To Directory: "$shit
cd $shit
echo "**** File marker $marker filesystem "$shit
echo "File marker $marker filesystem $shit" >> $LOGFILE
date >> $LOGFILE
#ps -ef >> $LOGFILE_DETAIL
#fuser $shit >> $LOGFILE_DETAIL
echo " " >> $LOGFILE_DETAIL
if [ `date +'%u'` -ge 1 -a `date +'%u'` -le 5 ]
then
#incremental backup mon to fri
echo "**** Backup of "$shit" Commenced. ( "`date '+%R'`" )"
find . -mtime -14 -mount -depth -print | \
$CPIOCMD \
2>> $LOGFILE_DETAIL
echo "**** Backup of "$shit" Completed.( "$?" )"
## - Revert to Full-Backups as of 19/04/02 - requested by Anish (TVL)
## find . -mount -depth -print |cpio -ovcB >$DEVICE1 \
## 2>> $LOGFILE_DETAIL
## find . -mount -depth -print | \
## cpio -ovcC32768 | dd of=$DEVICE1 conv=bmode bs=32k \
## 2>> $LOGFILE_DETAIL
else
#full backup sat/sun
##find . -mount -depth -print | \
## cpio -ovcB >$DEVICE1 2>> $LOGFILE_DETAIL
find . -mount -depth -print | \
cpio -ovcC32768 | dd of=$DEVICE1 conv=bmode bs=32k \
2>> $LOGFILE_DETAIL
fi
ERROR="$?"
marker=`expr $marker + 1`
errcount=`expr $errcount + $ERROR`
done
ERROR=$errcount
echo " " >> $LOGFILE
# Test for success of backup.
case $ERROR in
0) echo "Backup successful .... Phew!" >> $LOGFILE ;;
*) echo "** WARNING ** Backup unsuccessful ended "`date` >> $LOGFILE
case $ERROR in
2) echo " PROBLEM WITH TAPE DRIVE" >> $LOGFILE
exit_print $ERROR ;;
4) echo " INTERRUPTED SYSTEM CALL" >> $LOGFILE
exit_print $ERROR ;;
5) echo " I/O ERROR" >> $LOGFILE
exit_print $ERROR ;;
6) echo " NO SUCH DEVICE1 OR ADDRESS" >> $LOGFILE
exit_print $ERROR ;;
7) echo " ARGUMENT LIST TOO LONG" >> $LOGFILE
exit_print $ERROR ;;
11) echo " NO MORE PROCESSES" >> $LOGFILE
exit_print $ERROR ;;
12) echo " NOT ENOUGH SPACE" >> $LOGFILE
exit_print $ERROR ;;
13) echo " PERMISSION DENIED" >> $LOGFILE
exit_print $ERROR ;;
28) echo " NO SPACE ON DEVICE1" >> $LOGFILE
exit_print $ERROR ;;
*) echo " ** Aborting **" >> $LOGFILE
echo " Error Status = $ERROR" >> $LOGFILE
exit_print $ERROR ;;
esac ;;
esac
echo " " >> $LOGFILE
echo " End Time: "`date '+%H:%M:%S'` >> $LOGFILE
echo " " >> $LOGFILE
echo "** Getting Status of Tape Device: "$DEVICE1
tape status $DEVICE1 >> $LOGFILE
echo "** Rewinding Tape Device: "$DEVICE1
tape rewind $DEVICE1
echo "** Unloading Tape Device: "$DEVICE1
tape unload $DEVICE1
echo " Rewind completed: "`date '+%H:%M:%S'` >> $LOGFILE
echo " " >> $LOGFILE
# Test for successful read of tape. If not successful, end script.
echo " " >> $LOGFILE
echo "BACKUP OF BOOKING ENGINE COMPLETED AT "`date` >> $LOGFILE
exit_print 0