NTBackup结合Solaris shell script
执行自动备份
http://www.chinaunix.net 作者:陈小奚 发表于:2004-01-06
17:54:18
前提:
1,Windows 2000服务器,磁带机安装正确,驱动程序正确,可以正确显示在RSM内。
2,Windows 2000 support tools, Windows 2000 resource kit.
3,Solaris 8 服务器,script运行正常,crontab运行正常。
设置:
1,Windows 2000 服务器,安装Windows 2000 support tools, Windows 2000 resource kit。
2,为Windows 2000安装rsh服务, 设置Solaris服务器为信任主机。
3,以特定帐号进入,运行ntbackup, 保存好备份文件列表。
4,设定适当的bat文件来运行NTBackup。
Dailybackup.bat
-------------------------------------------------------------------------------------- [code:1:0db8384586]@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 \') do set dt=%%i-%%j-%%k-%%l
for /f \=-%%i
set tm=%tm::=-% set dtt=%dt%%tm%
echo -------------------------->>%ourlog% d:\\icil\\bin\\now>>%ourlog%
REM There are usually 2 types of media: \DS\a.
echo NTBackup starting>>%ourlog%
ntbackup.exe backup \s\\backupadmin\\Local Settings\\Application Data\\Microsoft\\Windows NT\\NTbackup\\data\\filelists.bks\ily Backup %dtt%\m daily /j \
RSM eject /PF \astart
d:\\icil\\bin\\now>>%ourlog%
echo NTBackup finished, ejected the tape>>%ourlog%
exit[/code:1:0db8384586]
4, Solaris服务器,设定好相应的Shell script, 设定相应的Crontab项。
Crontab
[code:1:0db8384586]
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[/code:1:0db8384586]
NTBackup_unix
[code:1:0db8384586]#!/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 \
echo \t, 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
[/code:1:0db8384586]
chk_w2kbkup_log # Illusion Chen
[code:1:0db8384586] #!/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=`grep \mba/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 \st>/dev/null; then
(echo \ echo \
echo \e`\
echo \ocess\
) >> ${LOG_PATH}/chk_log_result
cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \on Error\fi
if grep \ist>/dev/null; then
(echo \
echo \ echo \ocess\
) >> ${LOG_PATH}/chk_log_result
cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \on Error\fi
if grep \t>/dev/null; then
(echo \
echo \l running\
echo \ ) >> ${LOG_PATH}/chk_log_result
cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \still running\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