==> On Thu, 17 Feb 2005 13:18:42 -0000, "Warren, Matthew (Retail)" <[EMAIL PROTECTED]> said:
> Do people mix the two, or is it a case of 'We use TSM scripting' or 'We use > Shell / python etc..' based on preference / environment restrictions. > Are there any benefits to TSM scripting other than it doesn't require an > external process and relevant software to achieve it? My opinion is that encoding as much of your logic as you can in TSM schedules and scripts saves you dependencies, and increases our common understanding of "how we do things". If the minute-to-minute details of your TSM servers' management depend on some outside scripts, then you're really off in the weeds as far as best practices are concerned: You're a population of one. If you use an aftermarket application, then you're part of a larger group, but you're still vulnerable if any of your products goes wrong. So I use PERL code outside of TSM to translate configuration data from one large XML file into lots and lots of scripts, and then I use that repeatable process to change my config, but if I don't touch the servers, they just keep on running, migrating, reclaiming, etc. Below I've included an edited example, one of my server stanzas. From that information, and with reference to the running server, I generate a laundry list of scripts: Turn on/off migration for stgpools of devclass X,Y,Z Start/stop migration for stgpools of devclass X,Y,Z Start/stop reclamaition for stgpools of devclass X,Y,Z Backup the database Backup the devconfig and volhist Blow away all existing schedules Define schedules etc. <server> <name>webct</name> <active>Yes</active> <description>online course management.</description> <IP>tsm-webct.cns.ufl.edu</IP> <port>1605</port> <httpport>1685</httpport> <!-- Where does this TSM server get its' config data? --> <dir>/var/tsm/webct</dir> <!-- When I start all 9 servers, in what order should I start them? --> <startdelay>2</startdelay> <startorder>3</startorder> <!-- Device class to which Database Backups should be sent --> <db_devclass>remote_ctrl</db_devclass> <stgpools> <stgpool name="webct-disk" type="primary" lowmig="0" highmig="90" > <copy-to>webct-c0</copy-to> </stgpool> <stgpool name="webct-3590" type="primary" reclaim-target="50" > <copy-to>webct-c0</copy-to> </stgpool> <stgpool name="webct-c0" type="copy" reclaim-target="50" /> </stgpools> <circadian> <tick name="c-backup-3590dev" time="17:00" cmd="run a-backup-3590dev"/> <tick name="c-backup-disk-0" time="20:15" cmd="run a-backup-disk" /> <tick name="c-backup-disk-1" time="00:15" cmd="run a-backup-disk" /> <tick name="c-expire-begin" time="02:00" cmd="expire inventory" /> <tick name="c-backup-disk-2" time="03:15" cmd="run a-backup-disk" /> <tick name="c-startmig-disk" time="04:15" cmd="run a-mig-on-disk" /> <tick name="c-stopmig-disk" time="04:16" cmd="run a-mig-off-disk" /> <tick name="c-delete-volhist" time="08:10" cmd="run a-delete-volhist" /> <tick name="c-backup-db" time="05:00" cmd="run a-backup-db" /> <tick name="c-reclaim-on-3590" time="09:00" cmd="run a-reclaim-on-3590dev"/> <tick name="c-reclaim-off-3590" time="16:00" cmd="run a-reclaim-off-3590dev"/> </circadian> <charging> <default account="wctnsam"/> </charging> <backupAges> <default tolerance="1"/> </backupAges> <reporting> <default reportTo="[EMAIL PROTECTED]"/> </reporting> </server>