use strict; ########################################################################## # $Id: removeservice,v 1.10 2009/06/12 14:12:28 mike Exp $ ########################################################################## ######################################################## ## Copyright (c) 2008 Kirk Bauer ## Covered under the included MIT/X-Consortium License: ## http://www.opensource.org/licenses/mit-license.php ## All modifications and contributions by other persons to ## this script are assumed to have been donated to the ## Logwatch project and thus assume the above copyright ## and licensing terms. If you want to make contributions ## under your own copyright or a different license this ## must be explicitly stated in the contribution an the ## Logwatch project reserves the right to not accept such ## contributions. If you have made significant ## contributions to this script and want to claim ## copyright please contact logwatch-devel@lists.sourceforge.net. ######################################################### my ($ServiceName, $ThisLine); my ($linesin, $linesout) = (0, 0); # This will remove the unwanted service from a logfile # in the standard /var/log/messages format. Case insensitive if ( $ENV{'LOGWATCH_DEBUG'} > 5 ) { print STDERR "DEBUG: Inside RemoveService...\n"; } $ServiceName = $ARGV[0]; #Change commas to pipes -mgt $ServiceName =~ s/,/|/g; while (defined($ThisLine = <STDIN>)) { $linesin++; unless ( ($ThisLine =~ m/^... .. ..:..:.. [^ ]* ($ServiceName)\[[0123456789]*\]: /oi) or ($ThisLine =~ m/^... .. ..:..:.. [^ ]* (:\s*)?($ServiceName)\s*: /oi) ) { $linesout++; print $ThisLine; } } if ( $ENV{'LOGWATCH_DEBUG'} > 5 ) { print STDERR "DEBUG: Inside RemoveService: $linesin Lines In, $linesout Lines Out\n"; } # vi: shiftwidth=3 syntax=perl tabstop=3 et # Local Variables: # mode: perl # perl-indent-level: 3 # indent-tabs-mode: nil # End: