03671328
asked on
virtual server backup
looking for a reason as to why the fallowing script will not give the reason why the xcopy failed
any info will be helpfull thanks
any info will be helpfull thanks
Set objShell = CreateObject ("WScript.Shell")
'local computer computer name
strTime = "local computer"
'net use share name
strNetShare= "share name here"
'backup computer name
strRemotepc = "ipaddress here"
'backup freenas server name
strnasdevice = "computer name here"
'location for the daily backup
strold = "W:"
'backup location for the old files
strolderfiles = "ip address here"
'backup directory drive
strBackupDrive= "Z:"
'Drive containing Virtual Machines
strVMdrive = "E:"
'VM folder path
strVMfolder = "\virtual"
'available drive letter used to mount shadow copy
strTempDrive = "x:"
'nas device drive
strnas = "N:"
'nas computername
strnascomputer = "nas name here"
'nas sharename
strnasdevice ="nas share here"
'shadow command file
sExCmd = "CreateVSS.cmd"
'logs for program
sLog = "logs.txt"
'cleanup file
scleanup = "cleanup.cmd"
'email variables
'-------------------------------
'email address 1
stremail1 = "bla2@bla.com"
'email address 2
stremail2 = "bla@bla.com"
'from host email
strfrom = "backup@bla.com"
'mailserver
strmailserver = "mail.bla.com"
'message subject
strsubject= "bla backup"
'===================YOU SHOULD NOT NEED TO CHANGE ANYTHING BELOW THIS LINE========================================
dim result
'get the day of week
'---------------------------------
dtmTargetDate = date()
intDay = WeekDay(dtmTargetDate)
if intDay= 1 then
strday = "Sun"
end if
if intDay= 2 then
strDay = "Mon"
end if
if intDay= 3 then
strDay = "Tues"
end if
if intDay= 4 then
strDay = "Wed"
end if
if intDay= 5 then
strDay = "thurs"
end if
if intDay= 6 then
strDay = "fri"
end if
if intDay= 7 then
strDay = "Sat"
end if
'---------------------------------
'get the week number 1-6
'-------------------------------------------------
dtmDay = DatePart("d", dtmTargetDate)
dtmMonth = DatePart("m", dtmTargetDate)
dtmYear = DatePart("yyyy", dtmTargetDate)
dtmStartDate = dtmMonth & "/1/" & dtmYear
dtmStartDate = CDate(dtmStartDate)
intWeekday = Weekday(dtmStartDate)
intAddon = 8 - intWeekday
intWeek1 = intAddOn
intWeek2 = intWeek1 + 7
intWeek3 = intWeek2 + 7
intWeek4 = intWeek3 + 7
intWeek5 = intWeek4 + 7
intWeek6 = intWeek5 + 7
'-------------------------
'get the day of the week
'-------------------------
If dtmDay <= intWeek6 Then
strTime1 = "Week 6"
End If
If dtmDay <= intWeek5 Then
strTime1 = "Week 5"
End If
If dtmDay <= intWeek4 Then
strTime1 = "Week 4"
End If
If dtmDay <= intWeek3 Then
strTime1 = "Week 3"
End If
If dtmDay <= intWeek2 Then
strTime1 = "Week 2"
End If
If dtmDay <= intWeek1 Then
strTime1 = "Week 1"
End If
'--------------------------------------------------
'daily backup
stroldbackup = strold &"\"& strDay
' Backup target folder or UNC path
strBackupDir = strBackupDrive &"\" & strTime
'log file creation
set FileSys = CreateObject("Scripting.FileSystemObject")
if FileSys.FileExists(sLog) then FileSys.DeleteFile(sLog)
set oLog = FileSys.CreateTextFile(sLog,CopyOverwrite)
'write all vars to the log file for verfication
olog.writeline("local computer computer name: "& strTime)
olog.writeline("backup computer name: "& strRemotepc)
olog.writeline("backup freenas server name: "&strnasdevice)
olog.writeline("location for the daily backup: "&strold)
olog.writeline("backup directory drive: "&strBackupDrive)
olog.writeline("Drive containing Virtual Machines: "&strVMdrive)
olog.writeline("VM folder path: "& strVMfolder)
olog.writeline("available drive letter used to mount shadow copy: "& strTempDrive)
olog.writeline("nas device drive: "& strnas)
olog.writeline("shadow command file: "& sExCmd)
olog.writeline("logs for program: "& sLog)
'place time of day in file
olog.writeline("backup created at" &date &" "& time)
'create commands for shadow copy
Set oFileSys = CreateObject("Scripting.FileSystemObject")
if oFileSys.FileExists(sExCmd) then oFileSys.DeleteFile(sExCmd)
set oExCmd = oFileSys.CreateTextFile(sExCmd, CopyOverwrite)
' Create Shadow copy of VM drive
oExCmd.WriteLine "set startdate=%date%"
oExCmd.WriteLine "set starttime=%time%"
oExCmd.WriteLine "vshadow.exe -script=setvar1.cmd -p " & strVMdrive
oExCmd.WriteLine "call setvar1.cmd"
oExCmd.WriteLine "vshadow.exe -el=%SHADOW_ID_1%," &strTempDrive
oExCmd.WriteLine "net use "&strBackupDrive&" \\"&strRemotepc&"\"&strNetShare
oExCmd.WriteLine "net use "&strnas&" \\"&strnascomputer&"\"&strnasdevice
oExCmd.WriteLine strnas
oExCmd.WriteLine "mkdir " & strTime1
oExCmd.WriteLine "net use "&strold&" \\"&strolderfiles&"\V_M_backup"
oExCmd.WriteLine "dir "&strold
oExCmd.WriteLine "dir "&strBackupDrive
oExCmd.WriteLine "dir "&strnas
oExCmd.WriteLine strBackupDrive
oExCmd.Close
'run shadow copy
'result = read_lines(sExCmd)
'if u want to log the shadowcopy data please uncomment above line and then comment between the lines
'---------------------------------------------
set objExecObject = objShell.exec(sExCmd)
Do Until objExecObject.StdOut.AtEndOfStream
strLine = objExecObject.StdOut.ReadLine()
strIP = Instr(strLine,"Address")
Loop
'---------------------------------------------
olog.writeline("shadow copy completed at "& Month(Now) & "-" & Day(Now) & "-" & Year(Now) &_
"_" & hour(now) & "-" & minute(now))
'create backup of old data every day
olog.writeline ""
olog.writeline ""
olog.writeline "--------------------old files data-----------------------------"
olog.writeline "moving old files to the backup directory time is now "& Time
olog.writeline ("xcopy "&strBackupDir &" " &stroldbackup&" /s /i /y")
result = read_lines("xcopy "&strBackupDir &" " &stroldbackup&" /s /i /y")
olog.writeline "finnished moving old data at " & Time
olog.writeline "--------------------end of old files move----------------------"
olog.writeline ""
olog.writeline ""
'weekly backups only runs on firday
'intday = 1-6
'1 = Sunday
'2 = Monday
'3 = Tuesday
'4 = Wendsday
'5 = Thursday
'6 = Friday
'7 = Saturday
if intDay = 6 then
olog.writeline "preparing for nasbackup"
'start backup to nas device
olog.writeline ""
olog.writeline ""
olog.writeline "-----------------------friday backup data----------------------------"
olog.writeline "backup for freenas started at"& time
olog.writeline ("xcopy "&strTempDrive&strVMfolder& " " &strnas&"\"&strTime1&" /s /i /y")
result = read_lines("xcopy "&strTempDrive&strVMfolder& " " &strnas&"\"&strTime1&" /s /i /y")
olog.writeline "backup to freenas ended at" & time
olog.writeline "-----------------------friday data ended-----------------------------"
olog.writeline ""
olog.writeline ""
end if
'startbackup
olog.writeline "-------------------------virtual server data----------------------"
olog.writeline "backup to vs2 started at"& time
olog.writeline "xcopy "&strTempDrive&strVMfolder& " " &strBackupDir&" /s /i /y"
result = read_lines("xcopy "&strTempDrive&strVMfolder& " " &strBackupDir&" /s /i /y")
olog.writeline "backup to vs2 ended at" & time
olog.writeline "-------------------------virtual sever data end-------------------"
olog.writeline ""
olog.writeline ""
'cleanup starts
Set oFileSys1 = CreateObject("Scripting.FileSystemObject")
set oExCmd1 = oFileSys.CreateTextFile(scleanup, CopyOverwrite)
oExCmd1.writeline "Echo y | vshadow.exe -da"
oExCmd1.writeline "net use "& strBackupDrive &" /delete"
oExCmd1.writeline "net use "& strnas &" /delete"
oExCmd1.writeline "net use "& strold&" /delete"
oExCmd1.writeline "Echo y | del C:\setvar1.cmd"
oExCmd1.writeline "Echo y | del C:\CreateVSS.cmd"
oExCmd1.writeline "Echo y | del C:\cleanup.cmd"
oExCmd1.close
result = read_lines("C:\cleanup.cmd")
'email
result = read_lines("C:\sendEmail.exe -f "&strfrom&" -u "&strsubject&" -t "&stremail2&" -o message-file=C:\logs.txt -s "&strmailserver)
result = read_lines("C:\sendEmail.exe -f "&strfrom&" -u "&strsubject&" -t "&stremail1&" -o message-file=C:\logs.txt -s "&strmailserver)
'-------------function that will launch the exe / bat ect. to read the output to a text file creating a log
Function read_lines(x)
set objExecObject = objShell.exec(x)
Do Until objExecObject.StdOut.AtEndOfStream
strLine = objExecObject.StdOut.ReadLine()
strIP = Instr(strLine,"Address")
oLog.WriteLine strLine
Loop
End Function
oLog.Close
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
the whole idea of the script is to make shure the virtual machines stay running. for no down time. So i create a shadow copy then mount it, and copy the data from the shadow to anouther drive. I would like to add why it would error out. as in why it would not copy.
what is the specific error of xcopy?
ASKER
thats what i need to find out it dont say.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
runing windows 2003 server enterprice in a domain controler enviremnet.
example of the log output
Open in new window