There are two main scenarios for using the agentcmd utility:
- With an agent on a system that has been added to Uptime Infrastructure Monitor. In this case, the hostname is in the up.time DataStore.
- With an agent that has been deployed on a system that has not been added to Uptime Infrastructure Monitor. If there is no agent on the system, or there are network problems, agentcmd returns the following error message:
ERR Unable to contact Agent (10.1.2.34 on port 9998)
You can use agentcmd in two ways:
Using agentcmd at the command line
The command line syntax of agentcmd is:
agentcmd <t#> <-/+s> <-p #> hostname command
t#= use timeout.
-s= do not use an SSL connection to the agent (default).
+s= connect to the agent using SSL.
If SSL is not enabled on the host, the following error message appears:
ERR The host was not configured to use SSL
-p #= connect to the agent on the specified port (default is 9998).
hostname= the name or IP address of the host on which the agent is running.
command= the agent command to run.
For example, to get basic system information from an agent running on the server Solaris1, type the following command:
agentcmd +s Solaris1 sysinfo
The agent will return output similar to the following:
SYSNAME=Solaris1 DOMAIN=myDomain.com ARCH="SunOS Solaris1 5.9 Generic_118558-03 sun4u sparc SUNW,Ultra-Enterprise" OSVER=5.9 NUMCPUS=4 MEMSIZE=1048576 PAGESIZE=8192 SWAPSIZE=1021624 GPGSLO=25 VXVM="" SDS="YES" HOSTID="808cf673" CPU0=" 0 - - 168 - UltraSPARC - " CPU1=" 1 - - 168 - UltraSPARC - " CPU4=" 4 - - 168 - UltraSPARC - " CPU5=" 5 - - 168 - UltraSPARC - " NET0=lo0=127.0.0.1 NET1=hme0=10.0.0.010
Using agentcmd in an agent-side script
As with netcat, agentcmd is typically used in a script on the monitoring station to perform the following tasks:
- Contact an agent system.
- Attempt to run a predefined agent-side script.
- Return the results of an agent-side script.
- Validate the status of those results.
- Return the status to Uptime Infrastructure Monitor.
The following example illustrates how to run agentcmd in an agent side script:
rexec in the command below does not indicate use of the rexec system utility. It is a keyword that is used to indicate to the agent that you are attempting to run a pre-defined command.
/usr/local/uptime4/scripts/agentcmd [-s/+s] -p [agent port] [agent hostname] rexec [password] [path]
If you use netcat in your scripts, see the following Knowledge Base articles for information on replacing netcat with agentcmd: