diff --git a/sos/report/plugins/container_log.py b/sos/report/plugins/container_log.py index ac5ea328a3..3c7497e005 100644 --- a/sos/report/plugins/container_log.py +++ b/sos/report/plugins/container_log.py @@ -24,9 +24,13 @@ class ContainerLog(Plugin, IndependentPlugin): PluginOpt('rotated', default=False, val_type=bool, desc='get all logs from /var/log/pods regardless of size, ' 'which will include all rotated logs'), + PluginOpt('maxage', default=None, val_type=int, + desc='gather only logs with `mtime` not older than this many' + ' hours') ] def setup(self): + maxage = self.get_option('maxage') sizelimit = None # Remove size limit from containers logs when getting rotated, since # they are just symlinks to the pods logs @@ -36,18 +40,20 @@ def setup(self): self._log_warn(f"could not find {self.poddir}, skipping it") else: sizelimit = 0 - self.add_copy_spec(self.poddir, sizelimit=sizelimit) + self.add_copy_spec(self.poddir, sizelimit=sizelimit, + maxage=maxage) if self.get_option('all_logs'): - self.add_copy_spec(self.logdir) + self.add_copy_spec(self.logdir, maxage=maxage) else: - self.collect_subdirs(sizelimit=sizelimit) + self.collect_subdirs(sizelimit=sizelimit, maxage=maxage) - def collect_subdirs(self, root=logdir, sizelimit=None): + def collect_subdirs(self, root=logdir, sizelimit=None, maxage=None): """Collect *.log files from subdirs of passed root path """ for dir_name, _, _ in os.walk(root): self.add_copy_spec(self.path_join(dir_name, '*.log'), - sizelimit=sizelimit) + sizelimit=sizelimit, + maxage=maxage) # vim: set et ts=4 sw=4 :