Sponsored Content
Top Forums Shell Programming and Scripting Delete files older than "x" if directory size is greater than "y" Post 302394093 by vbe on Wednesday 10th of February 2010 12:22:24 PM
Old 02-10-2010
Im no bash expert... (so use with caution as I cant test for you... based on my sh/ksh knowledge
Code:
#!/bin/bash
# you could add some comments on how it should work...
# Its always handy to give some more information and
# with a program that rm, test all parameters are set 
# and are coherent or come out with a short help/syntax
# to display
du -hs $1          # I suppose you mean $1=the input directory?
SIZE=$(du -sk $1)
# where do you get the size form?
while read SIZE ENTRY   # either you echo "enter size..."
                                 # and the read SIZE
do
                                 # or you accpet SIZE as 2nd argument $2
if [ ${SIZE} -gt 200 ];   # which gives you 
                         # if [ $(SIZE) -gt "$2" ] 
then

find $1 -mtime +$2 -exec rm -f {} \;
echo "Files older than $2 days deleted"
else
echo "free Space available"
fi
done



---------- Post updated at 18:17 ---------- Previous update was at 18:14 ----------

Your $2 would become $3...

---------- Post updated at 18:22 ---------- Previous update was at 18:17 ----------

About testing your arguments, this is a start:
Code:
#Test  params
if [ $# -eq 0 ];
then
        echo " params missing!"
        echo "Usage : $0 directory size (in KB)"
        exit 1
else
   if  [ $# -gt 3 ];
   then
        echo " too many arguments"
        echo "Usage : $0 directory size (in KB)  days"
        exit 1
   else
      blah blah
      ...
  fi
fi


Last edited by vbe; 02-10-2010 at 01:28 PM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

Unix commands delete all files starting with "X" except "X" itself. HELP!!!!?

im a new student in programming and im stuck on this question so please please HELP ME. thanks. the question is this: enter a command to delete all files that have filenames starting with labtest, except labtest itself (delete all files startign with 'labtest' followed by one or more... (2 Replies)
Discussion started by: soccerball
2 Replies

3. Shell Programming and Scripting

Script for delete tmp files older than 15 days and owned by "xxx" id

Hi All , I want to delete files from /tmp directory created by "xxxx" id. because i got the list says more than 60 thousand files were created by "xxxx" id since 2002. The /tmp directory has lot of files created by different user ids like root,system etc.. But, i need a script to... (2 Replies)
Discussion started by: vparunkumar
2 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. UNIX for Dummies Questions & Answers

look for file size greater than "0" of specific pattern and move those to another directory

Hi , i have some files of specific pattern ...i need to look for files which are having size greater than zero and move those files to another directory.. Ex... abc_0702, abc_0709, abc_782 abc_1234 ...etc need to find out which is having the size >0 and move those to target directory..... (7 Replies)
Discussion started by: dssyadav
7 Replies

6. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

7. Shell Programming and Scripting

Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml"

Dear Ladies & Gents, I have a requirement to delete all the log files in /var/log/test directory that are older than 10 days and their first line begin with "MSH" or "<?xml" or "FHS". I've put together the following BASH script, but it's erroring out: for filename in $(find /var/log/test... (2 Replies)
Discussion started by: Hiroshi
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
uucleanup(8)						      System Manager's Manual						      uucleanup(8)

NAME
uucleanup - Deletes selected old files from the uucp spool directory SYNOPSIS
uucleanup [options] FLAGS
If you specify one of the following flags, you must provide a value for days. The default value listed is used if the flag is not speci- fied. Removes any C.*(Command) files as old as or older than the number of days specified by days, and sends appropriate information to the requester. The default is 7 days. The -C and -W flags cannot be combined. Removes any D.*(Data) files as old as or older than the number of days specified in days. Also attempts to deliver any remaining mail messages. The default is 7 days. Includes a specified line of text in the warning message generated by the -W flag. The default line is: We have been unable to contact machine machine_name since you queued your job. The -m flag can be used only with the -W flag. Removes files in addition to those specified by the -C, -D, and -X flags that are as old as or older than the number of days specified in days. The default is 2 days. Executes uucleanup only on the spool directory specified by system. The default is to clean up all uucp spool directories. Note that system names can contain only ASCII characters. Removes TM.* (Temporary) files as old as or older than the number of days specified by the days argument. Also attempts to deliver any remaining mail messages. The default is 7 days. Sends a mail message to the requester warning that C*. files as old as or older than the number of days specified in days are still in the spool direc- tory. The message includes the job ID and, in the case of mail, the mail message. The administrator can use the -m flag to include a message line telling who to call to check the problem. The default is 1 day. Removes any X.*(Execute) files as old as or older than the number of days specified in days. The default is 2 days. Displays debugging information on the screen of the local termi- nal; level must be an integer from 0 to 9. The higher the number, the more detailed the debugging information. DESCRIPTION
The uucleanup program removes outdated files from the spool directory /usr/spool/uucp. The uucleanup program scans the /usr/spool/uucp spool directory for old files and takes appropriate action to remove them in a useful way. The uucleanup command performs the following tasks: Informs the requester of send/receive requests for systems that cannot be reached Warns users about requests that wait more than a specified number of days (the default is 1 day) Returns mail that cannot be delivered to the sender Removes all other files older than a specified number of days from the spool directory. The uucleanup program is not usually invoked from the command line, but is executed by the shell procedure uudemon.cleanu located in /usr/lib/uucp, which in turn is started by the cron script located in /usr/adm/cron/crontabs/uucp. Only someone with superuser privileges can issue the uucleanup command from the command line. To enable automatic cleanup, edit the file /usr/adm/cron/crontabs/uucp. Remove the # (number sign) from the beginning of the uude- mon.cleanu line. EXAMPLES
To locate files, enter: # uucleanup -W2 This form of the command locates C.* (Command) files 2 or more days old and warns the requesters that the files have not been sent. To send a message with a warning, enter: # uucleanup -W2 -mContact the System Admin about these files This form of the command locates C.* (Command) files 1 or more days old (the default), warns requesters their files have not been sent, and gives them the message: Contact the System Admin about these files. To clean up command files that are 8 or more days old, enter: # uucleanup -C8 This form of the command removes all C.* (Command) files 8 or more days old and sends an appropriate message to the requesters. Other uucp spool files are removed based on the default value for that type. To clean up data and execute files, enter: # uucleanup -D7 -X3 This form of the command removes all D.* (Data) files 7 or more days old (the default) and all X.* (Execute) files older than 3 days and attempts to deliver all undelivered mail. Remaining uucp spool files are removed based on the default value for that type. To clean up other files, enter: # uucleanup -o2 This form of the command removes uucp spool files according to their default values except for other files, which are removed if 2 days or older. To clean up all files at once, enter the command without flags: # uucleanup This form of the command removes all C.*, D.*, and X.* files, and all other files older than the default times. To clean up files for system hera, enter: # uucleanup -shera -C5 This form of the command removes all C.* files 5 or more days old and the other uucp spool files according to their default files for system hera (the files are in /usr/spool/uucp/hera/*). FILES
Specifies the command path. File that starts uudemon.cleanu shell procedure. Contains all the configuration files for uucp, and the uude- mon.cleanu shell procedure. Schedules uucp jobs for the cron daemon, including the uudemon.cleanu shell procedure. Contains files removed by the uucleanup command. RELATED INFORMATION
Commands: cron(8), uucp(1), uustat(1), uux(1) delim off uucleanup(8)
All times are GMT -4. The time now is 07:50 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy