Comprehensive data protection for all workloads
Gio
Novice
Posts: 4
Liked: never
Joined: Oct 07, 2009 4:11 pm
Full Name: Gioachino
Contact:

Help! How can execute jobs in sequence?

Post by Gio »

Hi!
I've 7 backup job (one for each VM) scheduled during the night.
At the moment i've scheduled one job every hour, to avoid the overlay of jobs, but i've a lot of time lost because the backup duration is between 20 and 40 minutes.
Is it possible to concatenate the jobs so at the end of first automatically start the second and so on? In this way i don't have loss of time between one job and the next (now i've scheduled one job every hour but i've a lot of time lost).
Thanks,
Gio.
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

Hello Gio,

Yes, you can easily do that. What you need to do, is go ahead and create (edit) a job, and on the last page of the configuration, where you click "finish", there is a window that populates the command line for that job.

Example:

Command line: C:\Program Files\Veeam\Backup and FastSCP\VeeamManager.exe" backup 421daae1-188e-4a1d-b7a4-d23a13af9fc9

You can use this for your scripting tasks (sequence) with the help of batch files (insert the line above to the batch file) and point to that batch file at the post backup job script box at advanced settings of your job's configurations, so your jobs could start one by one triggering each other by this way.

This is what relates to our current release, however in our upcoming release of Veeam Backup and Replicaton version 4, there is a integration with PowerShell, that will surely give you more options to play with.

Thank you.
Gostev
Chief Product Officer
Posts: 31814
Liked: 7302 times
Joined: Jan 01, 2006 1:01 am
Location: Baar, Switzerland
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Gostev »

Alternatively, you can daisy chain all jobs using post-job script functionality under advanced job settings. Schedule the 1st job in chain to start on schedule, and disable scheduled starts for all other jobs. Every next jobs in the chain will be autostarted as a post-job activity from previous job. You should still use the same command line to start jobs as Vitaly mentioned in the previous post.
Gio
Novice
Posts: 4
Liked: never
Joined: Oct 07, 2009 4:11 pm
Full Name: Gioachino
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Gio »

Thanks for Reply!!!
I've already tried with batch file to run post-job script functionality but it doesn't run...
The job that i want to start with batch is called "Server03"; this is the batch:

Cd\Program Files\Veeam\Veeam Backup and FastSCP\
VeeamManager.exe backup Server03

The batch run without errors but the job don't start... what i'm mistaking?

Gio.
Gio
Novice
Posts: 4
Liked: never
Joined: Oct 07, 2009 4:11 pm
Full Name: Gioachino
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Gio »

Also using the command line:
"C:\Program Files\Veeam\Veeam Backup and FastSCP\VeeamManager.exe" backup Server03
doesn't run and and give no errors...
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

Hello Gio,

You need to actually copy the command from wizard step where you click "finish"? Instead of "Server03" there should be the job's ID, so it looks like this:

"C:\Program Files\Veeam\Backup and FastSCP\VeeamManager.exe" backup b3672123-3206-4a88-805f-7c3a50403ef5

This will make your job start using script, after you check that the script starts the job, please use this batch file as post backup job script.

Thank you.
Gio
Novice
Posts: 4
Liked: never
Joined: Oct 07, 2009 4:11 pm
Full Name: Gioachino
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Gio »

Sorry!
I wasn't able to find the Job's ID as You explain me and so i discover that probably 've used the wrong forum... I've Veeam Backup and Fast SCP.
I'll re-post the question in the "Veeam FastSCP forum"
Excuse me for the mistake...
Thanks to all,
Gio.
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

Hello Gio,

You're correct in choosing that forum, please have a look at the screenshot (i've sent you with private message) explaining where to get the command. If you still have any issues, please email us to support@veeam.com

Thank you
neo_italy
Influencer
Posts: 13
Liked: never
Joined: Nov 30, 2009 9:00 pm
Full Name: Luix
Contact:

Re: Help! How can execute 7 job in sequence?

Post by neo_italy »

Hi,
i wanna serialize some jobs with a batch dos script and i want check the exit status of a job before starting the following.
What is the variable that i've to check? Perhaps %ERRORLEVEL%?

Thanks
Gostev
Chief Product Officer
Posts: 31814
Liked: 7302 times
Joined: Jan 01, 2006 1:01 am
Location: Baar, Switzerland
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Gostev »

Hello, here's the thread answering your question:
http://www.veeam.com/forums/viewtopic.p ... job+result

Thanks!
m.novelli
Veeam ProPartner
Posts: 566
Liked: 103 times
Joined: Dec 29, 2009 12:48 pm
Full Name: Marco Novelli
Location: Asti - Italy
Contact:

Re: Help! How can execute 7 job in sequence?

Post by m.novelli » 1 person likes this post

Nice thread, please consider as a feature request to add to Veeam GUI an option to easily concatenate and order backup jobs to run them serialized

Marco
RumataRus
Enthusiast
Posts: 78
Liked: 2 times
Joined: Jun 21, 2010 5:30 am
Full Name: Dmitry Prokudin

Re: Help! How can execute 7 job in sequence?

Post by RumataRus »

Vitaliy S. wrote: Command line: C:\Program Files\Veeam\Backup and FastSCP\VeeamManager.exe" backup 421daae1-188e-4a1d-b7a4-d23a13af9fc9
Hi, Vitaliy!
Is "421daae1-188e-4a1d-b7a4-d23a13af9fc9" constant attribute of backup job?
It will be the same on any editing this backup job?
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

Yes, it is the same. No changes will be made to this ID after editing. Please note that you can also use PowerShell scripts to execute jobs in sequence.
davidkeis
Influencer
Posts: 10
Liked: never
Joined: Feb 14, 2011 8:09 am
Full Name: David Keis
Contact:

Re: Help! How can execute 7 job in sequence?

Post by davidkeis »

Hi. First post here... hope it's ok that I 'hijack' this thread :)

I am having the same problem as Gio described; Many backup jobs that I want to execute sequentially.

I could add each new job as a post-job command to the previous job, and just be happy with that. However, I need to also be able to execute the jobs I have individually, without triggering all the other jobs at the same time.
I realise that the problem could be solved by adding duplicates of all the jobs at hand, so i'd have 2 backup jobs for each VM (one for scheduled backup and one for manual backup). That seems like a not-very-elegant solution.

I have tried creating a .bat script to trigger the jobs one after another, but I have not yet found a way to make the .bat script wait for the current job to finish, before starting the next job.

Is there a way to achieve the above?
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

Hello David,

Yes, there is another way.

You need to use PowerShell script that checks current status of the backup job, and then based on the output triggers other jobs.
Should more details be required, please take a look at these links:
Post Script in Backup
Veeam Backup v4 wait command (nevermind the title)

Hope it helps!
davidkeis
Influencer
Posts: 10
Liked: never
Joined: Feb 14, 2011 8:09 am
Full Name: David Keis
Contact:

Re: Help! How can execute 7 job in sequence?

Post by davidkeis »

Hi Vitaliy.

Thanks for the quick reply. And I'm glad to hear that it is possible. :)


I have tried several commands to execute the backup job, but I have not yet been successful. (I think mostly due to the fact that I did not know of PowerShell until a few days ago!)

Could you please point me in the right direction with the syntax for the Start-VBRJob command?

I have tried several combinations of the following code snippets:

Code: Select all

Start-VBRJob "backup dkvam-cimio1"

Start-VBRJob 80d989b8-1ed8-4812-a1d6-d54fa7bcee50

Start-VBRJob "C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" backup 80d989b8-1ed8-4812-a1d6-d54fa7bcee50
The name of the job in Veeam GUI is: backup dkvam-cimio1
The ID of the job is: 80d989b8-1ed8-4812-a1d6-d54fa7bcee50 -given in the final window of the settings for the job.
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute 7 job in sequence?

Post by Vitaliy S. »

David, please check out this topic in order to make it work: Problem with Start-VBRJob
davidkeis
Influencer
Posts: 10
Liked: never
Joined: Feb 14, 2011 8:09 am
Full Name: David Keis
Contact:

Re: Help! How can execute 7 job in sequence?

Post by davidkeis »

Thank you very much.
Seems to be working now
JorisK
Enthusiast
Posts: 58
Liked: never
Joined: Jan 01, 2006 1:01 am

Can a 2nd job be started once the first job is finished?

Post by JorisK »

[merged]

Hi,

Just want to know:
Is it possible to let Queue2 start when Queue1 is finished? For example by using a script configured in the 'post job activity' setting?

Regards,
Joris
CTCarp
Enthusiast
Posts: 29
Liked: 2 times
Joined: Oct 13, 2011 11:46 am
Contact:

chained backup

Post by CTCarp »

[merged]

Probably not the best subject hint... Is there a way to start a second backup after the first is done automagically ? I have server servers kicking off at different times but would like to have them fire off after the previous is finished in a.... chain reaction
odruard
Enthusiast
Posts: 40
Liked: 5 times
Joined: Jan 25, 2011 2:12 pm
Full Name: Olivier Druard
Contact:

Re: Help! How can execute 7 job in sequence?

Post by odruard »

davidkeis wrote:I have tried creating a .bat script to trigger the jobs one after another, but I have not yet found a way to make the .bat script wait for the current job to finish, before starting the next job.
Hello,

I encountered such a problem as our jobs are started with an external scheduler which needed to know when job were finish to start following tasks.

I solved problem using 2 batchs.

The first one is used to start job. You just need to give the job ID as parameter.
The script log start time, delete the previously created flag, start the job, wait for the flag file indicating the end of job, then log end time.

Code: Select all

@echo off

:Start
for /F "tokens=1,2,3 delims=/, " %%i in ('date /T') do set vdate=%%k%%j%%i
for /F "tokens=1,2 delims=:, " %%i in ('time /T') do set vtime=%%i%%j
echo %vdate%-%vtime% - Start >>D:\VeeamBackupWorkDir\Scripts\Logs\%1.txt
if exist D:\VeeamBackupWorkDir\Scripts\Flags\%1.flag del D:\VeeamBackupWorkDir\Scripts\Flags\%1.flag
"C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" backup %1

:Wait
timeout 60 >nul
if exist D:\VeeamBackupWorkDir\Scripts\Flags\%1.flag goto end
goto Wait

:End
for /F "tokens=1,2,3 delims=/, " %%i in ('date /T') do set vdate=%%k%%j%%i
for /F "tokens=1,2 delims=:, " %%i in ('time /T') do set vtime=%%i%%j
echo %vdate%-%vtime% - End >>D:\VeeamBackupWorkDir\Scripts\Logs\%1.txt
The second one is used to create flag file at the end of backup. You just need to give the job ID as parameter, and schedule the job in Advanced tab of Advanced settings, in Post Job activity field.

Code: Select all

@echo off
echo %vdate%-%vtime% >>D:\VeeamBackupWorkDir\Scripts\Flags\%1.flag
Probably not the more efficient, but working...
Olivier Druard
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute jobs in sequence?

Post by Vitaliy S. »

Hi Olivier,

Thanks for sharing, but I just wanted to mention that you can always review the current job status with Powershell and use this status for triggering subsequent jobs.

On a side note, v6 will most likely remove any need in scheduling jobs like that, as job processing will be handled automatically.

Thanks.
CTCarp
Enthusiast
Posts: 29
Liked: 2 times
Joined: Oct 13, 2011 11:46 am
Contact:

Re: Help! How can execute jobs in sequence?

Post by CTCarp »

At the end of the post script do I have just pust the job id or prefix the id with "backup" or name of the job + the id? for example :
"C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" 80d989b8-1ed8-4812-a1d6-d54fa7bcee50
or
"C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" "backup" 80d989b8-1ed8-4812-a1d6-d54fa7bcee50
or
"C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" "ServerTest" 80d989b8-1ed8-4812-a1d6-d54fa7bcee50
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute jobs in sequence?

Post by Vitaliy S. »

The first variant:

Code: Select all

"C:\Program Files\Veeam\Backup and Replication\Veeam.Backup.Manager.exe" 80d989b8-1ed8-4812-a1d6-d54fa7bcee50
Gostev
Chief Product Officer
Posts: 31814
Liked: 7302 times
Joined: Jan 01, 2006 1:01 am
Location: Baar, Switzerland
Contact:

Re: Help! How can execute jobs in sequence?

Post by Gostev »

Just copy and use the command as seen on the Summary page of the job wizard. No need to be guessing, it's already there for you to use :D
CTCarp
Enthusiast
Posts: 29
Liked: 2 times
Joined: Oct 13, 2011 11:46 am
Contact:

Re: Help! How can execute jobs in sequence?

Post by CTCarp »

Ahhhhhhhhhhh.... So I see :D
Thanks Gostev
CTCarp
Enthusiast
Posts: 29
Liked: 2 times
Joined: Oct 13, 2011 11:46 am
Contact:

Re: Help! How can execute jobs in sequence?

Post by CTCarp »

Ok this worked great but... Without thinking about the daisy chain the backup is only as good as its weakest link. About my 6th VM a backup post script failed thus not continuing. Is there a way I can setup a "upon failure continue" type of command in the post script? Where if a backup fails for one server the rest of the chain doesnt fail
Vitaliy S.
VP, Product Management
Posts: 27377
Liked: 2800 times
Joined: Mar 30, 2009 9:13 am
Full Name: Vitaliy Safarov
Contact:

Re: Help! How can execute jobs in sequence?

Post by Vitaliy S. »

This would be possible to do with PowerShell only, take a look at existing discussion for more details: post-job enhancement request
Gostev
Chief Product Officer
Posts: 31814
Liked: 7302 times
Joined: Jan 01, 2006 1:01 am
Location: Baar, Switzerland
Contact:

Re: Help! How can execute jobs in sequence?

Post by Gostev »

Not possible because this is how post-job script is designed to work (on success only). However, as Vitaly pointed, you may want to use PowerShell script with multiple Start-VBRJob calls instead, and launch it from Windows Scheduler.
dbastie
Novice
Posts: 6
Liked: never
Joined: Dec 26, 2010 1:14 pm
Full Name: Damien BASTIÉ
Contact:

Re: Help! How can execute jobs in sequence?

Post by dbastie »

Hi,

I am not a powerfull powershell user, but i can share my work... :)
I adapted RichardR's (http://forums.veeam.com/viewtopic.php?f=2&t=5107) script to my own usage (maybe i can optimize certain parts)

There is 3 hardcoded variables, $MaxJobs, $MaxRetry and $Folder

My script select jobs where the targetdir is equal to $Folder
Run $MaxJobs jobs concurrently
When all jobs are finished, i control if there are failed job and retry it concurrently using $MaxJobs and $MaxRetry

(sorry comments are in french)

Code: Select all

# Ajout du snapin Veeam
Add-PSSnapin VeeamPSSnapIn

# Initialisation des variables
$JobList=@()
$MaxJobs=2
$MaxRetry=3
$Folder="D:\Veeam3\*"
$retry=1


# Fonction de vérification de $MaxJobs
Function TestMaxJobs {
	Do {
		$RunningJobs=@()
		# Comptage du nombre de jobs en cours pour $Folder
		ForEach ($JobR in $JobList) {
			Get-VBRBackupSession | Where { $_.Name -eq $JobR -and $_.State -eq "Working" } | ForEach {$RunningJobs += $_.Name}
		}

		# Si supérieur ou égal à $MaxJobs
		If ($RunningJobs.count -ge $MaxJobs) {
			# Attente de 60 secondes
			Start-Sleep -s 30
		}
	}

	# Le Do-While continue tant qu'il y a $MaxJobs en cours
	While ($RunningJobs.count -ge $MaxJobs)
}

# Fonction d'attente de fin de job
Function WaitEndJob {
	# En attente des jobs non terminés
	Do {
		$RunningJobs=@()
		# Comptage du nombre de jobs en cours pour $Folder
		ForEach ($JobR in $JobList) {
			Get-VBRBackupSession | Where { $_.Name -eq $JobR -and $_.State -eq "Working" } | ForEach {$RunningJobs += $_.Name}
		}
		
		# Si supérieur ou égal à 1
		If ($RunningJobs.count -ge 1) {
			# Attente de 60 secondes 
			Start-Sleep -s 60
		}
	}
	# Le Do-While continue tant qu'il y a au moins 1 job en cours
	While ($RunningJobs.count -ge 1)
}

# Récupération de la liste des jobs pour $Folder
Get-VBRJob | Where {$_.Info.TargetDir -like $Folder} | ForEach {$JobList += $_.Name}

# Tri des jobs par ordre alphabétique
$JobList = $JobList | Sort-Object

# Pour chaque Jobs
ForEach ($Job in $JobList) {
	# Vérification de $MaxJobs
	TestMaxJobs 
	# Sinon le job démarre
	Get-VBRJob | where {$_.Name -eq $Job} | ForEach {Start-VBRJob $_ -RunAsync}
	# Attente de 30 secondes avant de recommence en haut du ForEach
	Start-Sleep -s 30
}

# En attente des jobs non terminés
WaitEndJob

# Tant que le $retry est inférieur à $MaxRetry
While ($retry -le $MaxRetry) {
	# Combien de job en failed ?
	$FailedJobs=@()
	Get-VBRJob | Where {$_.Info.TargetDir -like $Folder -and $_.Info.LatestStatus -eq "Failed"} | ForEach {$FailedJobs += $_.Name}
	# Si pas de failed le Exit
	if ($FailedJobs.count -eq 0) {
		break
	}
	# +1 pour $retry
	$retry++
	# Initialisation de JobList
	$JobList =@()
	# Récupération de la liste des jobs en Failed à retry pour $Folder
	Get-VBRJob | Where {$_.Info.TargetDir -like $Folder -and $_.Info.LatestStatus -eq "Failed"} | ForEach {$JobList += $_.Name}
	# Tri des jobs par ordre alphabétique
	$JobList = $JobList | Sort-Object

	ForEach ($Job in $JobList) { 
		# Vérification de $MaxJobs
		TestMaxJobs 
		# Sinon le job démarre
		Get-VBRJob | where {$_.Name -eq $Job} | ForEach {Start-VBRJob $_ -RetryBackup -RunAsync}
		# Attente de 30 secondes avant de recommence en haut du ForEach
		Start-Sleep -s 30
	}
	# En attente des jobs non terminés
	WaitEndJob
}
I adapted pizzim13's script (http://forums.veeam.com/viewtopic.php?f=2&t=8925) for my reporting to a single veeam instance and all job :

Code: Select all

Add-PSSnapin VeeamPSSnapIn

$JobStatus=@()

#html styling
$style = "<style>"
$style = $style + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$style = $style + "TH{border-width: 1px;padding: 1px;border-style:double;border-color: black;}"
$style = $style + "TD{border-width: 1px;padding: 5px;border-style:double;border-color: black;}"
$style = $style + "</style>"

$JobStatus = (Get-VBRJob | Where-Object {$_.findlastsession().progress.stoptime -ge (Get-Date).addhours(-12)}) |
	ForEach-Object {
		$_ | Select-Object @{Name="Job";Expression={$_.Name}}, @{Name="Status";Expression={$_.GetLastResult()}},
		@{Name="Job Msg";Expression={$_.FindLastSession().info.description}}, @{Name="Start Time";Expression={$_.FindLastSession().Progress.StartTime}},
		@{Name="End Time";Expression={$_.FindLastSession().Progress.StopTime}},@{Name="Duration";Expression={'{0:N0}' -f $_.FindLastSession().Progress.Duration.TotalMinutes}}
	}

###Sending report
#Mail settings
$MailSrv = "MailSrv"
$MailFrom = "MailFrom"
$MailTo = "MailTo"
$MailSbjt = "Veeam Job Status Report $(get-date)"
$MailBody = ($JobStatus | Select-Object Job, Status, "Job Msg", "Start Time", "End Time", Duration | Sort-Object Job | ConvertTo-Html -Head $style | Out-String) `
         -replace ("<td>Success","<td bgcolor=green> Success") `
         -replace ("<td>Warning","<td bgcolor=yellow> Warning") `
         -replace ("<td>Failed","<td bgcolor=red>Failed")

Send-MailMessage -SmtpServer $MailSrv -From $MailFrom -To $MailTo -Subject $MailSbjt -Body $MailBody -BodyAsHtml 
###
Image
Post Reply

Who is online

Users browsing this forum: Regnor and 48 guests