I spend a fair amount of time working with Autodesk Vault and performing consulting services around product data management. Most current Vault implementations make use of the Task Scheduler and command line scripts to perform things like database defragmentation, Vault backups and SQL Maintenance. The command line answers a need to automate these routine tasks at a basic level but lacks some advanced functionality such as reporting, configurability and notifications that can be achieved by using Powershell instead.
Powershell is a server side programming language that can be scripted and run in a similar fashion as batch files are with the command line. However, the similarities end pretty quickly. Powershell is a tool heavily used by IT departments to automate the configuration and management of servers in a network environment.
So why is this something you should consider for Vault and what could you use it to do? To start with; it comes installed and ready to use in all windows server installations and has an enormous support community. The Vault Data Standard add-in (available free from Autodesk) uses customizable Powershell scripts to function in Vault as well. In short, Powershell is not only for Windows configuration but also in use by Autodesk and other software applications all over.
For our purposes Powershell could be scripted to monitor your network license usage or to defragment your databases. Perhaps the best benefit, in a Vault environment, would be the added functionality it has when used in conjunction with the Vault server command line tools. In a word: backups.
With the traditional batch file method of backing up your Vault you might use the task scheduler to run a nightly backup. The task will keep the latest two backups on a rolling basis and append log information to a text file each time a backup is run. That's about it. Keeping an eye on drive space, backup duration, backup size and the log file - to ensure that you have a valid backup - is a manual process.
While performing the same tasks above, here are some actions that could be added with Powershell:
- Backup success/failure notification
- Save a separate, date stamped, log file for each Vault backup (instead of one cumulative file)
- Automatically delete old log files (and backups) based on any criteria
- Display the total size of the backup
- Display the duration of the backup process
- Display the free space remaining on disk
- Copy the completed backup to another drive
In addition, we can email the key data points above to an IT administrator or a CAD manager who is responsible for monitoring the Vault. The email could indicate success/failure right in the subject line, attach the log file for viewing and might look something like this:
What if we take Powershell a step further? We could record and report these data points over a period of time. This way you can see the rate of increase in backup duration, the growth rate of the backup (and the Vault overall) in GB or the quantity of Vaulted files over time. With this information you can plan for future Vault upgrades, server maintenance or hardware changes before they become critical.
It is surprising how often failed backup operations go unnoticed. Too often I see Vault servers where the last successful backup is months, even years old! The lack of notifications, reporting and access to backup information is a primary factor in this happening.
For an out-of-the-box backup tool that will send much of the info above by email (and perform many other functions) consider the IMAGINiT Utilities for Vault Server. This tool is light on administration and may suit your needs well. Otherwise, if the reporting and configurability of Powershell peak your interest feel free to reach out to us to see how we can help.