From a7986c2c22d96934b11df2f930e74b84a54f0286 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Mon, 30 Mar 2009 10:49:11 +0000 Subject: [PATCH] hardened for vanishing files and dirs with no file --- mtail.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mtail.py b/mtail.py index 09e443f..954b1e5 100755 --- a/mtail.py +++ b/mtail.py @@ -34,7 +34,7 @@ example: parser.add_option("-p","--period", type="int", dest="tail_period", default=1, help="Files check period in seconds") # rescan_period - parser.add_option("-d","--dir-period", type="int", dest="rescan_period", default=20, + parser.add_option("-d","--dir-period", type="int", dest="rescan_period", default=5, help="Directories rescan period in seconds") # time format parser.add_option("-f","--format", dest="time_format", default=mtail.default_time_format, @@ -55,7 +55,7 @@ example: help="Run in verbose mode") (self.options, self.args) = parser.parse_args(args) - self.optparse = parser + self.option_parser = parser ### plc shortcuts if self.options.plc_mode: @@ -73,7 +73,11 @@ example: print 'Arguments:',self.args def file_size (self,filename): - return os.stat(filename)[6] + try: + return os.stat(filename)[6] + except: + print "WARNING: file %s has vanished"%filename + return 0 def number_files (self): return len(self.files) @@ -168,7 +172,11 @@ example: print label, def show_file_end (self, filename, offset, size): - file = open(filename,"r") + try: + file = open(filename,"r") + # file has vanished + except: + return file.seek(offset) line=file.read(size-offset) self.show_now() @@ -217,8 +225,8 @@ example: def run (self): - if self.number_files() == 0: - self.optparse.print_help() + if len(self.args) == 0: + self.option_parser.print_help() sys.exit(1) counter = 0 -- 2.43.0