Need help in script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in script
# 1  
Old 10-06-2016
Need help in script

Hi,
I am trying to write a script to check for file existence but not able to figure out how to write it.
Scenario is :-
i have a script that runs a API command and save a file with name dummy.txt
Now i want to write a script that will check for existence of that file dummy.txt and if it does not find it ,it will try to run the other script that generates dummy.txt file. This process will go in loop for lets say 5 times. If in those 5 reattempta it is not ale to find it, script will send email that file not generated else it will succeed.

How to acheive that
# 2  
Old 10-06-2016
Read man test for help.
# 3  
Old 10-06-2016
i wrote something like this

Code:
for i in 1..5
do
if [ ! -s "$1" ]
then
ksh tokesn.ksh
fi
done

if file is not there, it will run ksh tokesn.ksh and loop in 5 times but i want to add like evne after 5 times it does not file i need email to be triggered that file is not present.
Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules when displaying sample input, sample output, and code segments.

Last edited by Don Cragun; 10-06-2016 at 04:46 AM.. Reason: Add CODE tags.
# 4  
Old 10-06-2016
How about adding something like
Code:
if [ ! -s "$1" ]
then
mail -s"file missing" mail@address
fi

after the done?
# 5  
Old 10-06-2016
modified script:-
Code:
#!/bin/ksh
for (( i=1; i<=3; i++ ))
do
if [ ! -s "$1" ]
then
cd /local/test;
curl -k -c /local/test/dummy.txt -d  "https://ww.ggole.com/getToken"
fi
done

the ebove one is working fine. i need to add one condition like if even after 3 attempts, file is not found, it will send one email that file not found.

---------- Post updated at 03:10 AM ---------- Previous update was at 03:00 AM ----------

alos instead of -s if i want to use somethigng liek if file size less than 200 byte it should go in loop for three times else come out of loop after three times and send email


Moderator's Comments:
Mod Comment
Please wrap all code, files, input & output/errors in CODE tags.
It makes it far easier to read and preserves multiple spaces for indenting or fixed width data.
# 6  
Old 10-06-2016
Quote:
Originally Posted by rajrishi990
i wrote something like this

Code:
for i in 1..5
do
if [ ! -s "$1" ]
then
ksh tokesn.ksh
fi
done

if file is not there, it will run ksh tokesn.ksh and loop in 5 times but i want to add like evne after 5 times it does not file i need email to be triggered that file is not present.
Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules when displaying sample input, sample output, and code segments.
What shell are you using to run the script above?

What operand are you passing to that script when you invoke it? Does the file named by that operand exist? If it does exist, how big is it?

Why will running tokesn.ksh five times do anything that running it one time will not do? What does tokesn.ksh do?

If the size of the file named by the operand you pass to your script when you invoke it has size zero the first time through your loop, why are you testing it four more times without doing anything that might make any changes to that file?
# 7  
Old 10-06-2016
Code:
#!/bin/ksh
for (( i=1; i<=3; i++ ))
do
if [ ! -s "$1" ]
then
cd /local/test;
curl -k -c /local/test/dummy.txt -d  "https://ww.ggole.com/getToken"
fi
done

---------- Post updated at 03:22 AM ---------- Previous update was at 03:18 AM ----------

Quote:
Originally Posted by Don Cragun
What shell are you using to run the script above?

What operand are you passing to that script when you invoke it? Does the file named by that operand exist? If it does exist, how big is it?

Why will running tokesn.ksh five times do anything that running it one time will not do? What does tokesn.ksh do?

If the size of the file named by the operand you pass to your script when you invoke it has size zero the first time through your loop, why are you testing it four more times without doing anything that might make any changes to that file?





Reply:-

Modified code:-
Code:
#!/bin/ksh for (( i=1; i<=3; i++ )) do if [ ! -s "$1" ] then cd /local/test; curl -k -c /local/test/dummy.txt -d  "https://ww.ggole.com/getToken" fi done

I am trying to hit the link that generated dummy.txt and stored in test folder.
I will hit it . If dummy.txt is not generated , i will retry to hit the links three more times to see if the file has generated.
Even after that it has not generated, i want to send email that files not generated.
So that email part i am not able to use since if a file is not found even after three attermpts, it is sending me mails three time. i want it only one email.
Also i want to put instead of -s , something link if files size less than 200byte then hit link thrice else go ahead

Last edited by rbatte1; 10-06-2016 at 06:20 AM.. Reason: Added CODE tags
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