Sponsored Content
Top Forums Shell Programming and Scripting Check/get the exit status of a remote command executed on remote host through script Post 302953295 by lovesaikrishna on Wednesday 26th of August 2015 09:32:03 PM
Old 08-26-2015
Check/get the exit status of a remote command executed on remote host through script

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

Last edited by Don Cragun; 08-26-2015 at 10:42 PM.. Reason: Add CODE tags.
 

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
LUNCH(1)							   User Commands							  LUNCH(1)

NAME
lunch - Distributed process launcher SYNOPSIS
lunch [config file] [options] DESCRIPTION
Lunch is a distributed process launcher for GNU/Linux. The Lunch master launches lunch-slave processes through an encrypted SSH session if on a remote host. Those slave processes can in turn launch the desired commands on-demand. OPTIONS
--version show program's version number and exit -h, --help show this help message and exit -f CONFIG_FILE, --config-file=CONFIG_FILE Specifies the python config file. You can also simply specify the config file as the first argument. -l LOGGING_DIRECTORY, --logging-directory=LOGGING_DIRECTORY Specifies the logging and pidfile directory for the master. Default is /var/tmp/lunch -q, --log-to-file Enables logging master infos to file and disables logging to standard output. -g, --graphical Enables the graphical user interface. -v, --verbose Makes the logging output verbose. -d, --debug Makes the logging output very verbose. -k, --kill Kills another lunch master that uses the same config file and logging directory. Exits once it's done. EXAMPLES
See the examples directory for examples. On a Debian or Ubuntu system, they should located in the /usr/share/doc/lunch/examples/ directory. Here is the simplest example possible for the contents of a ~/.lunchrc file. It tells Lunch to call only one command, called "xeyes". add_command("xeyes") If you add more calls to add_command in this file, it will add more processes to be launched by Lunch. The add_command is the Python func- tion you need to call from your Lunch configuration file in order to add commands to be called by Lunch. If you add more than one command, they will be called in the order you add them in the file. Here is a more complex example of a configuration file. It creates three processes, with dependencies between processes. add_command("xeyes", identifier="xeyes") add_command("xlogo", depends=["xeyes"]) add_command("xclock", depends=["xeyes", "xlogo"]) The configuration file above will first start xeyes, and next xlogo, and finally xclock. If xeyes quits, all three processes will be stopped and restarted. If the xlogo process quits, the xclock will be stopped and restarted again when the xlogo is running. The "depends" keyword argument of the "add_command" function needs a list of strings as argument. Those string must match the "identifier" keyword argu- ment of an already added command. In the next example, we use SSH to launch processes on a remote host. Note that the lunch-slave script must be installed on each of the hosts on which to launch child processes. add_command("xeyes") add_command("xeyes", user="johndoe", host="example.org") It will create a process tree such as this one : lunch_______________lunch-slave____xeyes |____ssh____lunch-slave____xeyes The next one is a command that is run only once. add_command("ls -l", identifier="listing...", respawn=False) If, for some reason, it is easier for you to specify the host name for every command you add, even for the local host, you can call "add_local_address" with the master's IP as an argument. add_local_address("192.168.1.2") # We will not use SSH for this one, # since we just added its host using the # "add_local_address" function. add_command("xeyes", identifier="local_xeyes", user="johndoe", host="192.168.0.2") # We will use SSH for the next one, # since its host is not set as being the local host. add_command("xeyes -geometry 300x400", identifier="remote_xeyes", user="johndoe", host="example.org") OPERATION
The lunch executable is called the lunch master. The lunch-slave executable is called the lunch slave. If run as a master, it launches slaves. The slaves are responsible for launching child processes. The master launches slaves (via SSH or not) which, in turn, launch child processes. The Lunch configuration file can be provided as a first argument to the lunch executable. If not given, the Lunch master will look for the ~/.lunchrc file. If not found, lunch will print an error and exit. The lunch config file is written in the Python programming language, and must call the add_command function. The process ID of the master is written to a file located in /var/tmp/lunch/master*.pid, where * varies depending on the lunch config file used to configure the master. Here is how to kill every lunch master on your system : for f in /var/tmp/lunch/master-*.pid; do kill -15 $(cat $f); done GRAPHICAL USER INTERFACE
When invoked with the --graphical option, (-g) the lunch master shows a graphical user interface displaying the state of every managed process. When this window is closed, the lunch master exits and kills all its children processes. SSH KEYS MANAGEMENT
If using for more than one host, lunch needs a SSH server installed on each remote computer. It is also needed that the public SSH key of your user on the master computer must be installed on every slave computer. Here is a summary of the steps to do to create a SSH key on your master computer, and send your public key on each slave computer. $ mkdir -p ~/.ssh $ chmod 700 ~/.ssh $ ssh-keygen -f ~/.ssh/id_rsa -t rsa Next, for each slave host, do: $ ssh-copy-id <username>@<host> $ ssh username@host 'echo Hello' The latter command should display "Hello" when issued. If you start lunch via SSH, and launch from there commands other hosts, you must first make sure that the ssh-agent is running and that you have unlocked your private SSH key. It can be done like this: $ ssh-agent bash $ ssh-add HISTORY
2010 - Ported from multiprocessing to Twisted 2009 - Written by Alexandre Quessy <alexandre@quessy.net> with contributions from Simon Piette <simonp@sat.qc.ca> REPORTING BUGS
See http://svn.sat.qc.ca/trac/lunch for help and documentation. SEE ALSO
lunch-slave (1) lunch 0.4.0 January 2011 LUNCH(1)
All times are GMT -4. The time now is 11:17 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy