- 論壇徽章:
- 0
|
前提:
1,Windows 2000服務(wù)器,磁帶機(jī)安裝正確,驅(qū)動(dòng)程序正確,可以正確顯示在RSM內(nèi)。
2,Windows 2000 support tools, Windows 2000 resource kit.
3,Solaris 8 服務(wù)器,script運(yùn)行正常,crontab運(yùn)行正常。
設(shè)置:
1,Windows 2000 服務(wù)器,安裝Windows 2000 support tools, Windows 2000 resource kit。
2,為Windows 2000安裝rsh服務(wù), 設(shè)置Solaris服務(wù)器為信任主機(jī)。
3,以特定帳號(hào)進(jìn)入,運(yùn)行ntbackup, 保存好備份文件列表。
4,設(shè)定適當(dāng)?shù)腷at文件來(lái)運(yùn)行NTBackup。
Dailybackup.bat
--------------------------------------------------------------------------------------
- @echo on
- REM Run in Windows 2000
- REM Illusion Chen
- REM ourlog is just for your reference
- SET ourlog=D:\icil\our_log.log
- date /t>%ourlog%
- echo -------------------------->>%ourlog%
- d:\icil\bin\now>>%ourlog%
- echo The RSM library:>>%ourlog%
- RSM view /tlibrary /guiddisplay>>%ourlog%
- echo -------------------------->>%ourlog%
- echo The LIBRARY We Used to do NTBackup is:>>%ourlog%
- RSM refresh /LF%1>>%ourlog%
- d:\icil\bin\sleep 60
- for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i-%%j-%%k-%%l
- for /f "Tokens=1" %%i in ('time /t') do set tm=-%%i
- set tm=%tm::=-%
- set dtt=%dt%%tm%
- echo -------------------------->>%ourlog%
- d:\icil\bin\now>>%ourlog%
- REM There are usually 2 types of media: "4mm DDS" or "DLT", may check if it is specific media.
- echo NTBackup starting>>%ourlog%
- ntbackup.exe backup "@C:\Documents and Settings\backupadmin\Local Settings\Application Data\Microsoft\Windows NT\NTbackup\data\filelists.bks" /n "Win2k Daily Backup %dtt%" /d "Win2k Daily Backup %dtt%" /v:yes /r:no /rs:no /hc:on /m daily /j "%dtt%" /l:f /p "4mm DDS" /UM
- RSM eject /PF "Win2k Daily Backup %dtt% - 1" /astart
- d:\icil\bin\now>>%ourlog%
- echo NTBackup finished, ejected the tape>>%ourlog%
- exit
復(fù)制代碼
4, Solaris服務(wù)器,設(shè)定好相應(yīng)的Shell script, 設(shè)定相應(yīng)的Crontab項(xiàng)。
Crontab
- 0 20 * * 1-5 /icil/server_common_lib/etc/NTBackup_unix xxxnt01
- 0 7 * * 2-6 /icil/server_common_lib/etc/chk_w2kbkup_log xxxnt01 backupadmin Who1VBA icil illusion@icil.net
復(fù)制代碼
NTBackup_unix
- #!/bin/sh
- ###############################################
- # RSH W2K server to run ntbackup from Solaris
- # Illusion Chen
- ###############################################
- W2K_SRVR=$1
- Today=`date +%w`
- # Show Usage
- if [ $# -lt 1 ]; then
- echo "Usage: `basename $0` <W2K_SRVR>"
- echo "Comment: According to the script, W2K Server will run NTBackup scr
- ipt at 23:10"
- exit
- fi
- # Main Program
- #if [ ${Today} -eq 0 -o ${Today} -eq 6 ]; then
- # exit
- # else
- if [ ${Today} -eq 5 ]; then
- rsh ${W2K_SRVR} 'AT 23:10 /interactive D:\icil\lib\fullbackup.bat'
- else
- rsh ${W2K_SRVR} 'AT 23:10 /interactive D:\icil\lib\dailybackup.bat'
- fi
- #fi
復(fù)制代碼
chk_w2kbkup_log
# Illusion Chen
- #!/bin/sh
- #. /.profile > /dev/null
- ################################################################
- #
- # Script for Checking Windows 2000 Backup log - Unix side
- # Origin: Julian, Feb 05, 2001
- # Author: Illusion Chen
- # Oct 20th, 2003
- # Run on Solaris 8
- #
- ################################################################
- # Please check README for reference
- ################################################################
- W2K_SRVR=$1
- BACKUP_OP=$2
- PASSWD=$3
- DOMAIN=$4
- LOC_CONTACT=$5
- MAILLIST=icil_sup@icil.net,${LOC_CONTACT}
- NT_DRIVER=C$
- #NT_LOG_PATH=
- LOG_PATH=/icil/log/ntbackup
- log=
- if [ "${DOMAIN}x" = "x" ]; then
- DOMAIN=`grep "workgroup" /usr/local/samba/lib/smb.conf | grep -v ';' | g
- rep -v '#' | awk '{ print $NF }'`
- fi
- # Functions
- # Logs in /icil/log/ntbackup for your reference
- chk_process()
- {
- date > ${LOG_PATH}/process_list
- rsh ${W2K_SRVR} 'D:\icil\bin\tlist.exe' >> ${LOG_PATH}/process_list
- if grep "Access Denied" ${LOG_PATH}/process_list>/dev/null; then
- (echo "Server: ${W2K_SRVR}"
- echo "Configuration Error"
- echo "RSH: Access Denied From `hostname`"
- echo "RSH: Failed to check NTBackup process"
- ) >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Configurati
- on Error" ${MAILLIST}
- fi
- if grep "not recognized" ${LOG_PATH}/process_list>/dev/null; then
- (echo "Server: ${W2K_SRVR}"
- echo "RSH: Command not recognized"
- echo "RSH: Failed to check NTBackup process"
- ) >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Configurati
- on Error" ${MAILLIST}
- fi
- if grep "NTBACKUP.EXE" ${LOG_PATH}/process_list>/dev/null; then
- (echo "Server: ${W2K_SRVR}"
- echo "Error: NTBackup process is still running"
- echo "Please contact ICIL support"
- ) >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Process is
- still running" ${MAILLIST}
- fi
- }
- get_log()
- # May port the output about smbclient to ${LOG_PATH}\get_log_result.
- {
- cat <<-END | /usr/local/samba/bin/smbclient '\\'${W2K_SRVR}'\'${NT_DRIVER}'' ${P
- ASSWD} -U${BACKUP_OP} -W${DOMAIN} -E
- prompt
- cd "Documents and Settings"
- cd ${BACKUP_OP}
- cd "Local Settings"
- cd "Application Data"
- cd "Microsoft"
- cd "Windows NT"
- cd "NTBackup"
- cd "data"
- mget backup*.log
- rm backup*.log
- quit
- END
- }
- ################################################
- # Several Functions For Function "chk_log"
- # Start
- ################################################
- no_log()
- {
- date>${LOG_PATH}/chk_log_result
- echo "" >> ${LOG_PATH}/chk_log_result
- if grep "failed" ${LOG_PATH}/get_log_result>/dev/null; then
- cat ${LOG_PATH}/get_log_result | /usr/ucb/mail -s "NTBackup: Failed to g
- et NTBackup log from ${W2K_SRVR}" ${MAILLIST}
- exit 1
- else
- if grep "ERRDOS" ${LOG_PATH}/get_log_result>/dev/null; then
- cat ${LOG_PATH}/get_log_result | /usr/ucb/mail -s "NTBackup: Fai
- led to get NTBackup log from ${W2K_SRVR}" ${MAILLIST}
- exit 1
- else
- echo "No backup log was found from NT server, please contact ICIL suppor
- t.\n" >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Job failed
- in ${W2K_SRVR} on `date '+%b %e %y'`" ${MAILLIST}
- fi
- fi
- }
- small_log()
- {
- date > ${LOG_PATH}/chk_log_result
- echo "" >> ${LOG_PATH}/chk_log_result
- if grep "operation was not performed" ./tmp_log>/dev/null; then
- if grep "an invalid Removable Storage backup destination was specified"
- ${log}>/dev/null; then
- (echo "Server: ${W2K_SRVR}"
- echo ""
- echo "NTBackup: Configuration Error"
- echo "Please check whether the backup destination is specified \
- n"
- echo "---------------------------------------------------------"
- ) >> ${LOG_PATH}/chk_log_result
- cat ./tmp_log >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Con
- figuration Error" ${MAILLIST}
- else
- if grep "no unused media was available" ./tmp_log>/dev/null; the
- n
- (echo "Server: ${W2K_SRVR}"
- echo ""
- echo "Please insert overwritable media into the drive."
- echo "Overwritable media includes scratch, blank, and re
- cyclable media."
- echo "Please note that depending on the current Media Ov
- erwrite Protection setting, imported and allocated media may be overwritable as
- well."
- echo ""
- echo "If media was inserted, please check the Removable
- Storage Library \n"
- echo "--------------------------------------------------
- -------"
- ) >> ${LOG_PATH}/chk_log_result
- cat ./tmp_log>> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBac
- kup: Media insert" ${MAILLIST}
- else
- cat ./tmp_log >> ${LOG_PATH}/chk_log_result
- echo "Please contact ICIL supporter" >> ${LOG_PATH}/chk_
- log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBac
- kup: No Operation in ${W2K_SRVR} on `date '+%b %e %y'`" ${MAILLIST}
- fi
- fi
- else
- cat ./tmp_log >> ${LOG_PATH}/chk_log_result
- echo "There are several errors during backup,Please contact ICIL support
- " >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Job failed
- in ${W2K_SRVR} on `date '+%h %d %Y'`" ${MAILLIST}
- fi
- }
- normal_log()
- {
- date > ${LOG_PATH}/chk_log_result
- echo "" >> ${LOG_PATH}/chk_log_result
- cat ./tmp_log >> ${LOG_PATH}/chk_log_result
- if [ `grep -i "error" ${LOG_PATH}/chk_log_result | wc -l` -eq 0 ]; then
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Job succeed
- ed in ${W2K_SRVR} on `date '+%h %d %Y'`" ${MAILLIST}
- else
- echo ""
- echo "There are several errors during backup,Please contact ICIL support
- " >> ${LOG_PATH}/chk_log_result
- cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s "NTBackup: Job failed
- in ${W2K_SRVR} on `date '+%h %d %Y'`" ${MAILLIST}
- fi
- }
- ###########
- # End
- ###########
- # Chk_log
- chk_log()
- {
- if [ ! -f backup*.log ]; then
- no_log
- exit 1
- else
- chmod 666 ./backup*.log
- logs=`/usr/bin/ls ./backup*.log`
- for log in ${logs}; do
- SIZE=`wc ${log} | awk '{print $3}'`
- cat ${log} | /usr/ucb/tr -c '[a-z][A-Z][0-9][SPACE]' > ./tmp_log
- if [ ${SIZE} -eq 0 ]; then
- no_log
- fi
- if [ ${SIZE} -gt 0 -a ${SIZE} -le 500 ]; then
- small_log
- fi
- if [ ${SIZE} -gt 500 ]; then
- normal_log
- fi
- done
- fi
- }
- # Tape Alert
- clean_tape()
- {
- if [ `date '+%w'` -eq 5 ]; then
- (date
- echo "Server: ${W2K_SRVR}"
- echo "-------------------------------------------"
- echo "NTBackup: Tape Drive Need Cleaning"
- echo ""
- echo "Please clean the tape drive of your W2K Server by a cleaning tape
- before you insert the today's backup tape"
- ) | /usr/ucb/mail -s "NTBackup: Tape Drive Need Cleaning" ${LOC_CONTACT}
- fi
- }
- insert_tape()
- {
- (date
- echo "Server: ${W2K_SRVR}"
- echo "-------------------------------------------"
- echo "NTBackup: Media Insert Required"
- echo ""
- echo "This just is a kindly notification."
- echo "Please remember to insert the tape for backup today."
- ) | /usr/ucb/mail -s "NTBackup: Media Insert Required" ${LOC_CONTACT}
- }
- ########################
- # Main Program
- ########################
- # Show Usage
- if [ $# -lt 3 ]; then
- echo "Usage: `basename $0` <W2K_SRVR> <BACKUP_OP> <PASSWD> [DOMAIN] [LOC
- _CONTACT]"
- exit 2
- fi
- # check LOG_PATH
- if [ ! -d ${LOG_PATH} ]; then
- mkdir ${LOG_PATH}
- fi
- touch ${LOG_PATH}
- chk_process
- date > ${LOG_PATH}/get_log_result
- echo "Geting the NTBackup log From Win2k Server: ${W2K_SRVR} \n" >> ${LOG_PATH}/
- get_log_result
- get_log >> ${LOG_PATH}/get_log_result
- chk_log
- mv backup*.log ${LOG_PATH}/
- find ${LOG_PATH} -name backup*.log -mtime +14 -exec 'rm' {} \;
- clean_tape
- insert_tape
復(fù)制代碼 |
|