Yeah, ADSM has some little idiosyncrasies that are hard to get used to.
Most often, I'm working out the selects from shell scripts as so:
REPORT="~/adsm.report"
ID="foo"
PW="bar"
and later:
BU_DATE=`dsmadmc -id=$ID -pa=$PW "select node_name,filespace_name from
filespace
s where cast((current_timestamp-backup_end) days as decimal)> 2 and
(filespace_
type like 'ext2' or filespace_type like 'JFS')" | tail +13 |sed
'/ANS8002I/d' |s
ed '/^$/d' |awk {'print $1,$2'}`
and finally:
echo "Filespaces needing backup (>2 days without backup)" >$REPORT # To
create file if neccessary
echo " " >>$REPORT # to
append file
echo "$BU_DATE " >>$REPORT # to
append file
You may note that this script is comprised of two answers I got from
"old-timers" right here on this list (if you've been following at all). It
selects a group of nodes whose "backup end" date is greater than two days
ago. Next, it strips the IBM header and the results footer. (a hack, I
know, but it works) THe only place this is somewhat fishy is in reporting
NTFS or FAT filesystems. As soon as the shell sees "\\", it freaks out. I
fought with various escape sequences for days until I figured out I could
just kill the declaration early in the file, and put the whole output in one
place like so:
echo " Win32 " >>$REPORT
dsmadmc -id=$ID -pa=$PW "select node_name,filespace_name from filespaces
where
cast((current_timestamp-backup_end) days as decimal)> 2 and (filespace_type
like
'NTFS' or filespace_type like 'FAT' or filespace_type like 'API:NTEXC')" |
tail
+13 |sed '/ANS8002I/d' >>$REPORT
echo " NetWare " >>$REPORT
dsmadmc -id=$ID -pa=$PW "select node_name,filespace_name from filespaces
where
cast((current_timestamp-backup_end) days as decimal)> 2 and (filespace_type
like
'NTW:LONG' or filespace_type like 'NDS')" | tail +13 |sed '/ANS8002I/d'
>>$REPO
RT
That gives you the Win and Netware filesystems respectively. I'm sending
reports to the UNIX, NT, and ORACLE teams by conditioning against FS type.
Hope that helps!
Jerald Sheets, Systems Analyst TIS
Our Lady of the Lake Regional Medical Center
5000 Hennessy Blvd, Baton Rouge, LA 70808
Ph.225.765.8734..Fax.225.765.8784
E-mail: [EMAIL PROTECTED]
-----Original Message-----
From: Robin Lowe [mailto:[EMAIL PROTECTED]]
Sent: Monday, July 02, 2001 6:32 AM
To: [EMAIL PROTECTED]
Subject: Redirecting Output In Scripts
I am having a bit of bother routing output from a script to a file in an AIX
environment.
(I am fairly new to AIX having been an MVS/OS390 junky for 20 odd years !)
Currently we have an ADSM 3.1.2.50 (yes I know we are out of support -
upgrade to TSM 4.1 pending !!) on OS390 and an AIX server at TSM 3.7.2.
In the ADSM server, I can execute a SELECT command in Batch TSO Admin as
follows :
SELECT NODE_NAME,VOLUME_NAME FROM VOLUMEUSAGE -
> 'DM.PROD.ADSMP.VOLUSAGE'
The output goes to the OS390 dataset as expected.
However, in the TSM server on AIX, a similar command defined as a script and
then run issues an ANR2907E Unexpected SQL operator token - '>'.
eg : select node_name, volume_name from volumeusage > /adsmlogs/output.file
If you run the same command in a command line admin client session
(dsmadmc), the command does redirect the output okay !!
How can I get the output redirected in a script ?
I want to automate several scripts, redirecting the output to files which I
can post-process on OS390 with SAS.
Thanks
Robin Lowe
Senior Storage Analayst
For more information on Standard Life, visit our website
http://www.standardlife.com/ The Standard Life Assurance Company, Standard
Life House, 30 Lothian Road, Edinburgh EH1 2DH, is registered in Scotland
(No SZ4) and regulated by the Personal Investment Authority. Tel: 0131 225
2552 - calls may be recorded or monitored. This confidential e-mail is for
the addressee only. If received in error, do not retain/copy/disclose it
without our consent and please return it to us. We virus scan all e-mails
but are not responsible for any damage caused by a virus or alteration by a
third party after it is sent.