How to append date to filename, but base it on yesterday's date?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to append date to filename, but base it on yesterday's date?
# 1  
Old 09-19-2013
[Solved] How to append date to filename, but base it on yesterday's date?

Hello,

I'd like to write a monthly archive script that archives some logs. But I'd like to do it based on yesterday's date. In other words, I'd like to schedule the script to run on the 1st day of each month, but have the archive filename include the previous month instead.

Here's what I have so far (this works for current day):
Code:
#!/bin/bash
cd /home/logs
tar cvzf /home/logs/logarchives_`date +%Y-%m\(%b\)`.tar.gz *.log

So the format ends up being: filename_2013-09(Sep).tar.gz
I'd like to be able to run a script on October 1st and have it say that.
And I'd like to run the same script on November 1st and have it end up with a filename_2013-10(Oct).tar.gz

Thanks!

Last edited by Don Cragun; 09-20-2013 at 08:31 PM..
# 2  
Old 09-19-2013
Does your date allow for the -d option:
Code:
date -d"-1day"
Mi 18. Sep 19:46:18 CEST 2013

or even date -dy y meaning yesterday.
This User Gave Thanks to RudiC For This Post:
# 3  
Old 09-19-2013
Thanks!

This seems to work:
Code:
#!/bin/bash
cd /home/logs
tar cvzf /home/logs/logarchives_`date -dy +%Y-%m-%d`.tar.gz *.log

So I will test at the end of the month with:
Code:
#!/bin/bash
cd /home/logs
tar cvzf /home/logs/logarchives_`date -dy +%Y-%m\(%b\)`.tar.gz *.log

Smilie
# 4  
Old 09-20-2013
Just adding my 2 cents here.
Since we're still 10 days from the end of the month, you could temporarily change the date and time of your system to perform your test in advance:
Code:
date --set="1 OCT 2013 00:00:01"

Afterwards you can set the right date and time.
Just saying Smilie.
This User Gave Thanks to gacanepa For This Post:
# 5  
Old 09-20-2013
Why shouldn't above work across month ends? Run it today with -d "-20 days" to test.
This User Gave Thanks to RudiC For This Post:
# 6  
Old 09-20-2013
RudiC, to confirm, that would look like:

Code:
tar cvzf /home/logs/logarchives_`date -d "-20 days" +%Y-%m\(%b\)`.tar.gz *.log

Correct?

---------- Post updated at 02:14 PM ---------- Previous update was at 02:11 PM ----------

That worked! Thanks everybody!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to compare two files of todays date and yesterday's date

hi all, How to compare two files whether they are same are not...? like i had my input files as 20141201_file.txt and 20141130_file2.txt how to compare the above files based on date .. like todays file and yesterdays file...? (4 Replies)
Discussion started by: hemanthsaikumar
4 Replies

2. Shell Programming and Scripting

[Solved] Replace yesterday date with today's date except from the first line

Hello, I have a file like this: 2012112920121130 12345620121130msABowwiqiq 34477420121129amABamauee e7748420121130ehABeheheei in case the content of the file has the date of yesterday within the lines containing pattern AB this should be replaced by the current date. But if I use... (3 Replies)
Discussion started by: Lilu_CK
3 Replies

3. Shell Programming and Scripting

append a filename with system date and time

Hi, There are similar kind of posts, but none seems like working for me. Please correct me if I'm wrong. I need append/rename file abc.txt with file processed date and time like abc_systemdatetimestamp.txt and move it to different folder. for example I have /source/data/abc.txt ... (1 Reply)
Discussion started by: amsn08
1 Replies

4. Shell Programming and Scripting

Need help in Shell Script comparing todays date with Yesterday date from Sysdate

Hi, I want to compare today's date(DDMMYYYY) with yesterday(DDMMYYYY) from system date,if (today month = yesterday month) then execute alter query else do nothing. The above requirement i want in Shell script(KSH)... Can any one please help me? Double post, continued here. (0 Replies)
Discussion started by: kumarmsk1331
0 Replies

5. Shell Programming and Scripting

how to append current date to filename.tgz in perl

i would like to know how to append current date in a filename with .tgz extension. #!/usr/bin/perl my $date = `date + %Y%m%d`; system("sudo mv /tmp/nyucs01_config_backup.tgz /misc/nyucs01_config_backup_$date.tgz"); im getting this error message: sh: line 1: .tgz: command not found (7 Replies)
Discussion started by: linuxgeek
7 Replies

6. UNIX for Dummies Questions & Answers

Shell Scripts - Append a filename with date and time....

Hello, I need to create a shell script that appends a filename to create a name with the date and time appended that is guaranteed to not exist. That is, the script insures you will not overwrite a file with the same name. I am lost with this one. I know I need to use date but after that I am... (3 Replies)
Discussion started by: citizencro
3 Replies

7. UNIX for Dummies Questions & Answers

Append Previous Days date to filename

I need to append previous days date to my file which is generated using a script. I am working on Solaris 10. Thanks! (2 Replies)
Discussion started by: Twisha
2 Replies

8. Shell Programming and Scripting

Compare date from db2 table to yesterday's Unix system date

I am currently running the following Korn shell script which works fine: #!/usr/bin/ksh count=`db2 -x "select count(*) from schema.tablename"` echo "count" I would like to add a "where" clause to the 2nd line that would allow me to get a record count of all the records from schema.tablename... (9 Replies)
Discussion started by: sasaliasim
9 Replies

9. UNIX for Dummies Questions & Answers

Append current date to filename

In C Shell programming I haven't successfully been able to append the date in the format mmddyyyy to a filename. I've tried the following: I can print out the date in the correct format: date +%x | sed ‘s/\///g I can create a variable with the filename: set newfile=changedfiles I can... (3 Replies)
Discussion started by: gigigi
3 Replies

10. UNIX for Dummies Questions & Answers

Append date to filename

What is the easiest way to append the date (year, month, day) to a filename? (5 Replies)
Discussion started by: hshapiro
5 Replies
Login or Register to Ask a Question