how to get what date was 28 days ago of the current system date IN UNIX


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to get what date was 28 days ago of the current system date IN UNIX
# 8  
Old 03-18-2010
Quote:
Originally Posted by murugaperumal
Code:
find -mtime +28 -exec rm {} \;

rm ??? Smilie SmilieSmilieSmilieSmilie
# 9  
Old 03-18-2010
Quote:
Ex : - If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010,
Quote:
find -mtime +28 -exec rm {} \;
This will just delete all files before 28 days..ie, it will delete all files before 1st of March...not jsut the files of March1st, as per the example mentioned.

Hope its clear for you.

The correct one should be

Code:
find . -mtime 28 -exec rm {} \;


Also, just go with
Code:
find . -mtime 28 -exec ls -l \;

before executing rm , just to make sure that the files listed are what you need to delete.
# 10  
Old 03-18-2010
Thank you Dennis, When I execute the perl code it is giving the correct date stamp.

Code:
$
$ uname -a
SunOS ccluatdwunix2 5.10 Generic_141414-08 sun4v sparc SUNW,T5240
$
$ var=`perl -w -e '$d=28*86400;@t=localtime (time -$d); printf "%d%.2d%.2d", $t[5]+1900,$t[4]+1,$t[3];'`
$
$ echo $var
20100218
$

Could you please help me how can I get the date stamp like 18-Feb-2010.

Last edited by pludi; 03-18-2010 at 09:48 AM.. Reason: code tags, please...
kandi.reddy
# 11  
Old 03-18-2010
Quote:
Originally Posted by dennis.jacob
This will just delete all files before 28 days..ie, it will delete all files before 1st of March...not jsut the files of March1st, as per the example mentioned.

Hope its clear for you.

The correct one should be

Code:
find . -mtime 28 -exec rm {} \;

Also, just go with
Code:
find . -mtime 28 -exec ls -l \;

before executing rm , just to make sure that the files listed are what you need to delete.
DON'T YOU KNOW THAT IS THE ACTUAL REQUIREMENT.
READ THE FOLLOWING LINE OF THE POSTER's POST.
Ex : - If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010,

FOR THE ABOVE QUESTION ONLY I REPLIED.

I KNOW HOW TO GET THE PREVIOUS 28TH DAY.
DONT YOU KNOW THAT THE COMMAND WHICH I GAVE WILL GIVE THE 28TH DAY AGO? SmilieSmilie
# 12  
Old 03-18-2010
Try:

Code:
perl -w  -e '@m = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); $d=28*86400;@t=localtime (time -$d); printf "%2d-%s-%d", $t[3],$m[$t[4]],$t[5]+1900;'



---------- Post updated at 17:43 ---------- Previous update was at 17:32 ----------

Quote:
Originally Posted by murugaperumal
DON'T YOU KNOW THAT IS THE ACTUAL REQUIREMENT.
READ THE FOLLOWING LINE OF THE POSTER's POST.
Ex : - If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010,

FOR THE ABOVE QUESTION ONLY I REPLIED.

I KNOW HOW TO GET THE PREVIOUS 28TH DAY.
DONT YOU KNOW THAT THE COMMAND WHICH I GAVE WILL GIVE THE 28TH DAY AGO? SmilieSmilie
Hello,


Code:
If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010,

I just said your command below will delete all files with mtime not just the exact 28th day before current date but also the files before that.ie, say all files on Jan, Feb of 2010, 2009 , 2008 etc...

Code:
find -mtime +28 -exec rm {} \;


If the files has to be deleted which has got mtime eaxctly 28 days, you have to use

Code:
find . -name "*" -mtime 28

# 13  
Old 03-18-2010
Quote:
If the files has to be deleted which has got mtime eaxctly 28 days, you have to use

Code:
find . -name "*" -mtime 28
This does NOT match the requirement. You will get different results according to what time of day you run the command because the 28 days is measured from the current system time.
Also the command needs "-type f" and an understanding of the directory structure.


We need to know what the O/P is going to do with the date. Is it part of a filename or the actual directory timestamp of the file???

Btw: The perl solution at the top of post #12 appears to work to the latest version of the requirement.

Last edited by methyl; 03-18-2010 at 11:13 AM..
# 14  
Old 03-18-2010
once you got the date i hope you can do something like this, but surely there will be an easy approach.

Code:
da="20100218"
day=`echo $da |cut -c 7,8`
mon=`echo $da |cut -c 5,6`
yea=`echo $da |cut -c 1-4`

Mon=`cal $mon $yea | head -1 | awk '{ print substr($1,1,3) }'`

ddmonyyyy=$day"-"$Mon"-"$yea

echo $ddmonyyyy

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

awk command in hp UNIX subtract 30 days automatically from current date without date illegal option

current date command runs well awk -v t="$(date +%Y-%m-%d)" -F "'" '$1 < t' myname.dat subtract 30 days fails awk -v t="$(date --date="-30days" +%Y-%m-%d)" -F "'" '$1 < t' myname.dat awk command in hp unix subtract 30 days automatically from current date without date illegal option error... (20 Replies)
Discussion started by: kmarcus
20 Replies

2. Shell Programming and Scripting

Get a given date and subtract it to 5 days ago

Hi all, I have been researching to obtain SSL certification expiry for most of our webistes. For some cases, some hosts where not directly accessible so i finally got a solution working with curl using my proxy. This lists the expiry date which i'm finally looking for. # curl --proxy... (4 Replies)
Discussion started by: nms
4 Replies

3. UNIX for Beginners Questions & Answers

Subscribers with Date 90 days older than current date

I have to display only those subscribers which are in "unconnected state" and the date is 90 days older than today's date. Below command is used for this purpose: cat vfsubscriber_20170817.csv | sed -e 's/^"//' -e '1d' | nawk -F '",' '{if ( (substr($11,2,4) == 2017) && ( substr($11,2,8) -lt... (1 Reply)
Discussion started by: dia
1 Replies

4. Shell Programming and Scripting

Seven days past date from current date

hi all.. i want 2 know how 2 find 7days past date from current date.. when i used set datetime = `date '+%m%d%y'` i got 060613.. i just want to know hw to get 053013.. i tried using date functions but couldnt get it :( i use c shell and there is no chance that i can change that ..... (3 Replies)
Discussion started by: Rahul619
3 Replies

5. Shell Programming and Scripting

How to display a date, 30 days from the current date?

Well guys, I know the right syntax for displaying the current date is $(date). However, I am planning to send emails to some customers which displays their subscription date, and then the expiry. The expiry being 30 days from the current date. What would the right syntax be? (6 Replies)
Discussion started by: xxxx
6 Replies

6. Shell Programming and Scripting

Number of days between the current date and user defined date

I am trying to find out the number of days between the current date and user defined date. I took reference from here for the date2jd() function. Modified the function according to my requirement. But its not working properly. Original code from here is working fine. #!/bin/sh... (1 Reply)
Discussion started by: hiten.r.chauhan
1 Replies

7. Shell Programming and Scripting

How to Get 60 days Old date from current date in KSH script

Hi i am writing a cron job. so for it i need the 60 days old date form current date in variable. Like today date is 27 jan 2011 then output value will be stote in variable in formet Nov 27. i am using EST date, and tried lot of solution and see lot of post but it did not helpful for me. so... (3 Replies)
Discussion started by: Himanshu_soni
3 Replies

8. Shell Programming and Scripting

Date One Week Ago From Given Date, Not From Current Date

Hi all, I've used various scripts in the past to work out the date last week from the current date, however I now have a need to work out the date 1 week from a given date. So for example, if I have a date of the 23rd July 2010, I would like a script that can work out that one week back was... (4 Replies)
Discussion started by: Donkey25
4 Replies

9. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

10. Shell Programming and Scripting

How to find a date which is 7 days past when given current date

hii all. I have to get the date of the 7th day past from the current date. if i give the current date as sep 3 then i must get the date as 27th of august. can we get the values from the "cal" command. cal | awk '{print $2}' will this type of command work. actually my need is if today is... (17 Replies)
Discussion started by: ladtony
17 Replies
Login or Register to Ask a Question