About This File
This solution will export customizations into a folder hierarchy based on each type of backup. It uses only Automate scripting functions so it is compatible with both Cloud Hosted and On-Prem servers. It is compatible with MySQL 5.6+ and Automate Version 11+.
Script Backups will be placed in folders matching the script folders in your environment. Each time a script is exported, the last updated time and user information is included, providing multiple script revisions as it is changed over time. This script does not decode the scriptdata, so script dependencies like EDF's or other scripts will not be bundled in the XML export. But if you are just looking to undo a change, the script dependencies should exist already. Scriptlets will not be "versioned", but it will detect when they have changed and will only back up new or changed Scriptlets.
Additionally, the following item types will also be backed up: Internal Monitors, Group Monitors, Remote Monitors, Dataviews, Role Detections, ExtraData Fields, and VirusScanners.
The backups will be created at the folder identified by "@BackupRoot@", which you can provide as a script parameter when scheduling if you do not want to use the default path. Target the script against an online agent, and the script data will be backed up to that computer. Future runs will reference the saved "Script State" variable for that agent and will only include the scripts updated since the last successful backup. Backup verification is performed, if a script backup file was not created as expected, the backup timestamp will not be changed allowing the backup to be attempted again.
The attached .zip bundle contains scripts actually backed up by this solution. Import the "Send Email" script first, and then import the "Backup" script. If there are any problems or you would rather import a script exported by Automate, the "Backup Automate Scripts (and More).xml" is included as well. You do not need to import all three files!
Just schedule this to run daily against any agent to establish your script archive.
script version revision archive backup
What's New in Version 2.0 See changelog
Released
I'm jumping this to 2.0, since I hope to be finished with it for awhile!
Current Release:
Should be able to handle larger scripts than previously.
Reduced packaging for each script - Smaller backup bundles mean faster backup jobs.
Handles missing EDF in a Scriptlet.
Found and fixed more problem characters in Script, Scriptlet, and Folder names.
Previous Update:
EVEN MORE special character handling. Supports Script Folders and Files with characters like [{&,^, %}] and more.
Eliminated DOS Batch to create folder structure, eliminated DOS Batch steps to verify successful backups.
Fixes! Now output (Scriptlets and Script Notes in XML) will have % and @ characters that could not be manipulated in Script variables before.
Also EDF's referenced in Scriptlets will be intelligently matched on Import.
Plus more special character handling.