;:KVIS:Edited on 04/12/2006 09:38:57 by Pax.|E:KVIE:
; This is a test script for moving the archive data
;
;--------------------------------------------------------------------------------------------------------------------
;
;---- Script version 0.2
;---- Created by Pax
;---- Last edit date 04/12/2006 by Pax
;---- Last edit date 12/5/2006 by NTDOC
;
;---- Declare Variables -------
;
If Not @LogonMode
Break On
Else
Break Off
EndIf
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('NoMacrosInStrings','On')
$SO=SetOption('WrapAtEOL','On')
Dim $SCRIPTROOT, $REPORTSTORE, $ARCHIVESTORE, $REPORTUSER, $ARCHIVEUSER,
Dim $REPORTDRIVE, $ARCHIVEDRIVE, $ARCHIVE, $ARCHIVELOG
Dim $EmailServer, $Sender, $SupportEmail, $EmailAddress
Dim $USERPASS
$SCRIPTROOT = '\\server1\path\'
$REPORTSTORE = 'server2path'
$ARCHIVESTORE = 'server3path'
$REPORTUSER = 'domain1user'
$ARCHIVEUSER = 'domain2user'
$REPORTDRIVE = 'I:'
$ARCHIVEDRIVE = 'J:'
$ARCHIVE = Trim(Join(Split(@DATE,'/'),'-'))+'_'+Trim(Join(Split(@TIME,':'),''))
$ARCHIVE ?
$ARCHIVELOG = $ARCHIVEDRIVE + 'LOGS' + $ARCHIVE + ".LOG"
$ARCHIVELOG ?
$EmailServer = 'our.emailserver.net'
$Sender = 'sender@@emailserver.net'
$SupportEmail = 'support@@emailserver.net'
$EmailAddress = 'recipient@@emailserver.net'
;
;---- If the password for the REPORTUSER account changes on server2, change the password on the ARCHIVEUSER account,
;---- and update the password in this script. Without this the script will fail
;
$USERPASS = 'password'
;
;---- Mapping Archive drive first to create log file
;
"Mapping the Archive Drive" ?
Dim $Err, $SErr
USE $ARCHIVEDRIVE + $ARCHIVESTORE /USER:$ARCHIVEUSER /PASSWORD:$USERPASS
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
'....Done' ?
ELSE
'..Failed: ' + $SErr ?
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Archive_Mapping_failure -server " + $EMAILSERVER)
Quit $Err
ENDIF
;
Dim $VARSET
$VARSET = OPEN(1, $ARCHIVESTORE + 'LOGS' + $ARCHIVE + '.LOG', 5)
@DATE ?
$VARSET = WRITELINE (1, 'The current date is ' + @DATE + @CRLF)
;
;---- Do drive mapping for Report drive to move the data
;
$VARSET = WRITELINE (1, 'Mapping the Report Drive')
Dim $Err, $SErr
USE $REPORTDRIVE + $REPORTSTORE /USER:$REPORTUSER /PASSWORD:$USERPASS
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
"....Done" ?
$VARSET = WRITELINE(1, '....Done' + @CRLF)
ELSE
"..Failed: " + $SErr ?
$VARSET = WRITELINE(1, '..Failed' + @CRLF)
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Report_Mapping_failure -server " + $EMAILSERVER)
Quit $Err
ENDIF
"Creating current date folder" ?
$VARSET = WRITELINE (1, 'Creating current date folder')
Dim $Err, $SErr
MD $ARCHIVEDRIVE + '' + $ARCHIVE
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
'....Done' ?
$VARSET = WRITELINE(1, '....Done' + @CRLF)
ELSE
'..Failed: ' + $SErr ?
$VARSET = WRITELINE(1, '..Failed' + @CRLF)
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Archive_directory_creation_failure -server " + $EMAILSERVER)
Quit $Err
ENDIF
$VARSET = WRITELINE (1, 'Compressing current KPI data on Report Drive')
Shell ("%comspec% /c " + $SCRIPTROOT + "\rar.exe a -r -t -y " + $REPORTDRIVE + "\" + $ARCHIVE + ".Rar " + $REPORTDRIVE + "\*")
$VARSET = WRITELINE (1, 'Copying report to current date folder')
Dim $Err, $SErr
COPY $REPORTDRIVE + '' + $ARCHIVE + '.Rar' $ARCHIVEDRIVE + '' + $ARCHIVE
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
'....Done' ?
$VARSET = WRITELINE(1, '....Done' + @CRLF)
ELSE
'..Failed: ' + $SErr ?
$VARSET = WRITELINE(1, '..Failed' + @CRLF)
$VARSET = WRITELINE(1, GetDiskSpace ($ARCHIVEDRIVE) + @CRLF)
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Archive_Mapping_failure -server " + $EMAILSERVER)
Quit $Err
ENDIF
;
;---- Compare copied filesizes
;
$REPORTFILE = GetFileSize ($REPORTDRIVE + '' + $ARCHIVE + '.rar') /1024
$VARSET = WRITELINE (1, 'Report RAR file size is ' + $REPORTFILE + @CRLF)
$ARCHIVEFILE = GetFileSize ($ARCHIVEDRIVE + '' + $ARCHIVE + '' + $ARCHIVE + '.rar') /1024
$VARSET = WRITELINE (1, 'Archive rar file size is ' + $ARCHIVEFILE + @CRLF)
If $REPORTFILE <> $ARCHIVEFILE
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s File_Copy_Error -server " + $EMAILSERVER)
ENDIF
;
;---- Extracting files onto Archive
;
$VARSET = WRITELINE (1, 'Extracting ' + $ARCHIVEDRIVE + "\" + $ARCHIVE + "\" + $ARCHIVE + ".rar" + @CRLF)
Dim $Err, $SErr
Shell ("%comspec% /c " + $SCRIPTROOT + "\unrar.exe e -r " + $ARCHIVEDRIVE + "\" + $ARCHIVE + "\" + $ARCHIVE ".rar " + $ARCHIVEDRIVE + "\" + $ARCHIVE + "\" )
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
'....Done' ?
$VARSET = WRITELINE(1, '....Done' + @CRLF)
ELSE
'..Failed: ' + $SErr ?
$VARSET = WRITELINE(1, '..Failed' + @CRLF)
$VARSET = WRITELINE(1, GetDiskSpace ($ARCHIVEDRIVE) + @CRLF)
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Issue_Extracting_Files_From_Archive -server " + $EMAILSERVER)
Quit $Err
ENDIF
;
;---- Removing archive rar file and files from Report Drive
;
If LEN($REPORTDRIVE)>2
Dim $Err, $SErr
RD $REPORTDRIVE /Q
$VARSET = WRITELINE (1, 'Removing archive RAR file and files from Report Drive' + @CRLF)
$Err = @ERROR $SErr = @SERROR
IF @ERROR = 0
'....Done' ?
$VARSET = WRITELINE(1, '....Done' + @CRLF)
ELSE
'..Failed: ' + $SErr ?
$VARSET = WRITELINE(1, '..Failed' + @CRLF)
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $SupportEmail + " -f " + $Sender + " -s Issue_removing_files_from_HR01 -server " + $EMAILSERVER)
Quit $Err
ENDIF
Else
'The REPORTDRIVE var was empty so did not write' ?
EndIf
;
;---- Email success report to maintaining group
;
SHELL ("%comspec% /c " + $SCRIPTROOT + "Blat " + $ARCHIVELOG + " -t " + $EmailAddress + " -f " + $Sender + " -s " + @DATE + "_KPI_Archive_Success -server " + $EMAILSERVER)