NTBackup结合Solaris shell script执行自动备份

更新时间:2023-03-08 07:02:54 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

prompt

cd \ cd ${BACKUP_OP} cd \ cd \ cd \ cd \ cd \ cd \

mget backup*.log rm backup*.log quit END }

################################################

# Several Functions For Function \# Start

################################################

no_log() {

date>${LOG_PATH}/chk_log_result

echo \

if grep \ev/null; then

cat ${LOG_PATH}/get_log_result | /usr/ucb/mail -s \

et NTBackup log from ${W2K_SRVR}\ exit 1 else

if grep \esult>/dev/null; then

cat ${LOG_PATH}/get_log_result | /usr/ucb/mail -s \

led to get NTBackup log from ${W2K_SRVR}\ILLIST}

exit 1 else

echo \T server, please contact ICIL suppor

t.\\n\

cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \

in ${W2K_SRVR} on `date '+%b %e %y'`\ST}

fi fi }

small_log() {

date > ${LOG_PATH}/chk_log_result

echo \

if grep \g>/dev/null; then

if grep \e backup destination was specified\${log}>/dev/null; then

(echo \ echo \

echo \n Error\

echo \e 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 \figuration Error\ else

if grep \vailable\n

(echo \RVR}\

echo \

echo \erwritable media into the drive.\

echo \ia includes scratch, blank, and re cyclable media.\

echo \t depending on the current Media Ov

erwrite Protection setting, imported and allocated media may be overwritable as well.\

echo \

echo \erted, 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 \kup: Media insert\ else

cat ./tmp_log >> ${LOG_PATH}/chk_log_result

echo \CIL supporter\log_result

cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \

kup: No Operation in ${W2K_SRVR} on `date '+%b %e %y'`\ fi fi else

cat ./tmp_log >> ${LOG_PATH}/chk_log_result

echo \g backup,Please contact ICIL support \

cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \

in ${W2K_SRVR} on `date '+%h %d %Y'`\ST}

fi }

normal_log() {

date > ${LOG_PATH}/chk_log_result

echo \

cat ./tmp_log >> ${LOG_PATH}/chk_log_result if [ `grep -i \lt | wc -l` -eq 0 ]; then

cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \

ed in ${W2K_SRVR} on `date '+%h %d %Y'`\LLIST}

else echo \

echo \g backup,Please contact ICIL support \

cat ${LOG_PATH}/chk_log_result | /usr/ucb/mail -s \

in ${W2K_SRVR} on `date '+%h %d %Y'`\ST} 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 \

echo \-----------\

echo \ng\

echo \

echo \our W2K Server by a cleaning tape

before you insert the today's backup tape\ ) | /usr/ucb/mail -s \rive Need Cleaning\fi }

insert_tape() { (date

echo \

echo \---\

echo \echo \

echo \

echo \ackup today.\

) | /usr/ucb/mail -s \equired\}

######################## # Main Program

########################

# Show Usage

if [ $# -lt 3 ]; then

echo \R> [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 \r: ${W2K_SRVR} \\n\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

[/code:1:0db8384586]

本文来源:https://www.bwwdw.com/article/k2z.html

Top