Do you know how long the commands on the remote machine will approximately take? If so you could run the ssh-command in the background and then use sleep to let pass this time (plus some for contingency). If the command the still runs, you consider it to be hanging and kill it, if it has finished it is ok. You can use the "jobs" built-in ksh command to check the status of the job.
We suppose the commands you want to run remotely will take 20 seconds approximately. We add 10 seconds just to be sure and put the IP adress of the host to be contacted in a variable which is read in a loop :
Code:
.... < your script >....
cat list_of_ipadresses | while read ipadress ; do
ssh ssh $ipadress "<...commands ..>" &
sleep 30
jobs > /dev/null
if [ $(jobs -p %s 2>/dev/null| wc -l) -ge 1 ] ; then
print - "an error occurred contacting $ipadress
kill %1
else
print - "success contacting $ipadress"
fi
done
...
The first "jobs" statement is there to clear the display of all the "done"-messages if backgroup jobs already terminated during the sleep-statement.
bakunin
thank you so much Bakunin, will try this code and let you know the results.
But I am not very sure about the ksh shell.
Thanks a TON !!
Last edited by vikas027; 11-04-2007 at 09:26 PM..
Reason: forgot something
We have a unix script scheduled to execute once in a day, some times it hangs on the server and never performs its operations, we need to manually kill the process and re-start that script, is there any way to have notification when the script hangs on the server.
Thanks & Regards,
Murthy. (3 Replies)
Hi,
Im creating a script that is supposed to run commands on remote server using sftp.
My script is as below:
#!/bin/ksh
sftp remote_server
mypassword
cd /u08/mydir/allfiles
mget *
..
But this is what I got when I runned the script:
Connecting to remote server...... (3 Replies)
Hi, I have googled for quite some time and couldn't able to get what exactly I am looking for.. My query is "how to stop a shell script which is running inside a remote server, using a script"??? can any one give some suggestions to sort this out. (1 Reply)
Hi All,
I am using a expect script to run a shell script on remote server, the code is as follows. But the problem is that it executes only first command, and hangs it doesn't run the next commands.
spawn ssh $uid@$host
expect "password:"
send "$password\r"
expect "*\r"
send... (2 Replies)
hi,
I am using the below line to run a script from remote server(say server A) to another server(say server B).
ssh username@servername ksh script name.
The issue is the script logs into server B, executes the script on server B, transfers the file to server A but does not exit from... (4 Replies)
Hi,
I am trying to automate the process of fetching files from remote server to local server through sftp. I have the username and password for the remote solaris server. But I need to give password manually everytime i run the script.
Can anyone help me in automating the script such that it... (3 Replies)
Hi guys,
So i am in server1 and i have to login to server 2, 3,4 and run some script there(logging script) and output its result. What i am doing is running the script in server2 and outputting it to a file in server 2 and then Scp'ing the file to server1. Similarly i am doing this for other... (5 Replies)
Hello Every one!!
I am trying to write a shell script which will connect to a remote server and execute scripts which are at a certain path in the remote server.
Before this I am using a sudo command to change the user.
The place where I am stuck is, I am able to connect to the... (6 Replies)
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)
local script:
cat > first.sh
cd /tmp
echo $PWD
echo `whoami`
cd /tmp/123
tar -cvf 789.tar 456
sleep 10
except script:
cat > first
#!/usr/bin/expect
set ip 10.5.15.20
set user "xyz123"
set password "123456"
set script first.sh
spawn sh -c "ssh $user@$ip bash < $script" (1 Reply)
Discussion started by: Aditya Avanth
1 Replies
LEARN ABOUT HPUX
queuedefs
queuedefs(4) Kernel Interfaces Manual queuedefs(4)NAME
queuedefs - queue description file for at, batch, and crontab
SYNOPSIS DESCRIPTION
The file describes the characteristics of the queues managed by (see cron(1M)). Each non-comment line in this file describes one queue.
The format of the lines are as follows:
[njob[nice[nwait
The fields in this line are:
q The name of the queue, such that is the default queue for jobs started by (see at(1)), is the queue for jobs started by
(see at(1)), and is the queue for jobs run from a file (see crontab(1)). Queue names through designate user-defined
queues.
njob The maximum number of jobs that can be run simultaneously in that queue. Although any number can be specified here, (see
cron(1M)) by default limits the number of jobs that can be run on all the queues to 100. This limitation can be removed
by setting the variable to 1 in the file.
nice The value to give to all jobs in that queue that are not run with a user ID of super-user (see nice(1)). The default
value is 2.
nwait The number of seconds to wait before rescheduling a job that was deferred because more than njob jobs were running in that
job's queue, or because more than 100 jobs were running in all the queues (see njob above).
EXAMPLES
Consider the following file:
The file is interpreted as follows:
The queue, for jobs (see at(1)), can have up to 4 jobs running simultaneously, and those jobs will be run with a value of
1.
Since no nwait value is given, if a job cannot be run because too many other jobs are running, will wait 60 seconds
before trying again to run it (see cron(1M)).
The queue, for jobs (see at(1)), can have up to 2 jobs running simultaneously. Those jobs will be run with a value of 2.
If a job cannot be run because too many other jobs are running, will wait 90 seconds before trying again to run it.
All other queues can have up to 100 jobs running simultaneously. They will be run with a value of 2, and if a job cannot be run because
too many other jobs are running, will wait 60 seconds before trying again to run it.
SEE ALSO at(1), nice(1), crontab(1), cron(1M), proto(4).
STANDARDS CONFORMANCE queuedefs(4)