Sponsored Content
Top Forums Shell Programming and Scripting Check/get the exit status of a remote command executed on remote host through script Post 302953298 by Don Cragun on Wednesday 26th of August 2015 10:38:12 PM
Old 08-26-2015
Quote:
Originally Posted by lovesaikrishna
Geeks,

Could you please help me out in my script and identify the missing piece. I need to check/get the exit status of a remote command executed on remote host through script and send out an email when process/processes is/are not running on any/all server(s).

Here's the complete requirement.

From one server I need to ssh to all servers, check if desired processes are running and send out a consolidated email of all servers that are not running desired processes.

In some cases the server needs to be checked on 3-5 processes, they all need to be on the same script if possible else a different script.


This one works well as expected, when I run on single host from command line.

Code:
ssh -tq <ServerOne> "/bin/ps -ef | /bin/grep  'com.utv.wlrs.mer.mer pop start' " > /dev/null

I need this

Code:
for i in $Server_List
do
        output=`ssh $Server_List "/bin/ps -ef | /bin/grep -v grep | /bin/grep 'com.utv.wlrs.mer.mer pop start' > /dev/null 2>&1 | wc -l`
        echo "$output"
        if [ "${output}" != "1" ] ; then
                echo "Process is NOT running on $i" >> /var/tmp/failed.txt
                echo "                           " >> /var/tmp/failed.txt
        fi
done
mailx -s "Mer Failures on `date +%F`" $EMAIL_LIST < /var/tmp/failed.txt


Thanks,
Saikrishna
First, note that this script adds notes about failures to the end of existing text in /var/tmp/failed.txt. So, once an error is detected, future invocations of this script will add new failures to the end of the existing list instead of starting with a clean slate each time you run the script. Why output anything at all if the server is running the command you're looking for? Why print a blank line?

Second, you should ssh to a single server (presumably $i) instead of to your entire list of servers ($Server_List) in your loop. Assuming $Server_List expands to more than one word, your current command will always fail with a syntax error.

Third, you aways send mail even if no errors were detected.

Fourth, if you are trying to count the number of lines in ps output that match a certain string, why are you throwing away the output before counting the number of lines found?

Fifth, the output from wc -l contains some leading spaces (unless the number of lines counted is 10 million or larger); so a string comparison between the output from wc -l and "1" can never match.

And, finally, if the command:
Code:
ssh -tq <ServerOne> "/bin/ps -ef | /bin/grep  'com.utv.wlrs.mer.mer pop start' " > /dev/null

works to check the status of a single server, why are you using a different command to check the status of each server in your loop? What is it about the command above that tells you whether or not the command you're looking for is running on that server? Why can't you script determine whether or not the command you're looking for is running on any server when you run it inside your for loop?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

how to find the exit status for the last executed command

I am executing a find command in my script i.e find $2 -type f -name '*.gif' -mtime +$1 -exec rm {} \; how do i check that this command is executed properly.. i would lke t trap the errror and display my error message kinly help.. this is an urgent issue. (1 Reply)
Discussion started by: vijay.amirthraj
1 Replies

2. Shell Programming and Scripting

Getting the exit status of a remote command

Hi to everyone. How can I get the exit status from a remote command executed with rexec? :eek: machine A has RedHat Linux 9 and the remote machine B has SCO UNIX. Code: rexec -l user -p password host sh /u/files/scripts/seq_cal.sh 2006 08 I want the exit status returned by... (1 Reply)
Discussion started by: zoonalex
1 Replies

3. UNIX for Dummies Questions & Answers

Bash Script to check Remote Host Connection

Hi all, Can anyone tell/guide me how to check remote host is up/running using bash script? Thanks. Zulfiqar (5 Replies)
Discussion started by: zulfikarmd
5 Replies

4. Shell Programming and Scripting

command to check whether the remote host is up or not

Hi, My script needs to check whether the remote host is up or not. If it is up i need to start few servers in that host or else just a notification should be sent that the remote host is down? Could someone help me out in this? Regards Arun (4 Replies)
Discussion started by: arunkumarmc
4 Replies

5. Solaris

Checking the port status of a remote host

Hi there I am in the process of writing a script to check whether a port on a remote system is up or not. Here's what I have so far: #!/bin/bash telnet xx.xx.xx.xx 80 | (echo "^]") if ]; then echo "Please check Web services " | mailx -s "Please check webservices... (1 Reply)
Discussion started by: notreallyhere
1 Replies

6. Shell Programming and Scripting

Expect script: obtain the exit code of remote command

Hi all, I'm trying to run the sipp simulator in crontab but after some attempt I came to the conclusion that for some reason this isn't possible (maybe due to sipp interactive nature). This is confirmed by these posts. Now I'm trying to launch sipp from an expect script that runs in crontab. ... (0 Replies)
Discussion started by: Evan
0 Replies

7. Solaris

Check executed commands from remote hosts

Hello, Is there any way to check which user and from which IP executed a command to the server.I need something like the history but with information also from which IP the command executed. Thanks in advance (8 Replies)
Discussion started by: @dagio
8 Replies

8. Shell Programming and Scripting

Pause processes in remote host and resume execution in another remote host

Hi, Given addresses of 2 remote machines, using a shell script is it possible to get the state of running processes in "src" stop all the processes in "src" exit out of "src" ssh into "dest" resume the state of executing processes captured in step 1 in "dest" Assumption: "src" is... (3 Replies)
Discussion started by: Saeya Darsan
3 Replies

9. Shell Programming and Scripting

Script connect to remote server, not find files and exit only from remote server, but not from scrip

I have a script, which connecting to remote server and first checks, if the files are there by timestamp. If not I want the script exit without error. Below is a code TARFILE=${NAME}.tar TARGZFILE=${NAME}.tar.gz ssh ${DESTSERVNAME} 'cd /export/home/iciprod/download/let/monthly;... (3 Replies)
Discussion started by: digioleg54
3 Replies

10. UNIX for Beginners Questions & Answers

SFTP file check through a remote host

Hi all, posting my first time, hope not breaking posting rules with it, if yes, let me know. I'm trying to build a script to check a file in an sftp server through a remote server. The intention is to check the file in a sftp host, and if the file is found or not, it should send an email.... (4 Replies)
Discussion started by: MrShinyPants
4 Replies
All times are GMT -4. The time now is 01:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy