[TriLUG] Some script help

William Sutton via TriLUG trilug at trilug.org
Fri May 8 10:56:25 EDT 2015


in looking at your filename format, awk isn't actually necessary.  Check 
this out:

$ echo 'backup_2014-06-13_7-00-07_14.1R1.tgz' |cut -d'_' -f2 |sed "s/-//g"
20140613

William Sutton

On Fri, 8 May 2015, William Sutton via TriLUG wrote:

> Someone once said that if you have a problem and you decide to use regex, 
> you now have two problems (and I say that as a Perl guy with lots of regex 
> experience).
>
> Might I suggest another approach:  chop the filename up with awk and 
> arrange it according to YYYYMMDD, which will sort numerically.  Pull 
> today's date in the same format, and your numeric comparison will work 
> fine.
>
> William Sutton
>
> On Fri, 8 May 2015, Brian Blater via TriLUG wrote:
>
>> I'm trying to get a basic bash script put together to copy some backup
>> files from one location to another. I've got the basics done, I think, but
>> one section could use some regex or similar and my regex abilities are bad.
>>
>> Here is the script:
>>
>> #!/bin/bash
>>
>> ## Establish DATE ##
>> NOW=$(date +"%F")
>> DELDATE=$(date --date="7 days ago" +"%F")
>>
>> ## Remote Server ##
>> ## RSERVER="servername"
>> RPATH="/path/to/remote/dir/"
>>
>> ## Local Path ##
>> LPATH="/path/to/local/dir/"
>>
>> ## Copy files ##
>> for i in $( ls $RPATH ); do
>> ## some regex or ? to get only the date from file        ##
>> ## assign that to $FILE                                  ##
>> ## file looks like: backup_2014-06-13_7-00-07_14.1R1.tgz ##
>> ## only want to compare the 2014-06-13 of file with $NOW ##
>>
>> ## if it is today's file copy it ##
>> if [ "$FILE" = "$NOW" ]; then
>> cp $i $LPATH
>> else
>> ## if it is older than 7 days mv it ##
>> if [ "$FILE" < "$DELDATE" ]; then
>> mv $i $LPATH
>> fi
>> fi
>> done
>>
>> For now, my issue is in the Copy Files section. As the note says I need to
>> look at each file and compare just the date portion. If it matches $NOW I
>> want to copy it.
>>
>> The other concern is the next IF in that section. I basically want to leave
>> a weeks worth of files in that directory before copying them to remote
>> storage. Can I just do a < there, or do I need some more magic to do that
>> comparison?
>>
>> Thank you for your help.
>> Brian
>> -- 
>> This message was sent to: William <william at trilug.org>
>> To unsubscribe, send a blank message to trilug-leave at trilug.org from that 
> address.
>> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
>> Unsubscribe or edit options on the web	: 
> http://www.trilug.org/mailman/options/trilug/william%40trilug.org
>> Welcome to TriLUG: http://trilug.org/welcome
> -- 
> This message was sent to: William <william at trilug.org>
> To unsubscribe, send a blank message to trilug-leave at trilug.org from that 
> address.
> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
> Unsubscribe or edit options on the web	: 
> http://www.trilug.org/mailman/options/trilug/william%40trilug.org
> Welcome to TriLUG: http://trilug.org/welcome


More information about the TriLUG mailing list