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
STOREBACKUPDEL(1)					User Contributed Perl Documentation					 STOREBACKUPDEL(1)

NAME
storeBackupDel.pl - this program deletes backups created by storeBackup SYNOPSIS
storeBackupDel.pl [-f configFile] [--print] [-b backupDirectory] [-S series] [--doNotDelete] [--deleteNotFinishedDirs] [-L lockFile] [--keepAll timePeriod] [--keepWeekday entry] [--keepFirstOfYear] [--keepLastOfYear] [--keepFirstOfMonth] [--keepLastOfMonth] [--keepFirstOfWeek] [--keepLastOfWeek] [--keepDuplicate] [--keepMinNumber] [--keepMaxNumber] [-l logFile [--plusLogStdout] [--suppressTime] [-m maxFilelen] [[-n noOfOldFiles] | [--saveLogs] [--compressWith compressprog]] WARNING
!!! USAGE IN PARALLEL WITH storeBackup.pl CAN DESTROY YOUR BACKUPS !!! OPTIONS
--file, -f configuration file (instead of parameters) --print print configuration read from configuration file and stop --backupDir, -b top level directory of all backups (must exist) --series, -S directory of backup series same parameter as in storeBackup / relative path from backupDir, default is 'default' --lockFile, -L lock file, if exists, new instances will finish if an old is already running, default is $lockFile --doNotDelete test only, do not delete any backup --deleteNotFinishedDirs delete old backups which where not finished this will not happen if doNotDelete is set --keepAll keep backups which are not older than the specified amount of time. This is like a default value for all days in --keepWeekday. Begins deleting at the end of the script the time range has to be specified in format 'dhms', e.g. 10d4h means 10 days and 4 hours default = $keepAll; --keepWeekday keep backups for the specified days for the specified amount of time. Overwrites the default values chosen in --keepAll. 'Mon,Wed:40d Sat:60d10m' means: keep backups of Mon and Wed 40days + 5mins keep backups of Sat 60days + 10mins keep backups of the rest of the days like spcified in --keepAll (default $keepAll) if you also use the 'archive flag' it means to not delete the affected directories via --keepMaxNumber: a10d4h means 10 days and 4 hours and 'archive flag' e.g. 'Mon,Wed:a40d Sat:60d10m' means: keep backups of Mon and Wed 40days + 5mins + 'archive' keep backups of Sat 60days + 10mins keep backups of the rest of the days like specified in --keepAll (default $keepAll) --keepFirstOfYear do not delete the first backup of a year format is timePeriod with possible 'archive flag' --keepLastOfYear do not delete the last backup of a year format is timePeriod with possible 'archive flag' --keepFirstOfMonth do not delete the first backup of a month format is timePeriod with possible 'archive flag' --keepLastOfMonth do not delete the last backup of a month format is timePeriod with possible 'archive flag' --firstDayOfWeek default: 'Sun'. This value is used for calculating --keepFirstOfWeek and --keepLastOfWeek --keepFirstOfWeek do not delete the first backup of a week format is timePeriod with possible 'archive flag' --keepLastOfWeek do not delete the last backup of a week format is timePeriod with possible 'archive flag' --keepDuplicate keep multiple backups of one day up to timePeriod format is timePeriod, 'archive flag' is not possible default = $keepDuplicate; --keepMinNumber Keep that miminum of backups. Multiple backups of one day are counted as one backup. Default is 10. --keepMaxNumber Try to keep only that maximum of backups. If you have more backups, the following sequence of deleting will happen: - delete all duplicates of a day, beginning with the old once, except the oldest of every day - if this is not enough, delete the rest of the backups beginning with the oldest, but *never* a backup with the 'archive flag' or the last backup --keepRelative, -R Alternative deletion scheme. If you use this option, all other keep options are ignored. Preserves backups depending on their *relative* age. Example: -R '1d 7d 2m 3m' will (try to) ensure that there is always - One backup between 1 day and 7 days old - One backup between 5 days and 2 months old - One backup between 2 months and 3 months old If there is no backup for a specified timespan (e.g. because the last backup was done more than 2 weeks ago) the next older backup will be used for this timespan. --logFile, -l log file (default is STDOUT) --plusLogStdout if you specify a log file with --logFile you can additionally print the output to STDOUT with this flag --suppressTime suppress output of time in logfile --maxFilelen, -m maximal length of file, default = 1e6 --noOfOldFiles, -n number of old log files, default = 5 --saveLogs save log files with date and time instead of deleting the old (with [-noOldFiles]) --compressWith compress saved log files (e.g. with 'gzip -9') default is 'bzip2' COPYRIGHT
Copyright (c) 2003-2008 by Heinz-Josef Claes (see README). Published under the GNU General Public License v3 or any later version perl v5.14.2 2012-06-16 STOREBACKUPDEL(1)
All times are GMT -4. The time now is 05:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy