Standardizing the time in the script

Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
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  
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  
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 Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Capture run time of python script executed inside shell script
Adfire
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...... Shell Programming and Scripting
2
Shell Programming and Scripting
Ftp script hangs for first time,but works every second time
selvankj
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 ???? ...... Shell Programming and Scripting
1
Shell Programming and Scripting
what would a script include to find CPU's %system time high and user time high?
sushwey
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 ! :)... Shell Programming and Scripting
9
Shell Programming and Scripting
Shell script to convert epoch time to real time
aismann
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...... Shell Programming and Scripting
4
Shell Programming and Scripting

Featured Tech Videos