OpenManage Server Administrator 1.0 Batch Programming with the Command Line Interface Dell OpenManage™ STEP BY STEP By Michael O’Hara (michael_ohara@dell.com) Jianwen Yin (jianwen_yin@dell.com) Anil Rao (anil_rao@dell.com) June 2002 Contents Introduction ................................................................................................................................. 3 Writing Simple Batch File Commands Under Microsoft® Windows® 2000 ............................................................................................................................ 4 Setting the Asset Tag under Microsoft Windows .......................................................... 4 Simple reports ...................................................................................................................... 5 Writing Simple Batch File Commands Under Red Hat® Linux® ....................................... 6 Setting the Asset Tag Value under Red Hat Linux........................................................ 6 Simple Reports ..................................................................................................................... 6 Writing Simple Batch File Commands Under Novell® NetWare® .................................... 8 Simple Reports ..................................................................................................................... 8 Configuration from a Batch File .............................................................................................. 9 Writing Windows 2000 Shell Scripts ................................................................................ 9 Collecting output in XML format ..................................................................................................... 9 Writing Red Hat Linux Shell Scripts.............................................................................. 10 Configuration from a shell script file under Red Hat Linux ...................................................... 10 Collecting output in XML format under Red Hat Linux ............................................................ 11 How to Get a Batch File or Script File to the Machine ................................................ 11 How to Schedule a Task on the Target Machine ......................................................... 12 How to Get the Result Back ............................................................................................. 12 Conclusion ................................................................................................................................. 13 June 2002 Page 2 Dell Enterprise Systems Group Section 1 Introduction This Step-By-Step white paper describes a number of Dell OpenManage™ Server Administrator Command Line Interface (CLI) programming techniques in detail. This information is designed primarily for server system administrators. Some batch file examples are provided. The Dell OpenManage Server Administrator v1.0 product contains two methods to change or display systems management variables on a single computer, by an easy-to-use Web-based interface, or by an easy-to-use CLI. The CLI uses words to request reports, set systems management information, change bios settings, update bios or firmware etc. Basically, any systems management configuration that can be changed using the Web-based interface can also be changed using the command line interface. The command line interface can be used from the systems console of the managed server. It can also be used through remote console software, such as Microsoft Systems Management Server, or Computer Associates ShipIT, to run a batch file remotely. June 2002 Page 3 Dell Enterprise Systems Group Section 2 Writing Simple Batch File Commands Under Microsoft® Windows® 2000 The CLI is designed to be OS independent. For example, instead of using the built in DOS file redirection output capability, the CLI uses a built in file redirection capability. However, some aspects of the batch files below are OS dependent, such as conditional execution. The examples below run under Microsoft Windows 2000. Setting the Asset Tag under Microsoft Windows The assettag is a customer assignable text field that can be used to identify your computer. This example shows how to set it with a batch file. It is called with one parameter, the asset tag value. For example, if this file is saved to asset.bat, it could be called by: a) asset mysystem b) asset thisassettagistoolong example b) will produce an error @echo off REM Example OpenManage Server Administrator batch file - Set the Asset Tag REM REM set the asset tag as assettag and output to a file named omtemp.txt REM one parameter expected, the asset tag value omconfig chassis info index=0 tag=%1 -outc omtemp.txt REM find "Error!" omtemp.txt if %errorlevel% EQU 0 goto setfailure goto setsuccessful :setfailure echo omconfig cannot set value ! goto done :setsuccessful echo omconfig set successfully ! :done pause @echo on June 2002 Page 4 Dell Enterprise Systems Group Alternatively, it is an option to choose to use the return value from the commands: omreport, omconfig, omdiag and omupdate in order to make errorlevel checks. This is defined as a return value of 0 for successful execution. Simple reports OpenManage Server Administrator allows for the generation of reports on just about any aspect of a server’s state or settings using the CLI omreport command. The following batch file generates some simple text reports and writes the output to a single text file: @echo off REM Example OpenManage Server Administrator batch file REM The name of the output text file is passed to this batch file as a parameter REM REM Write system summary information to a new file omreport system summary -outc %1 REM REM Now lets get health summary and append it omreport chassis -outa %1 REM REM append asset information omreport system assetinfo -outa %1 REM REM append probe information omreport chassis currents -outa %1 omreport chassis fans -outa %1 omreport chassis temps -outa %1 omreport chassis volts -outa %1 If the above batch file was saved as report.bat, then it could be invoked by typing “report report.txt” . The text file report.txt would be written to the current directory of the server and will contain the requested reports concatenated together. June 2002 Page 5 Dell Enterprise Systems Group Section 3 Writing Simple Batch File Commands Under Red Hat® Linux® Examples of batch files that are OS dependent for Red Hat Linux are shown in this section. Setting the Asset Tag Value under Red Hat Linux This example sets the asset tag value. It is called with one parameter, the asset tag value. Example, if this file is saved to asset.sh, it could be called by: a) ./asset.sh mysystem b) ./asset.sh thisassettagistoolong example b) will produce an error #!/bin/sh # Example OpenManage Server Administrator shell script file - Set the Asset Tag # # set the asset tag as assettag and output to a file named omtemp.txt # one parameter expected, the asset tag value omconfig chassis info index=0 tag=$1 -outc omtemp.txt # grep Error omtemp.txt if [ $? = 0 ]; then echo omconfig cannot set value ! else echo omconfig set successfully fi Alternatively you can choose to use the return value from the commands: omreport, omconfig, omdiag and omupdate in order to make $? checks. This is defined as a return value of 0 for successful execution. Simple Reports The following batch file generates some simple text reports and writes the output to a shell script file. June 2002 Page 6 Dell Enterprise Systems Group #!/bin/sh # Example OpenManage Server Administrator batch file # The name of the output text file is passed to this batch file as a parameter # # Write system summary information to a new file omreport system summary -outc $1 # # Now lets get health summary and append it omreport chassis –outa $1 # # append asset information omreport system assetinfo -outa $1 # # append probe information omreport chassis currents -outa $1 omreport chassis fans -outa $1 omreport chassis temps -outa $1 omreport chassis volts -outa $1 If the above shell script file was saved as report.sh, after changing its mode to executable (chmod a+x report.sh), then it could be invoked by typing “report.sh report.txt”. The text file report.txt is written to the current directory of the server and contains the requested reports concatenated together. June 2002 Page 7 Dell Enterprise Systems Group Section 4 Writing Simple Batch File Commands Under Novell® NetWare® Under Novell NetWare, files with extension .ncf can be used for batch files. For example the simple report can be written as shown below. Simple Reports The following batch file generates some simple text reports and writes the output to a batch file. (Instead of using command line parameters, give the file name directly.) # Example OpenManage Server Administrator batch file # The name of the output text file is passed to this batch file as a parameter # # Write system summary information to a new file omreport system summary -outc report.txt # # Now lets get health summary and append it omreport chassis –outa report.txt # # append asset information omreport system assetinfo -outa report.txt # # append probe information omreport chassis currents -outa report.txt omreport chassis fans -outa report.txt omreport chassis temps -outa report.txt omreport chassis volts -outa report.txt If the above shell script file was saved as report.ncf. After those batch files or shell script files are created, you can ftp them to each machine, and run them on each machine. Under Microsoft Windows, if SMS (System Management Server) has been installed, you can packet those files, distribute them and schedule them on each SMS client through SMS. OMSA CLI provides the flexibility for you to use batch or script to automatic those commands, and it is your choice what kind of tool you like to use. June 2002 Page 8 Dell Enterprise Systems Group Section 5 Configuration from a Batch File Writing Windows 2000 Shell Scripts The CLI command omconfig allows a user to change settings on a server. This example shows haw to change some BIOS settings and some probe warning thresholds: @echo off REM Example OpenManage Server Administrator batch file - omconfig REM The name of the output text file is passed to this batch file as a parameter REM REM on boot, set numlock to off, set speaker to off, bootsequence to hard drive only omconfig chassis biossetup attribute=numlock setting=off -outc %1 omconfig chassis biossetup attribute=speaker setting=off -outa %1 omconfig chassis biossetup attribute=bootsequence setting=hdonly -outa %1 REM REM Set some probe warning thresholds to tighter values. REM Note probes are identified by index number. In this example, REM these settings are specific to a Dell PowerEdge 2400 omconfig chassis fans index=0 minwarnthresh=1000 maxwarnthresh=5000 -outa %1 omconfig chassis fans index=0 minwarnthresh=1000 maxwarnthresh=5000 -outa %1 REM REM make the server as quiet as possible omconfig chassis fancontrol speed=quiet If the above batch file was saved as config.bat, then it could be invoked by typing “config conf.txt” . The text file config.txt would be written to the current directory of the server and will contain the results of the configuration. Collecting output in XML format Reports may be generated in table format, plain text, semicolon separated values, or XML. If XML format output is desired, then it is recommended to write the ouput of each report to a separate file. This is because each XML format report is well June 2002 Page 9 Dell Enterprise Systems Group formatted XML. However, the action of concatenating two or more reports together will result in malformed XML. Example @echo off REM Example OpenManage Server Administrator batch file - XML format reports REM REM Write system summary information to a new file omreport system summary –outc summary.xml –fmt xml REM REM Now lets get health summary omreport chassis -outc health.xml –fmt xml REM REM append asset information omreport system assetinfo –outc assetinfo.xml –fmt xml REM REM append probe information omreport chassis currents -outc currents.xml –fmt xml omreport chassis fans -outc fans.xml –fmt xml omreport chassis temps -outc temps.xml –fmt xml omreport chassis volts -outc volts.xml –fmt xml Writing Red Hat Linux Shell Scripts The examples below run under Red Hat Linux. It is the counterpart of above introduced examples in Red Hat Linux Shell script. Configuration from a shell script file under Red Hat Linux #!/bin/sh # Example OpenManage Server Administrator batch file - omconfig # The name of the output text file is passed to this batch file as a parameter # # on boot, set numlock to off, set speaker to off, bootsequence to hard drive only omconfig chassis biossetup attribute=numlock setting=off -outc &1 omconfig chassis biossetup attribute=speaker setting=off -outa &1 omconfig chassis biossetup attribute=bootsequence setting=hdonly -outa &1 # # Set some probe warning thresholds to tighter values. # Note probes are identified by index number. In this example, # these settings are specific to a Dell PowerEdge 2400 omconfig chassis fans index=0 minwarnthresh=1000 maxwarnthresh=5000 -outa &1 omconfig chassis fans index=0 minwarnthresh=1000 maxwarnthresh=5000 -outa &1 # June 2002 Page 10 Dell Enterprise Systems Group # make the server as quiet as possible omconfig chassis fancontrol speed=quiet # -outa &1 &2 If the above shell script file was saved as config.sh, after changing its mode to executable (chmod a+x config.sh), then it could be invoked by typing “config.sh conf.txt”. The text file config.txt would be written to the current directory of the server and will contain the results of the configuration. Collecting output in XML format under Red Hat Linux Reports may be generated in table format, plain text, semicolon separated values, or XML. If XML format output is desired, then it is recommended to write the ouput of each report to a separate file. This is because each XML format report is well formatted XML. However, the action of concatenating two or more reports together will result in malformed XML. Example #!/bin/sh # Example OpenManage Server Administrator batch file - XML format reports # The name of the output text file is passed to this batch file as a parameter # # Write system summary information to a new file omreport system summary –outc summary.xml –fmt xml # # Now lets get health summary omreport chassis -outc health.xml –fmt xml # # append asset information omreport system assetinfo –outc assetinfo.xml –fmt xml # # append probe information omreport chassis currents -outc currents.xml –fmt xml omreport chassis fans -outc fans.xml –fmt xml omreport chassis temps -outc temps.xml –fmt xml omreport chassis volts -outc volts.xml –fmt xml How to Get a Batch File or Script File to the Machine 1. 2. June 2002 ftp, if the ftp server is setup for Microsoft Windows or ftp is enabled under Red Hat Linux, you can ftp the batch files or script files to the target machine; Through the following batch file under Microsoft Windows: Let us assume that the batch file named repgen.bat is under a shared directory “test” on machine “testmachine” under domain “testdoamin”: @echo off REM Delete the mapping of driver j: net use j: /d REM Mapping the driver j: to the testmachine Page 11 Dell Enterprise Systems Group net use j:\\testmachine\test /user:testdomain\username password /per:no REM copy the repgen.bat file to the current directory copy j:\repgen.bat . REM Delete the mapping of driver j: Net use j:/d How to Schedule a Task on the Target Machine 1. 2. at for Red Hat Linux: if you want to run the command at 6:00pm tomorrow, you can write: at 6:00pm tomorrow –f genrep.sh if you want to run the command at 6:00pm everyday, you can write: at 6:00pm –f genrep.sh scheduler for Microsoft Windows under StartSettingsControl PanelScheduled TasksAdded Schedule Task doubled click it, you will get a wizard to schedule the task as you want. How to Get the Result Back 1. 2. ftp, similarly if the ftp server is setup for Microsoft Windows or ftp is enabled under Red Hat Linux, you can ftp the testing result from the target machine; Through the following batch file under Microsoft Windows: Let us assume that the report file named report.txt is under the current directory, and you want to copy it to a shared directory “test” on machine “testmachine” under domain “testdoamin”: @echo off REM Delete the mapping of driver j: net use j: /d REM Mapping the driver j: to the testmachine net use j:\\testmachine\test /user:testdomain\username password /per:no REM copy the repgen.bat file to the current directory copy report.txt j:\ erase report.txt REM Delete the mapping of driver j: Net use j:/d You can schedule a task to run this task everyday after giving even time to generate the report. June 2002 Page 12 Dell Enterprise Systems Group Section 6 Conclusion Dell OpenManage Server Administrator provides a Command Line Interface for environments in which system administrators perform most tasks using scripts, which run on groups of servers. The examples provided in this paper are some typical examples to use to write batch or shell scripts through CLI, schedule the tasks on each server and get reports back regularly. It is possible to make full use of the flexibility provided by CLI by extending the examples presented in this paper through whatever tools users choose within their systems for batch or shell scripts. THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL ERRORS AND TECHNICAL INACCURACIES. THE CONTENT IS PROVIDED AS IS, WITHOUT EXPRESS OR IMPLIED WARRANTIES OF ANY KIND. Dell and PowerEdge are trademarks of Dell Computer Corporation. Microsoft and Windows are registered trademarks of Microsoft Corporation. Red Hat is a registered trademark of Red Hat, Inc. Linux is a registered trademark of Linus Torvalds. Novell and NetWare are registered trademarks of Novell Corporation. Other trademarks and trade names may be used in this document to refer to either the entities claiming the marks and names or their products. Dell disclaims proprietary interest in the marks and names of others. ©Copyright 2002 Dell Computer Corporation. All rights reserved. Reproduction in any manner whatsoever without the express written permission of Dell Computer Corporation is strictly forbidden. For more information, contact Dell. Information in this document is subject to change without notice. June 2002 Page 13 Dell Enterprise Systems Group