Solved

Delete files older than

Posted on 2010-11-23
21
730 Views
Last Modified: 2012-06-27
Running HP UX
I have backups going to a folder, and I want to be able to delete files/folders older than 7 days.

How can I accomplish this?
0
Comment
Question by:shankshank
  • 8
  • 4
  • 3
  • +3
21 Comments
 
LVL 4

Expert Comment

by:zcrammond
ID: 34197210
script found elsewhere:

Dim Fso

Dim Directory

Dim Modified

Dim Files

Set Fso = CreateObject(“Scripting.FileSystemObject”)

Set Directory = Fso.GetFolder(“BACKUP DIRECTORY”)

Set Files = Directory.Files

For Each Modified in Files

If DateDiff(“D”, Modified.DateLastModified, Now) > # Then Modified.Delete

Next


Change BACKUP FILE's with path to the folder containing the files and then change # with a number of days you want kept

save file as a .VBS and execute using this command: cscript.exe filename.vbs
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197327
No..

This is for UNIX not windows
0
 
LVL 4

Expert Comment

by:thunderhead
ID: 34197358
find . -mtime 7 -exec rm '{}' \;

Should do it.

* please test this in non-production before hand *
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 5

Author Comment

by:shankshank
ID: 34197363
Will  that delete folders too?
0
 
LVL 4

Expert Comment

by:thunderhead
ID: 34197376
Its not my code, so I have not tested it
0
 
LVL 9

Expert Comment

by:jeremycrussell
ID: 34197380
Depending on how the files are created or accessed you can use the 'find' command.

find /path/to/files -ctime -7 -delete

would delete files created more than 7 days ago.  However, you have to be careful using ctime, other options are mtime and atime.

A file could have a ctime of more than 7 days ago, but have been modified or accessed recently and show a newer timestamp in ls.

I would suggest you "man find" and research ctime, mtime and atime before you start to delete.

One way to check things before you delete them is to run

find /path/to/files -ctime -7 -exec ls -al {} \;

And this will list the files that would be deleted with the other command, and you can see if this works as you would expect it.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 34197401
To answer the question "Will  that delete folders too?"

Yes it will! To avoid this add "-type f" to the find command:

find /path/to/files -type f ... ...

wmp
0
 
LVL 9

Expert Comment

by:jeremycrussell
ID: 34197411
To restrict find to just files add the -type f option to find.
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197452
is it -ctime +7 or -7

i thought i had to use-
0
 
LVL 9

Expert Comment

by:jeremycrussell
ID: 34197508
-[acm]time 7 would be files just 7 days ago.
-[acm]time +7 would be all files 7 days or older.
-[acm]time -7  would be all files in last 7 days.
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197510
jeremy your check command gives phony output
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197513
by phony i mean it doesnt list what must be deleted. haha
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 34197523
Use only -ls instead of -exec ls ... ...\;
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197531
I want to list files 5 days or older

So this?

find /BACKUPHD -ctime +5

0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 34197542
Yep. Add -ls for an "ls -l" like output.
0
 
LVL 5

Author Comment

by:shankshank
ID: 34197552
/BACKUPHD>find /BACKUPHD -ctime +5 -ls
find: bad option -ls
0
 
LVL 4

Expert Comment

by:pablomorales
ID: 34197586
I use mtime in my scripts with good results. Use the following to check which files will be deleted (replace /path/to/files with the path of the directory you want to clean) :

find /path/to/files -mtime -7 -print
or for only files use:
find /path/to/files -mtime -7 -type f -print

To actually delete them use:

find /path/to/files -ctime -7 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime -7 -type f -exec rm -rf {} \;

cheers!
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 34197589
Seems that HPUX's find doesn't know -ls. Sorry.
0
 
LVL 4

Expert Comment

by:pablomorales
ID: 34197617
If you want 5 days or older use to check:

find /path/to/files -mtime +5 -print
or for only files use:
find /path/to/files -mtime +5 -type f -print

To actually delete them use:

find /path/to/files -ctime +5 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime +5 -type f -exec rm -rf {} \;
0
 
LVL 4

Accepted Solution

by:
pablomorales earned 500 total points
ID: 34197644
Ooops. I meant:

find /path/to/files -mtime +5 -print
or for only files use:
find /path/to/files -mtime +5 -type f -print

To actually delete them use:

find /path/to/files -mtime +5 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -mtime +5 -type f -exec rm -f {} \;
0
 
LVL 5

Author Comment

by:shankshank
ID: 34304578
okay i wil l ry this
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Every server (virtual or physical) needs a console: and the console can be provided through hardware directly connected, software for remote connections, local connections, through a KVM, etc. This document explains the different types of consol…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question