Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


Delete all files that match date '+%Y-%m-%d_%H:%M'


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Delete all files that match date '+%Y-%m-%d_%H:%M'

I need to modify this so it delete all date files and not leave the 2 newest.


Code:
TARGET_DIR='/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/'
REGEX='[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}'   # regular expression that match to: date '+%Y-%m-%d_%H:%M'
LATEST_FILE="$(ls "$TARGET_DIR" | egrep "^${REGEX}$" | tail -1)"
find "$TARGET_DIR" ! -name "$LATEST_FILE" -type f -regextype egrep -regex ".*/${REGEX}$" -exec rm -f {} +
rsync --progress -r -u /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/* /home/andy/Ubuntu_18.04_Programs/

# 2  
And (with well over 100 posts in this forum so far) what have you tried to solve this problem on your own?
# 3  
I showed my work. I am stuck.


I see no need to remind me how many posts I have made each time I post.
# 4  
Quote:
Originally Posted by drew77
I showed my work. I am stuck.


I see no need to remind me how many posts I have made each time I post.
Well before the time you get to 100 posts, we expect you to have a basic understanding of the commands that you are posting and have some idea of what they are doing. Your question seems to imply that you have no idea what the code you have shown us is doing.

In post #1 you implied that the code you are using is keeping two "date" files. With the tail -1 I don't see anything in your code that would keep more than one file.

We would expect by now that you would know that the rm in the find -exec primary is what is being used to remove files and that the find ! -name "$LATEST_FILE" is what is keeping one file from being removed, and if that is the case it would seem that removing that primary from the find command would make that command also remove the file that is being skipped:
Code:
find "$TARGET_DIR" ! -type f -regextype egrep -regex ".*/${REGEX}$" -exec rm -f {} +

But, of course, I would never try that without first running:
Code:
find "$TARGET_DIR" ! -type f -regextype egrep -regex ".*/${REGEX}$" -exec echo rm -f {} +

and verifying that the rm commands that find prints are what you would expect them to be for what you are trying to do.

And, I don't see how the rsync command you have shown us has anything to do with the problem you have described.

Or, maybe I have misunderstood your problem. Are you saying that you want files removed from the target directory used in your rsync command instead of from the source directory used in your rsync command? But, if that was the case, we would expect you to say that none of the "date" files are being removed from that directory instead of implying that after you run this script only two "date" files are kept in that directory.
# 5  
On giving it some more thought, I made a mistake in my post.


This is what created the date files. So by removing that command from my script, the date files are no longer created.



Code:
touch /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/$( date '+%Y-%m-%d_%H:%M' )

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
Count the number of files to delete doesnt match
alexcol
Good evening, need your help please Need to delete certain files before octobre 1 2016, so need to know how many files im going to delete, for instance ls -lrt file_20160*.lis!wc -l but using grep -c to another file called bplist which contains the list of all files backed up doesn match...... UNIX for Beginners Questions & Answers
7
UNIX for Beginners Questions & Answers
Delete files of a particular date
mdabdul
dear all, i m a newbie and i want to delete all files of a particular date,how can i do this? your help appreciated,thanks in advance. OS:RHEL 6... UNIX for Dummies Questions & Answers
5
UNIX for Dummies Questions & Answers
Delete log files content older than 30 days and append the lastest date log file date
sreekumarhari
To delete log files content older than 30 days and append the lastest date log file date in the respective logs I want to write a shell script that deletes all log files content older than 30 days and append the lastest log file date in the respective logs This is my script cd...... Shell Programming and Scripting
2
Shell Programming and Scripting
Delete files according to date
ronny_nch
Hi All, I am wondering whether is there a way to remove files according to date. For example, I have 500 files between Jan - April, and I want to remove files created only on March. Is there any way to do this? Thanks in advanced. rgds, Ronny... Solaris
2
Solaris
how to delete files by date
jamesbond
My apache logs are saved in the following format (using rotatelogs): Oct 8 01:59 access_log.1002412800 Oct 9 01:55 access_log.1002499200 Oct 10 01:58 access_log.1002585600 Oct 11 01:56 access_log.1002672000 Oct 12 01:59 access_log.1002758400 I would like to run a cronjob once a week to...... UNIX for Dummies Questions & Answers
2
UNIX for Dummies Questions & Answers

Featured Tech Videos