Standardizing the time in the script

 
Thread Tools Search this Thread
Operating Systems Linux Debian Standardizing the time in the script
# 1  
Old 07-12-2017
Standardizing the time in the script

Hi,

I have created a script to generate a report 3 times every month.
Part of the script transfers files from one directory to the other.
These files span from a certain time range, like from the 2nd onwards, 8th onwards, and 16th onwards.
Therefore, for the first report of the month, if the team requests to start generating the report on the 4th, then I will have to copy files dated 2nd of the month to 4th of the month to another directory.

This is the command I use to transfer the file; eg for Jun :

Code:
mkdir -p /var/log/exim4/$YEAR/$DIR1
find . -type f -name 'mainlog.*' -newermt "Jun 2, 2017" ! -newermt "Jun 4, 2017" -exec cp {} $YEAR/$DIR1/ \;

What if I want this pattern every month? How and what do I substitute Jun 2, 2017 and Jun 4, 2017 with?

---------- Post updated at 06:35 PM ---------- Previous update was at 05:03 PM ----------

I know that we can use the -d option for date to display time described by STRING, not `now'.

Is it possible to use this option to display the date as 2nd of the month every month?

Example using this option :
Code:
date +"%Y-%m-%d" -d "8 days ago"

# 2  
Old 07-12-2017
Have you considered getting the year & month from the date command and forcing the day as a literal?

I'm not really clear what you are trying to achieve, but would this help?
Code:
date +"%Y-%m-02" -d "8 days ago"

If you are actually trying to use find, then if you can get the date in the correct format, then you can create a reference file to work from. Have a look at this and see if you can adjust it to your needs:-
Code:
ref_date_start=($date +%Y%m020000 -d "8 days ago")
ref_date_end=($date +%Y%m020000 -d "3 days ago")

touch -mt $ref_date_start /tmp/start_ref_file
touch -mt $ref_date_end /tmp/end_ref_file

find /path/to/search -newer /tmp/start_ref_file ! -newer /tmp/end_ref_file


I hope that this ends, but my apologies, sir/madam, if I've completely got confused. Smilie
Robin

Last edited by rbatte1; 07-12-2017 at 09:24 AM..
# 3  
Old 07-13-2017
Hi,

Thanks for your reply.
The info you gave on using "date +"%Y-%m-02" works. Means it shows the date as 2017-07-02.

I tested out running the command like this, and it seems like it lists down files :

Code:
root@L28mustang:/var/log/exim4# SECOND=$(date +"%Y-%m-02")
root@L28mustang:/var/log/exim4# NOW=$(date +"%Y-%m-%d")
root@L28mustang:/var/log/exim4# find . -type f -name 'mainlog.*' -newermt $SECOND ! -newermt $NOW -ls
5767230 3552 -rw-r-----   1 Debian-exim adm       3636932 Jul  8 06:25 ./mainlog.6.gz
5767319 2012 -rw-r-----   1 Debian-exim adm       2056368 Jul 12 06:25 ./mainlog.2.gz
5767260 1044 -rw-r-----   1 Debian-exim adm       1066100 Jul  7 06:25 ./mainlog.7.gz
5769152 15188 -rw-r-----   1 Debian-exim adm      15552467 Jul  2 06:25 ./mainlog.12.gz
6031883  900 -rw-r-----   1 Debian-exim adm        919512 Jul  9 06:27 ./2017/Jul2017_Blast_BC07/mainlog.2.gz
6031884 7476 -rw-r-----   1 Debian-exim adm       7655054 Jul 10 06:25 ./2017/Jul2017_Blast_BC07/mainlog.1
6031887    0 -rw-r--r--   1 root     adm             0 Jul 10 15:43 ./2017/Jul2017_Blast_BC07/mainlog.2.filtered
6031882 3552 -rw-r-----   1 Debian-exim adm       3636932 Jul  8 06:25 ./2017/Jul2017_Blast_BC07/mainlog.3.gz
6031886 16892 -rw-r--r--   1 root     adm      17295300 Jul 10 15:42 ./2017/Jul2017_Blast_BC07/mainlog.3.filtered
6031889    0 -rw-r--r--   1 root     adm             0 Jul 10 15:43 ./2017/Jul2017_Blast_BC07/mainlog.filtered
6031888    0 -rw-r--r--   1 root     adm             0 Jul 10 15:43 ./2017/Jul2017_Blast_BC07/mainlog.1.filtered
6031490 4496 -rw-r-----   1 Debian-exim adm       4602072 Jul  4 06:32 ./2017/Jul2017_Blast_BC01_old/mainlog.2.gz
6031489 24720 -rw-r-----   1 Debian-exim adm      25310292 Jul  5 06:25 ./2017/Jul2017_Blast_BC01_old/mainlog.1
6031493 91072 -rw-r--r--   1 root     adm      93253403 Jul  5 18:53 ./2017/Jul2017_Blast_BC01_old/mainlog.4.filtered
6031495    4 -rw-r--r--   1 root     adm           734 Jul  5 18:54 ./2017/Jul2017_Blast_BC01_old/mainlog.2.filtered
6031492 15188 -rw-r-----   1 Debian-exim adm      15552467 Jul  2 06:25 ./2017/Jul2017_Blast_BC01_old/mainlog.4.gz
6031491 14768 -rw-r-----   1 Debian-exim adm      15120212 Jul  3 06:32 ./2017/Jul2017_Blast_BC01_old/mainlog.3.gz
6031494 72088 -rw-r--r--   1 root     adm      73810983 Jul  5 18:53 ./2017/Jul2017_Blast_BC01_old/mainlog.3.filtered
6031497    0 -rw-r--r--   1 root     adm             0 Jul  5 18:55 ./2017/Jul2017_Blast_BC01_old/mainlog.filtered
6031496    0 -rw-r--r--   1 root     adm             0 Jul  5 18:55 ./2017/Jul2017_Blast_BC01_old/mainlog.1.filtered
6031677 4132 -rw-r-----   1 Debian-exim adm       4228434 Jul  5 06:25 ./2017/Jul2017_Blast_BC01/mainlog.2.gz
6031678 19172 -rw-r-----   1 Debian-exim adm      19629131 Jul  6 06:25 ./2017/Jul2017_Blast_BC01/mainlog.1
6031681 73588 -rw-r--r--   1 root     adm      75351621 Jul  6 13:03 ./2017/Jul2017_Blast_BC01/mainlog.4.filtered
6031683    0 -rw-r--r--   1 root     adm             0 Jul  6 13:04 ./2017/Jul2017_Blast_BC01/mainlog.2.filtered
6031675 14768 -rw-r-----   1 Debian-exim adm      15120212 Jul  3 06:32 ./2017/Jul2017_Blast_BC01/mainlog.4.gz
6031676 4496 -rw-r-----   1 Debian-exim adm       4602072 Jul  4 06:32 ./2017/Jul2017_Blast_BC01/mainlog.3.gz
6031682    4 -rw-r--r--   1 root     adm           734 Jul  6 13:04 ./2017/Jul2017_Blast_BC01/mainlog.3.filtered
6031685    0 -rw-r--r--   1 root     adm             0 Jul  6 13:05 ./2017/Jul2017_Blast_BC01/mainlog.filtered
6031680 91068 -rw-r--r--   1 root     adm      93253403 Jul  6 13:02 ./2017/Jul2017_Blast_BC01/mainlog.5.filtered
6031684    0 -rw-r--r--   1 root     adm             0 Jul  6 13:05 ./2017/Jul2017_Blast_BC01/mainlog.1.filtered
6031674 15188 -rw-r-----   1 Debian-exim adm      15552467 Jul  2 06:25 ./2017/Jul2017_Blast_BC01/mainlog.5.gz
5769926  860 -rw-r-----   1 Debian-exim adm        878779 Jul 10 06:25 ./mainlog.4.gz
5769158 14768 -rw-r-----   1 Debian-exim adm      15120212 Jul  3 06:32 ./mainlog.11.gz
5767229  744 -rw-r-----   1 Debian-exim adm        758754 Jul 11 06:25 ./mainlog.3.gz
5769571 4496 -rw-r-----   1 Debian-exim adm       4602072 Jul  4 06:32 ./mainlog.10.gz
5769395 4132 -rw-r-----   1 Debian-exim adm       4228434 Jul  5 06:25 ./mainlog.9.gz
5767377 3144 -rw-r-----   1 Debian-exim adm       3217892 Jul  6 06:25 ./mainlog.8.gz
5767516  900 -rw-r-----   1 Debian-exim adm        919512 Jul  9 06:27 ./mainlog.5.gz
root@L28mustang:/var/log/exim4#

To confirm properly if indeed the latest file for the current date is listed, I run this command :

Code:
root@L28mustang:/var/log/exim4# find . -type f -name 'mainlog.*' -newermt $NOW -ls
5769924 27424 -rw-r-----   1 Debian-exim adm      28074686 Jul 13 06:25 ./mainlog.1
root@L28mustang:/var/log/exim4#

It lists down a file with the current date, however when I check how many files with the current date exist :

Code:
-rw-r-----  1 Debian-exim adm 28074686 Jul 13 06:25 mainlog.1
-rw-r-----  1 Debian-exim adm 13412149 Jul 13 17:40 mainlog
root@L28mustang:/var/log/exim4#


There are 2 files. Why does it not list down the 2nd file with the time 17:40 in the former command?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with speeding up my working script to take less time - how to use more CPU usage for a script

Hello experts, we have input files with 700K lines each (one generated for every hour). and we need to convert them as below and move them to another directory once. Sample INPUT:- # cat test1 1559205600000,8474,NormalizedPortInfo,PctDiscards,0.0,Interface,BG-CTA-AX1.test.com,Vl111... (7 Replies)
Discussion started by: prvnrk
7 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

Bash script time script

I have the following code which i'd like to rewrite in a way that it can be used on all unix systems. meaning, i want it to be portable: # turn seconds into real measurable time num=$1 min=0 ... (11 Replies)
Discussion started by: SkySmart
11 Replies

4. UNIX for Dummies Questions & Answers

Script to run another script with wait time

I want to create a script which calls another script with certain interval. Script "A" should call script "B" every 60 seconds. Script "A" should also be able to call other scripts such as "C", "D", etc. at an interval of 60, 120, 180 seconds respectively. Basically script A should take two... (1 Reply)
Discussion started by: Vee
1 Replies

5. Shell Programming and Scripting

Need bash script to ping the servers and rename the output file each time the script is ran

HI, I have a file serverlist in that all host names are placed. i have written a small script #./testping #! /bin/bash for i in `cat serverlist` do ping $i >> output.txt done so now it creates a file output.txt till here fine.. now each time i run this script the output file... (4 Replies)
Discussion started by: madhudeva
4 Replies

6. Shell Programming and Scripting

Ftp script hangs for first time,but works every second time

Hi I have an ftp script which works fine when i execute through a test scheduler(UC4), but when i run it through the prod scheduler(UC4), it hungs indefinetely, when we cancel the job and re-run it it works perfectly fine. here is the code,, any idea why this is happening ???? ... (1 Reply)
Discussion started by: selvankj
1 Replies

7. Shell Programming and Scripting

what would a script include to find CPU's %system time high and user time high?

Hi , I am trying to :wall: my head while scripting ..I am really new to this stuff , never did it before :( . how to find cpu's system high time and user time high in a script?? thanks , help would be appreciated ! :) (9 Replies)
Discussion started by: sushwey
9 Replies

8. Shell Programming and Scripting

Shell script to convert epoch time to real time

Dear experts, I have an epoch time input file such as : - 1302451209564 1302483698948 1302485231072 1302490805383 1302519244700 1302492787481 1302505299145 1302506557022 1302532112140 1302501033105 1302511536485 1302512669550 I need the epoch time above to be converted into real... (4 Replies)
Discussion started by: aismann
4 Replies

9. Shell Programming and Scripting

need inputs on how i can change my script to reduce amount of time the script takes

HI , I have a list1 which consists of data that i have to search and a list2 which has the files that need to be searched .So basically i am using list1 on list2 to see if list1 data is present if found replace it .I have written the code using foreach loop for each list .This is taking the... (1 Reply)
Discussion started by: madhul2002
1 Replies
Login or Register to Ask a Question