Pre-backup and post-backup scripts for NAS



Overview
Druva allows administrators to configure pre-backup and post-backup scripts for NAS backups. The pre-backup scripts perform specific pre-backup tasks before backup jobs, while post-backup scripts perform specific post-backup tasks after backup jobs. You can configure the pre and post backup scripts in the backup policy.
When to use pre-backup and post-backup scripts?
You may want to use pre and post backup scripts to perform tasks like:
- Stopping an anti-virus service before the backup job and restarting the service after the backup completes.
- Backing up database dumps as flat files using the NAS agent and then deleting the dump files after the backup completes.
- Change permissions on files or servers before a backup, and reset them after the backup completes.
Here is an example pre_script.bat file to stop services before a backup:
#pre-script to stop a service
@echo off
NET STOP Service Name
if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem stopping the service
Here is an example post_script.bat file to stop services before a backup:
#post-script to start a service
@echo off
NET START Service Name
if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem starting the service
Considerations
Configuring pre and post backup scripts in NAS backup policies is optional. Consider the following information before configuring pre and post backup scripts in a NAS backup policy:
- The pre and post backup scripts must be present on the NAS proxy used to backup the configured NAS share.
- You can only configure pre and post backup scripts for NAS shares on supported NAS proxies. For more information, see Software requirements for NAS proxy
- The pre and post backup scripts should be executable files. Ensure that you name the scripts as per the following conventions:
- For NFS shares, name the scripts pre_script.sh and post_script.sh.
- For SMB shares, name the scripts pre_script.bat and post_script.bat.
- Alerts and emails are generated at the end of the last retried job if a pre-backup or post-backup script execution fails.
- When the pre-backup or post-backup script is killed externally, for example, through Task Manager or command line (kill -9 <pid>), then the backup cycle gets executed after the context of the script exits.
- If the script execution time limit is not specified, the pre-backup and post-backup scripts run until the script execution is complete or 1 year, whichever is less.
Steps to configure pre-backup and post-backup scripts
The following diagram depicts the steps to configure pre and post-backup scripts.
- Create pre-backup and post-backup scripts on the NAS proxy.
To backup | Name the scripts |
---|---|
NFS shares | pre_script.sh and post_script.sh |
SMB shares | pre_script.bat and post_script.bat |
- Create a new backup policy or edit an existing one and perform the following tasks:
Field Description Windows Proxy Enable Scripts Enable pre-backup and post-backup scripts execution for SMB share backups. When you enable scripts, the Scripts location field gets enabled. Scripts Location Enter the location of the folder that contains the pre-backup and post-backup scripts on the NAS proxy. Linux Proxy Enable Scripts Enable pre-backup and post-backup scripts for NFS share backups.When you enable scripts, the Scripts location field gets enabled. Scripts Location Enter the location of the folder that contains the pre-backup and post-backup scripts on the NAS proxy. Skip Backup if Pre-script is not present at the specified location Select the option to skip the backup if a pre-backup script is not available at the specified script location. Pre-script execution fails Select the option to skip the backup if a pre-backup script execution fails. Abort pre/post script execution if it does not complete in X Minutes/Hours Enter the duration in minutes or hours after which Druva should abort the pre-backup or post-backup script execution. You can leave this field blank if you don’t want to enter a timeout value. In that case the pre-backup and post-backup scripts run until the script execution is complete or one year, whichever is lesser. -
The NAS agent executes the pre-backup and post-backup scripts from the path specified in the backup policy. When the pre-backup and post-backup scripts are executed, the agent passes a set of arguments to these scripts. These arguments are interpreted in the following sequence:
-
For pre_backup script: [script_name, job_id]
-
For post_backup script: [script_name, job_id, pre_script_status_integer, backup_status_integer]
where,-
script_name represents the absolute path of script.
-
job_id represents the job identification number of the current backup job.
-
pre_script_status_integer represents the status of the pre-script execution. To interpret the values of the pre-script status integers, see Pre-script status.
- backup_status_integer represents the status of the backup job execution. To interpret the values of the backup status integers, see Backup status.
-
-
Workflow of backup job execution with custom scripts
To run pre-backup and post-backup scripts during the backup job execution, you must configure them in the NAS backup policy.The following diagram depicts the life cycle of the backup job when the pre-backup scripts and post-backup scripts are disabled and enabled.
Behavior of pre-backup and post-backup script execution and backup job status
When you configure a NAS backup policy with pre-backup and post-backup scripts, your actions affect the script execution. The following section describes the behavior of pre-backup and post-backup script execution based on user interaction.
- Job Retry: For every job retry operation, the pre-backup and post-backup scripts will execute before and after the backup job. Respective script failures generate alerts and emails at the end of the last retried job.
-
Canceled backup job: When you cancel a backup job during pre-backup script execution, the NAS agent executes the pre-backup script, cancels the backup job, and then executes the post-backup script. When you cancel a backup job during post-backup script execution, the Hybrid Workloads agent executes the post-backup script and then cancels the job.
-
Backup window expiry: When a backup window expires at the pre-script execution time, the pre-backup script execution exits with the Failed status, and the NAS agent executes the post-backup script.
-
Backup now: When you manually trigger a backup (Backup Now), the NAS agent executes the pre-backup and post-backup scripts as expected.
-
The pre-backup and post-backup scripts' status is N/A when the NAS agent does not report any status for them.
The following table summarizes the statuses of the pre-backup scripts and post-backup scripts corresponding to the statuses of the backup job execution.
Pre-script status | Run backup? | Backup Status | Run post-script? | Post-script status |
---|---|---|---|---|
Successful | Yes |
Backup Status is one of the following:
|
Yes |
Post-script status is one of the following:
|
Successful | Yes |
Backup Status is one of the following:
|
Yes | Skipped (when script is unavailable at the specified location) |
Failed | User defined |
If backup is executed,
If backup is not executed,
|
Yes |
Post-script backup status is one of the following:
|
Skipped | User defined |
If backup is executed,
|
No | Skipped |