help with a script


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers help with a script
# 1  
Old 05-27-2010
help with a script

Hi

I am trying to write a script that will email me if one of our other process is bumping into each other.

I just found this code... but not sure what its doing.

The script that runs the process is called batch_download_main.sh. This is run by a cron job.

the code i have:
Code:
 #!/usr/bin/ksh


. ~/gateway/bin/gateway_env.sh

if [ `ps -elf | grep batch_download_x| grep -cv grep` = 0 ]
then
        rm -f $LOG_DIR/run_batch_output.log     
        nohup $EXEC_HOME/batch_output_x.sh > $LOG_DIR/run_batch_output.log 2>&1 & 
        echo 'Gateway output processing started.' 
else 
        echo 'Gateway output processing already running'; 
        echo ""Production Support please investigate"" | mailx -s ""The xxx backend Gateway application may be hung up."" -r akabir.naic 

fi

Can some one please explain what this is doing? the if condition is returning zero. so is this code is running another script?
# 2  
Old 05-27-2010
Quote:
Originally Posted by akabir77
Hi

I am trying to write a script that will email me if one of our other process is bumping into each other.

I just found this code... but not sure what its doing.

The script that runs the process is called batch_download_main.sh. This is run by a cron job.

the code i have:
Code:
#!/usr/bin/ksh
 
 
. ~/gateway/bin/gateway_env.sh
 
if [ `ps -elf | grep batch_download_x| grep -cv grep` = 0 ]
then
       rm -f $LOG_DIR/run_batch_output.log     
       nohup $EXEC_HOME/batch_output_x.sh > $LOG_DIR/run_batch_output.log 2>&1 & 
       echo 'Gateway output processing started.' 
else 
       echo 'Gateway output processing already running'; 
       echo ""Production Support please investigate"" | mailx -s ""The xxx backend Gateway application may be hung up."" -r akabir.naic 
 
fi

Can some one please explain what this is doing? the if condition is returning zero. so is this code is running another script?

Above script do following :

Code:
1) It starts execution using "K-shell".
2) Then it execut "~/gateway/bin/gateway_env.sh" file in the home directory of the user executing the script.
3) "~/gateway/bin/gateway_env.sh" file sets certain VARIABLES and their values.
4) Then the script execut "if-statment".
5) "If statment" serches wether script named "batch_download_x" is running or not.
6) If it doesn't find "batch_download_x" running then it removes the file "run_batch_output.log".And then starts "batch_output_x.sh " script.
7) And if it finds "batch_download_x" running then it just print the message "'Gateway output processing already running" and mail the content "Production Support please investigate" to akabir.naic (which I think is wrong e-mail ID). 

SmilieSmilie
This User Gave Thanks to Reboot For This Post:
# 3  
Old 05-27-2010
ok that makes sense

Now I need to see when the script has started and figure out if it has been already over say 2 hour.

for getting the running time i run this
Code:
ps -ef | grep batch_download_x

which gives me back
Code:
splgwdv 12784 12767  0 13:13:06 pts/ta    0:00 /bin/ksh ./batch_download_x

1. now how to get that 13:13:06 out of it
2. compare it with system date

---------- Post updated at 03:07 PM ---------- Previous update was at 02:52 PM ----------

is there a way to run a command and get the result/output to a variable

I want to run this command

Code:
ps -ef | grep batch_download_x

and the want to put the output
Code:
splgwdv 12784 12767  0 13:13:06 pts/ta    0:00 /bin/ksh ./batch_download_x

to a variable

Moderator's Comments:
Mod Comment Code tags...

Last edited by Scott; 05-27-2010 at 05:09 PM.. Reason: Please use code tags
# 4  
Old 05-27-2010
Hi.

Using command substitution:

Generally using:
Code:
VAR=$(command)

i.e.
Code:
VAR=$(ps -ef | grep batch_download_x)

This User Gave Thanks to Scott For This Post:
# 5  
Old 05-27-2010
Quote:
Originally Posted by scottn
Hi.

Using command substitution:

Generally using:
Code:
VAR=$(command)

i.e.
Code:
VAR=$(ps -ef | grep batch_download_x)

Thanks now hwo do I get the time out of the result

I am trying like this

Code:
 VAR=$(ps -ef | grep batch_download_x)
        echo "FTP_FILE_DATE $VAR"

        FTP_HOUR=$(echo $VAR|cut -c5-2)
        FTP_MIN=$(echo $VAR|cut -c5-4)
        FTP_SEC=$(echo $VAR|cut -c5-8)

        echo "Time: $FTP_HOUR:$FTP_MIN:$FTP_SEC"

But I am getting wrong info.

I was reading this thing in internet where it says
Quote:
-c list Cut based on character positions specified by list
(-c 1-72 extracts the first 72 characters of each
line).
but if i say
Code:
FTP_HOUR=$(echo $VAR|cut -c23-2)

it errors out

---------- Post updated at 03:29 PM ---------- Previous update was at 03:27 PM ----------

never mind got it... the last number is not number of character but upto which character...

---------- Post updated at 04:01 PM ---------- Previous update was at 03:29 PM ----------

Question how to get the time that the process was started...

I was using this
Code:
if [ `ps -elf | grep batch_output_x | grep -cv grep` = 0 ]
then
    echo 'Gateway output processing started.' 

else       
	VAR=$(ps -elf | grep batch_output_x )
	echo "FTP_FILE_DATE $VAR"

        FTP_HOUR=$(echo $VAR|cut -c23-24)
        FTP_MIN=$(echo $VAR|cut -c26-27)
        FTP_SEC=$(echo $VAR|cut -c29-30)

        echo "Time: $FTP_HOUR:$FTP_MIN:$FTP_SEC"


fi

but this doesn't work as I get different results depending on how many of that process is running...
 
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question