Sponsored Content
Top Forums Shell Programming and Scripting Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml" Post 302991883 by Hiroshi on Friday 17th of February 2017 12:10:56 PM
Old 02-17-2017
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:

Code:
for filename in $(find /var/log/test -type f -mtime +10)
do
        read -r firstLine < $filename
        echo "$firstLine"
either        echo "${firstLine:0:3}"     # "${firstLine:0:3}": bad substitution
or             echo "${cut -c1-8}"         # "${cut -c1-8}": bad substitution

        if [ "${firstLine:0:3}" = "MSH" ] || [ "${firstLine:0:3}" = "FHS" ] || [ "${firstLine:0:5}" = "<?xml" ]
        then
                echo $filename >> /var/log/test/my2.log     # Just a log file to keep track of which files got deleted
##              rm $filename
        fi
done

*****************************************************************

Please assist.
Many thanks in advance, you guys/gals are awesome!



Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 02-17-2017 at 01:30 PM.. Reason: Added CODE tags.
 

10 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

Delete files older than "x" if directory size is greater than "y"

I wrote a script to delete files which are older than "x" days, if the size of the directory is greater than "y" #!/bin/bash du -hs $1 while read SIZE ENTRY do if ; then find $1 -mtime +$2 -exec rm -f {} \; echo "Files older than $2 days deleted" else echo "free Space available"... (4 Replies)
Discussion started by: JamesCarter
4 Replies

5. 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

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

grep with "[" and "]" and "dot" within the search string

Hello. Following recommendations for one of my threads, this is working perfectly : #!/bin/bash CNT=$( grep -c -e "some text 1" -e "some text 2" -e "some text 3" "/tmp/log_file.txt" ) Now I need a grep success for some thing like : #!/bin/bash CNT=$( grep -c -e "some text_1... (4 Replies)
Discussion started by: jcdole
4 Replies

8. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

9. Shell Programming and Scripting

Find "*.c" and "Makefile" and then delete them with one line

find "*.c" and "Makefile" and then delete them with one line (3 Replies)
Discussion started by: yanglei_fage
3 Replies

10. 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
uuclean(8c)															       uuclean(8c)

Name
       uuclean - uucp spool directory clean-up

Syntax
       uuclean -p[pre] [ options ... ]

Description
       The  command  scans the spool directory for files with the specified prefix and deletes all those which are older than the specified number
       of hours.

       The -ppre argument causes the command to scan for files with pre as the file prefix.  You can specify up to 10 arguments.   A  without  any
       pre following causes all files older than the specified time to be deleted.  You must specify at least one argument.

Options
       -ntime	    Delete  all  files	whose age is more than time, in hours, (default is 72 hours) and that have the specified pre as their file
		    prefix.

       -m	    Send mail to the owner of the file when it is deleted.

       -ssystem     Delete files in all directories that are subdirectories of the per system spool directory that exists for system.  If  ALL	is
		    specified, then all system directories are processed.  ALL is the default.

       -ddirectory  Delete files that reside in the named directory.  The default directory is The option over rides the option.

       The  command typically starts the program.  In earlier versions, a deleted work file (C.file) would result in mail to the owner of the work
       file, regardless of the option.	Now, notification of deleted work files is sent to the user ID "uucp".	If the option  is  used,  mail	is
       also sent to the owner.

Examples
       Here are some example command lines:
       # uuclean -pLTMP. -pLOG. -n4 -d/usr/spool/uucp
       # uuclean -d/usr/spool/uucp/.XQTDIR -p -n
       # uuclean -smarkie -p -n84
       The third example deletes all files for the system that are older than 84 hours.

Files
       Directory with commands used by uuclean internally

See Also
       uucp(1c), uux(1c), cron(8)

																       uuclean(8c)
All times are GMT -4. The time now is 11:50 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy