Visit The New, Modern Unix Linux Community


Run Bash Script thrice & then interval for 10 mins.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Run Bash Script thrice & then interval for 10 mins.
# 1  
Run Bash Script thrice & then interval for 10 mins.

Hi...

I am very new to shell scripting. I have written a script with help of this forum and some googling and it works the way I want it to. Currently this script checks for my SIP trunk registration every 5 seconds, if registration is not available then it reboots my router through telnet session and keeps rebooting it till the registration is available.

I would like the router rebooted only thrice at max and then wait for 10 minute, check for registration again and if failed then max 3 reboots and interval again.

However if the trunk registration is successful then script should keep checking it every 5 secs as per current practice.

Would be thankful for help provided.

Code:
#!/bin/bash
typeset -i interval=5
run=true
trunk=vonage
while [[ "$run" == "true" ]]; do
checktrunk=$(asterisk -rx "sip show peer $trunk" | grep -c "Status.*OK")
if [[ $checktrunk -eq 0 ]]; then
echo "$(date): SIP trunk registration failed."
sleep 2
{
sleep 2
echo admin
sleep 2
echo password
sleep 2
echo sys reboot
echo exit
} | telnet 192.168.1.1
else
echo "$(date): SIP trunk registration OK."
fi
sleep 5
done
exit 1

# 2  
Try this:
Code:
#!/bin/bash
typeset -i interval=5
run=true
trunk=vonage
reboot=0
while [[ "$run" == "true" ]]; do
   checktrunk=$(asterisk -rx "sip show peer $trunk" | grep -c "Status.*OK")
   if [[ $checktrunk -eq 0 ]]; then
      echo "$(date): SIP trunk registration failed."
      sleep 2
      {
      sleep 2
      echo admin
      sleep 2
      echo password
      sleep 2
      echo sys reboot
      echo exit
      } | telnet 192.168.1.1
      (( reboot += 1 ))
      if (( reboot == 3 )); then
      	sleep 600
      	reboot=0
      fi
    else
       echo "$(date): SIP trunk registration OK."
    fi
    sleep 5 
done
exit 1

This User Gave Thanks to Klashxx For This Post:
# 3  
Perfect!

Hi Klashxx,

This is perfect! Just what I wanted, however there's just one small problem.

During the sleep period of 600 secs (i.e ten mins break) the script does not look for registration failed or success.

For logging purposes I would like the script to check if during sleep period the trunk came back online.

If am not askin for much then please help Smilie Otherwise this is perfect and solved for me! Thanks a lot.
# 4  
So is what you are now asking for is a frequent poll and reboots at 10 minute intervals?

You have all you need really, you just have to adjust your logic and re-use what's been offered. Consider 600 seconds being a 120 x 5 second tests and code a loop accordingly. You'd be better trying and failing, then asking for help than asking for a ready made solution. You will then learn how things work and be better placed to support and adjust them in future.




Regards,
Robin
This User Gave Thanks to rbatte1 For This Post:
# 5  
Quote:
Originally Posted by rbatte1
You'd be better trying and failing, then asking for help than asking for a ready made solution. You will then learn how things work and be better placed to support and adjust them in future.
Totally agree to that. Am already trying different things on it. Smilie Thanks Smilie Smilie

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #334
Difficulty: Easy
For security reasons, Android versions are not named in alphabetical order.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script (ksh) to get data in every 30 mins interval for the given date

Hello, Since I m new to shell, I had a hard time to sought out this problem. I have a log file of a utility which tells that batch files are successful with timestamp. Given below is a part of the log file. 2013/03/07 00:13:50 Apache/1.3.29 (Unix) configured -- resuming normal operations... (12 Replies)
Discussion started by: rpm120
12 Replies

2. Shell Programming and Scripting

Main script triggers second and it has to run at specific interval

Hi Friends, I am newbie to shell programming and I am stuck trying to accomplish following task.We use Bamboo CI which executes script1 passing parameters. This Main script executes script2 as backend process as part of one of it statements. Task of script2 is to essentially check whether a... (0 Replies)
Discussion started by: aditya206
0 Replies

3. Shell Programming and Scripting

How to run a script everyday between 7 and 8 pm with the time interval of 5 minutes?

Hi, Can someone help me in running a cronjob everyday between 7 and 8 pm with the time interval of 5 minutes in between to repeat that script. The script is so small and I need that to run daily between this time. Please if possible provide me the syntax for this logic. Thanks. (4 Replies)
Discussion started by: cya
4 Replies

4. Shell Programming and Scripting

How to run the particular command continously for 30 mins in perl?

Hi, I have command that should run continuously for 30 mins but not every day not once in a week , not one in a month. whenever i call that particular program that command should run for 30 mins and stop. #Contents of test.pl `ls -l *.txt`; #some other lines of code to print ... (1 Reply)
Discussion started by: vanitham
1 Replies

5. Shell Programming and Scripting

How to schedule a cronjob to run every 15 mins ?

Hi, I want to schedule a job to run every 15 mins through cron. searched the forums and came up with this piece of code.i have given this in my crontab 0-59/15 * * * * sh /usr/ss/job But its not being run. Have i made any mistake here. Can any1 post the cron code for scheduling the... (5 Replies)
Discussion started by: suresh_kb211
5 Replies

6. UNIX for Dummies Questions & Answers

Run script in the background with a time interval

I have a script I want to run in the background, and I have looked it up but I am not exactly sure how to do. First of all to run it in the background do you have to put something in the script or is it just a command when you go to run it. I found this solution to it but once again I am not to... (2 Replies)
Discussion started by: mauler123
2 Replies

7. Shell Programming and Scripting

run script 1 minute interval without CronTab

I am using Solaris 9. I wish to run my script every 1 minute inteval. Though i can run it using below entry in crontab. * * * * /export/home/username/script/file_exist_&_run.sh in short above script will check whether a specific file exist in a directory. If it found it will inovke another... (10 Replies)
Discussion started by: thepurple
10 Replies

8. Shell Programming and Scripting

script to run repeatedly after a fixed interval of time

Hi , I am working on the following script . I want this script to run and scan the log file repeatedly after 3 hours. This script will run & scan just for the current date logs and after every 3 hours. Kindly advice what to add in this script for this purpose. #!/bin/sh diff common.log... (3 Replies)
Discussion started by: himvat
3 Replies

9. Shell Programming and Scripting

run a command automatically after every 10 mins

Hi friends, I need to write a script which runs a command (on that particular server only) after every 10 mins, and the contents are also echoed on that very terminal only. And then I need to compare the last two outputs, and mail if there is any difference in the last two outputs. Can we set... (4 Replies)
Discussion started by: vikas027
4 Replies

10. Shell Programming and Scripting

Shell Script Run Interval to be dynamic

Hi All. I have a script which has to be run periodically. The frequency of its run will be decided by a Database stored value PollRate. e.g. If PollRate value is 300secs, then the script should be executed every 5 minutes, if it's 1500secs, it should execute every 15 minutes. Is there... (5 Replies)
Discussion started by: rahulrathod
5 Replies

Featured Tech Videos