Listen sharp time to run a command inside a script


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Listen sharp time to run a command inside a script
# 1  
Listen sharp time to run a command inside a script

Hello,
Just wondered if there is any possibility to run a command at sharp time inside a script in linux. My question is not about crontab

Example:

Code:
#!/bin/bash

cd /home/database

for i in *
do
command 1
if time is 19:00, day is Monday then run command2
if time is 20:00, day is Tuesday, then run command3
if time is 22:00, day is Friday, then run command4
if time is 00:00, day is Thursday, then run command5
done

sleep 2
exit 0


many thanks
Boris

Last edited by baris35; 08-07-2017 at 11:48 AM.. Reason: days added
# 2  
Quote:
Originally Posted by baris35
Hello,
Just wondered if there is any possibility to run a command at sharp time inside a script in linux. My question is not about crontab

Example:

Code:
#!/bin/bash

cd /home/database

for i in *
do
command 1
if time is 19:00, day is Monday then run command2
if time is 20:00, day is Tuesday, then run command3
if time is 22:00, day is Friday, then run command4
if time is 00:00, day is Thursday, then run command5
done

sleep 2
exit 0


many thanks
Boris
I'm not sure what you mean by "sharp time" but does this help?
Code:
#!/bin/bash

cd /home/database

for i in *
do
   command 1
   case $(printf "%(%H:M_%u)T" -2) in
       19:00_1) command2 ;;
       20:00_2) command3 ;;
       22:00_5) command4 ;;
       00:00_4) command5 ;;
   esac
done

sleep 2
exit 0

The -2 argument to printf tells bash to substitute the time the shell (in this case the script) was invoked. You need bash 4.2 or later for this I believe.

Andrew
These 2 Users Gave Thanks to apmcd47 For This Post:
# 3  
Hello Andrew,
My fault, I meant just "sharp". The word "sharp" itself is already indicating the time.
I am gonna check it and leave my comment here after then.


Many thanks
Boris

Last edited by baris35; 08-07-2017 at 12:16 PM..
# 4  
It depends on what you mean by "sharp" - the desired point in time on the nose, within a second, a few seconds, a (few) minutes?
For performance and system resources' reasons, I'd abstain from running a tight loop, checking the time within and, if met, run your command.
You could calculate the time difference from NOW, sleep for the delta seconds, an then run the command, eventually in a background subshell.
Did you consider the at command?
This User Gave Thanks to RudiC For This Post:
# 5  
Hello Rudic,
Thanks for your feedback.
How may I integrate time controller into main script?

main script
Code:
#!/bin/bash
cd /home/database1

for i in *.mp4
do
/usr/bin/ffmpeg -i $i -c copy -f mpegts pipe:1
done

time_controller
Code:
#!/bin/bash
cd /home/database1
find . -maxdepth 1 -iname '*.mp4' -exec ffprobe -v quiet -of csv=p=0 -show_entries format=duration {} \; | paste -sd+ -| bc > total_duration
sleep $(cat total_duration) && 
cd /home/database2 
for i in *.mp4
do
/usr/bin/ffmpeg -i $i -c copy -f mpegts pipe:1
done


Thanks
Boris
# 6  
Not sure I understand how "time_controller" works and what you want it to do... above example gravely deviates from the one in your post#1.
# 7  
Hello Rudic,
I could not find any example explaining how to run at command +x seconds later. Tutorials are showing only how to run x hours later or days later etc. That's why I calculated total duration of all files inside database1. I am not sure how to use at command while there is pipe inside main script. .


Thanks for your patience
Boris
Login or Register for Dates, Times and to Reply

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

Test Your Knowledge in Computers #671
Difficulty: Medium
DOS primarily consists of Microsoft's MS-DOS and a rebranded IBM version under the name PC DOS, both of which were introduced in 1981.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Run awk command inside ssh

I am trying to run an awk command inside of ssh and it is not working. These are AIX servers. for i in `cat servers`; do ssh $i "/bin/hostname; df -g | awk '/dev/ && $4+0 > 70'"; done server1 server2 server3 server4 I also tried these two methods and they did not work. It just seemed... (5 Replies)
Discussion started by: cokedude
5 Replies

2. Shell Programming and Scripting

Capture run time of python script executed inside shell script

I have bash shell script which is internally calling python script.I would like to know how long python is taking to execute.I am not allowed to do changes in python script.Please note i need to know execution time of python script which is getting executed inside shell .I need to store execution... (2 Replies)
Discussion started by: Adfire
2 Replies

3. Shell Programming and Scripting

Run bash command inside zsh script

Hi, I would like to run following code in bash inside a zsh script. (In this case is output unfortunately very different if you run it in zsh). I tried to put "bash" in front of the code but I obtained following error message "bash: do: No such file or directory " eve though I merged the whole... (7 Replies)
Discussion started by: kamcamonty
7 Replies

4. Shell Programming and Scripting

Run .exe inside shell script

I have to run some shell scripts in Windows using Cygwin. I am able to achieve that using %BASH% --login -i "/cygdrive/d/script.sh" , where %BASH% is an environment variable in Windows set to C:\cygwin\bin\bash.exe. I have a created a Cygwin environment variable $EXE_PATH =... (3 Replies)
Discussion started by: HemanthJayasimh
3 Replies

5. Shell Programming and Scripting

Script for telnet and run one command kill it and run another command using while loop

( sleep 3 echo ${LOGIN} sleep 2 echo ${PSWD} sleep 2 while read line do echo "$line" PID=$? sleep 2 kill -9 $PID done < temp sleep 5 echo "exit" ) | telnet ${HOST} while is executing only command and exits. (5 Replies)
Discussion started by: sooda
5 Replies

6. Shell Programming and Scripting

Bash- Command run from script does not pass full parameters with spaces inside

There's a JavaScript file that I call from command line (there's a framework) like so: ./RunDiag.js param1:'string one here' param2:'string two here' I have a shell script where I invoke the above command. I can run it in a script as simple as this #!/bin/bash stuff="./RunDiag.js... (4 Replies)
Discussion started by: AcerAspirant
4 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. Shell Programming and Scripting

how to run shell script inside expect script?

I have the code like this : shell script continues ... .... expect -c" spawn telnet $ip expect "login:" send \"$usrname\r\" expect "Password:" send \"$passwd\r\" expect "*\>" send \"$cmdstr\r\" ... (1 Reply)
Discussion started by: robbiezr
1 Replies

9. Shell Programming and Scripting

Run the command inside perl script

I have a command which will run fine in a unix command prompt. Can you tell how to interprete this command inside perl script...... The command is : perl -pe 's/(\|333\}.*)\}$/$1|1.6}/' FIA.txt This will search for the number 333 and appends 1.6 at the end of that line....... (1 Reply)
Discussion started by: vinay123
1 Replies

10. Shell Programming and Scripting

How to run an SQL script inside a shell

How do I create a K Shell which would silently (without user input) logon to Oracle and run an SQL script? Any help will be greatly appreciated. Steve (1 Reply)
Discussion started by: stevefox
1 Replies

Featured Tech Videos