If you back up or replicate VMs running applications that do not support Microsoft VSS, you can instruct Veeam Backup & Replication to run custom scripts for VMs. For example, the pre-freeze script may quiesce the file system and application data on the VM guest OS to bring the VM to a consistent state before Veeam Backup & Replication triggers a VM snapshot. After the VM snapshot is created, the post-thaw script may bring the VM and applications to their initial state.
You can use pre-freeze and post-thaw scripts for the following types of jobs:
- Backup job
- Replication job
- VM copy job
Pre-freeze and post-thaw scripts can be used for Microsoft Windows and Linux VMs.
- For Microsoft Windows VMs, Veeam Backup & Replication supports scripts in the EXE, BAT, CMD, WSF, JS, and PS1 file format.
- For Linux VMs, Veeam Backup & Replication supports scripts in the SH file format.
Scripts must be created beforehand. You must specify paths to them in the job settings. Script execution settings can be configured per VM or per container, depending on the objects included in the job.
When the job starts, Veeam Backup & Replication uploads scripts to the VM guest OS and executes them.
- Scripts for Microsoft Windows VMs are uploaded over the network or VIX, if Veeam Backup & Replication fails to connect to the VM guest OS over the network.
- Scripts for Linux VMs are uploaded over SSH.
The script is considered to be executed successfully if "0" is returned.
The default time period for script execution is 10 minutes. If the script fails to execute before the timeout expires, Veeam Backup & Replication displays an error message in the job session and error or warning messages issued during script execution.
Limitations for Pre-Freeze and Post-Thaw Scripts
Veeam Backup & Replication has the following limitations for pre-freeze and post-thaw scripts:
- You cannot stop a job when the pre-freeze or post-thaw script is executed. If the script hangs up, Veeam Backup & Replication waits for 10 minutes and terminates the job.
- If you want to run several scripts that depend on each other, you must upload them to the VM guest OS manually. For example, you have script1.bat that sequentially starts script2.bat, script3.bat and script4.bat. In this case, you must specify a path to script1.bat in the job properties and upload script2.bat, script3.bat and script4.bat to the VM guest OS.