Controlling time stamps in a bash script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Controlling time stamps in a bash script
# 1  
Old 06-06-2016
Controlling time stamps in a bash script

Hi,
I have a bash script that generates CSV (.txt) files at fairly regular time intervals. I'm currently time stamping each batch of measurements at the time I write the rows into a MySQL database. As the result, one set of data might get the time 12:01:32 and the next set of data gets the time 12:03:14. The average time between measurements is about 1-3 minutes.

This works fine, but I'm working on a frontend where I want to display measurements from various events in the same graphs, and the resolution should be 5 minutes.

So my script should ideally only kick off a new measurement every 5th minute and when it stores the times it should also be at even 5-minute intervals.

Some pseudo code showing the current behavior if it explains better:

Code:
#!/bin/bash

while true
do

   # Code to generate csvFile.txt. Should be initialized every 5th min.

   # Below is how I currently time stamp the rows in the database
   # Here I want the time given at fixed 5 minute intervals
   awk -v A="$(date "+%y%m%d  %T")"  '{print A,$0}' csvFile.txt | tr -s ' ' 
   ';' > csvFileToDB.txt

   # Code to inser the resulting files to MySQL not shown here
 fi
done

To summarize the wanted behavior with an example:

The script starts a new measurement at a fixed 5-minute interval. For example, one interval should start at 12:00. It then generates the CSV file (it normally takes one to two minutes) and stores the values to the database with the start time for the interval (in this case 12:00). Then the script waits until 12:05 before it starts over with the same procedure again.

Anyone who knows how to do this?

Thanks
//Z
# 2  
Old 06-06-2016
Use cron to run things you're scheduling regularly, put it in your crontab(crontab -e) like this:

Code:
0-59/5 * * * * /path/to/script.sh

Edit your cron table with cron -e. If you get errors, try setting a more complete PATH in your script.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 06-06-2016
Can you insert a sleep command into the loop? If it kicked off a background job every five minutes, sleep 300 would do the job. If every five minutes was a definite goal, code to create a time five minutes from now could be put into a script variable, then you would start your procedure. After that procedure, another loop that would only sleep for 1 second would wait for the target time to catch up.
If exactly five minutes is not that critical, just sleep for 3.5 minutes (tweak as needed) before starting over.
This User Gave Thanks to wbport For This Post:
# 4  
Old 06-06-2016
Thanks for suggestions. I need this to happen at exactly 5 min intervals as I have other databases with values also from each 5 min and I want to be able to print data from different tables in the same graphs. So the times have to be aligned (means 'sleep' is out of question). I will read up on crontab and see if it does the trick.
# 5  
Old 06-06-2016
That's pretty much what cron already does for you -- sleeps an exact interval, corrects, and runs your program.
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 06-07-2016
Ok, tested and that was EXACTLY what I wanted to achieve. Thanks a lot Corona688! Smilie
This User Gave Thanks to Zooma For This Post:
# 7  
Old 09-27-2016
Crontab does not start

Back to this one again. Tried to automate a script called getStats.sh that looks like this:

Code:
#!/bin/bash
./startMeasuring.sh
./collectStats.sh

I go to crontab -e and add this line:
Code:
0-59/5 * * * * /usr/Measurements/getStats.sh

The problem is that nothing happens. I have tried to reboot the computer, but the scheduled task never starts.

Does someone know what the problem is? Or do you know how to figure it out through logs etc?

Cheers/Z
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Cygwin_openssh time stamps

I've installed cygwin_openssh on Windows 2012 R2 and it's working great. My issue is when a file is uploaded say from a different timezone, when it is uploaded, it doesnt pick up the sftp servers time.. Is there a way to fix that? i.e. When someone in PST uploads a file to this server in EST,... (0 Replies)
Discussion started by: MikeAdkins
0 Replies

2. Shell Programming and Scripting

Collecting logs between two time stamps

Hi, please help me to collect the entire log files between two time stamp. for example, I am looking script to collect the entire log between "2015-03-27 15:59" to "2015-03-27 16:15" in the below sample log file. OS : RHEL 6.3 Date/Time : 24 hours format, the time is printing each log... (12 Replies)
Discussion started by: jerryknj
12 Replies

3. Shell Programming and Scripting

How to get the Logs between two Time Stamps?

Hi, I have been working on the error Log script, where errors are pulled from server. I need to pull the data of the error logs between two dates & time, for example : 22/12/2014 20:00:00 22/12/2014 22:00:00 Whatever error have came during this duration. Now the question is the record... (6 Replies)
Discussion started by: amitgpta90
6 Replies

4. Shell Programming and Scripting

Increment time stamps.

Hi Gents. Please can you help me to solve a problem. I have a long list of files, which I need to change the time stamp. -r--r--r-- 1 geo2 geovect 47096216 Feb 8 10:40 00000009.segd -r--r--r-- 1 geo2 geovect 47096216 Feb 8 10:40 00000010.segd -r--r--r-- 1 geo2 geovect 47096216 Feb ... (11 Replies)
Discussion started by: jiam912
11 Replies

5. Shell Programming and Scripting

date time stamps in bash

I'm looking for a way to have the "date" command output the date in a specific format. I'm not familiar with the different ways to use the date command at all. i read up on it, but i dont get how to manipulate it. i know that i can get the date format to give me a format like: 2012-10-13... (6 Replies)
Discussion started by: SkySmart
6 Replies

6. Shell Programming and Scripting

Time difference between two time stamps

Hi Friends, I have 2 varaibles which contain START=`date '+ %m/%d/%y %H:%M:%S'` END=`date '+ %m/%d/%y %H:%M:%S'` i want the time difference between the two variables in Seconds. Plz help. (2 Replies)
Discussion started by: i150371485
2 Replies

7. Shell Programming and Scripting

comparing time stamps

Hello All, I'm generating timestamps (file creation timestamps) for all the files in a directory. I need to compare all the timestamps. for example if i have 4 files and their timestamps are 20091125114556, 20091125114556,20091125114556,20091125114556 respectively. I need to differentiate... (9 Replies)
Discussion started by: RSC1985
9 Replies

8. UNIX for Dummies Questions & Answers

comparing time stamps

Hello All, I'm generating timestamps (file creation timestamps) for all the files in a directory. I need to compare all the timestamps. for example if i have 4 files and their timestamps are 20091125114556, 20091125114556,20091125114556,20091125114556 respectively. I need to differentiate... (1 Reply)
Discussion started by: RSC1985
1 Replies

9. UNIX for Dummies Questions & Answers

Problem with subtracting time stamps in excel..

Hi All, I need an unix script/command to delete the milliseconds from the time stamps so that it becomes compatible with Excel sheet while displaying finally. I have the following data in 2 columns which was obtained with some unix script(awk based) on some log files. Finally i want to... (1 Reply)
Discussion started by: ks_reddy
1 Replies

10. Shell Programming and Scripting

Copying Files in the same order along with time stamps

Hi , I am New to this group and would like to know if someone can help me on this issue : We need to copy some files from a particular directory to another directory in the same order and time stamps .How can this be achieved . For Ex : ./ABC/disk101/XYZ has 1000 files with varying... (2 Replies)
Discussion started by: shyam.appalla
2 Replies
Login or Register to Ask a Question