diff options
-rw-r--r-- | sos/plugins/anaconda.py | 31 | ||||
-rw-r--r-- | sos/plugins/auditd.py | 2 | ||||
-rw-r--r-- | sos/plugins/autofs.py | 2 | ||||
-rw-r--r-- | sos/plugins/cluster.py | 2 | ||||
-rw-r--r-- | sos/plugins/filesys.py | 17 | ||||
-rw-r--r-- | sos/plugins/mysql.py | 1 | ||||
-rw-r--r-- | sos/plugins/named.py | 1 | ||||
-rw-r--r-- | sos/plugins/netdump.py | 25 | ||||
-rw-r--r-- | sos/plugins/process.py | 13 | ||||
-rw-r--r-- | sos/plugins/rpm.py | 30 | ||||
-rw-r--r-- | sos/plugins/s390.py | 1 | ||||
-rw-r--r-- | sos/plugins/sendmail.py | 27 |
12 files changed, 152 insertions, 0 deletions
diff --git a/sos/plugins/anaconda.py b/sos/plugins/anaconda.py index e69de29b..aa7d4d1f 100644 --- a/sos/plugins/anaconda.py +++ b/sos/plugins/anaconda.py @@ -0,0 +1,31 @@ +### This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +import sos.plugintools +from os.path import exists + +class anaconda(sos.plugintools.PluginBase): + """Anaconda / Installation information + """ + def checkenabled(self): + return exists("/var/log/anaconda.log") + + def setup(self): + self.addCopySpecs([ + "/root/anaconda-ks.cfg", + "/root/install.log", + "/root/install.log.syslog", + "/var/log/anaconda.log", + "/var/log/anaconda.syslog", + "/var/log/anaconda.xlog"]) diff --git a/sos/plugins/auditd.py b/sos/plugins/auditd.py index ba31327b..c76bf5f8 100644 --- a/sos/plugins/auditd.py +++ b/sos/plugins/auditd.py @@ -20,4 +20,6 @@ class auditd(sos.plugintools.PluginBase): optionList = [("syslogsize", "max size (MiB) to collect per syslog file", "", 15)] + def setup(self): + self.addCopySpecs(["/etc/audit/auditd.conf", "/etc/audit/audit.rules"]) self.addCopySpecLimit("/var/log/audit*", sizelimit = self.getOption("syslogsize")) diff --git a/sos/plugins/autofs.py b/sos/plugins/autofs.py index 7606f923..84de4497 100644 --- a/sos/plugins/autofs.py +++ b/sos/plugins/autofs.py @@ -44,6 +44,8 @@ class autofs(sos.plugintools.PluginBase): return i[1] def setup(self): + self.addCopySpec("/etc/auto*") + self.collectExtOutput("/bin/rpm -qV autofs") self.collectExtOutput("/etc/init.d/autofs status") self.collectExtOutput("ps auxwww | grep automount") self.collectExtOutput("/bin/egrep -e 'automount|pid.*nfs' /proc/mounts") diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py index 7697275e..16ef2b86 100644 --- a/sos/plugins/cluster.py +++ b/sos/plugins/cluster.py @@ -46,6 +46,8 @@ class cluster(sos.plugintools.PluginBase): self.addCopySpec("/etc/cluster.conf") self.addCopySpec("/etc/cluster.xml") self.addCopySpec("/etc/cluster") + self.addCopySpec("/etc/sysconfig/cluster") + self.addCopySpec("/etc/sysconfig/cman") self.addCopySpec("/var/lib/ricci") self.addCopySpec("/var/lib/luci") self.addCopySpec("/var/log/cluster") diff --git a/sos/plugins/filesys.py b/sos/plugins/filesys.py index d9987380..baefaa32 100644 --- a/sos/plugins/filesys.py +++ b/sos/plugins/filesys.py @@ -24,6 +24,23 @@ class filesys(sos.plugintools.PluginBase): optionList = [("dumpe2fs", 'dump filesystem information', 'slow', False)] def setup(self): + self.addCopySpecs([ + "/proc/filesystems", + "/etc/fstab", + "/proc/self/mounts", + "/proc/mounts", + "/proc/mdstat", + "/etc/raidtab", + "/etc/mdadm.conf"]) + mounts = self.collectOutputNow("/bin/mount -l", root_symlink = "mount") + + self.collectExtOutput("/bin/findmnt") + self.collectExtOutput("/bin/df -al", root_symlink = "df") + self.collectExtOutput("/bin/df -ali") + if self.getOption('lsof'): + self.collectExtOutput("/usr/sbin/lsof -b +M -n -l -P", root_symlink = "lsof") + self.collectExtOutput("/sbin/blkid -c /dev/null") + part_titlep = re.compile("^major") blankp = re.compile("^$") partlist = [] diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py index 6afd7c8f..59b6bb28 100644 --- a/sos/plugins/mysql.py +++ b/sos/plugins/mysql.py @@ -27,5 +27,6 @@ class mysql(sos.plugintools.PluginBase): def setup(self): self.addCopySpecs([ "/etc/my.cnf", + "/etc/sysconfig/network", "/etc/ld.so.conf.d/mysql*", "/var/log/mysql*"]) diff --git a/sos/plugins/named.py b/sos/plugins/named.py index 12145446..6710a165 100644 --- a/sos/plugins/named.py +++ b/sos/plugins/named.py @@ -40,3 +40,4 @@ class named(sos.plugintools.PluginBase): self.addCopySpec(self.getDnsDir(cfg)) self.addForbiddenPath(join(self.getDnsDir(cfg),"chroot/dev")) self.addForbiddenPath(join(self.getDnsDir(cfg),"chroot/proc")) + self.addCopySpec("/etc/sysconfig/named") diff --git a/sos/plugins/netdump.py b/sos/plugins/netdump.py new file mode 100644 index 00000000..1dcbc0f0 --- /dev/null +++ b/sos/plugins/netdump.py @@ -0,0 +1,25 @@ +### This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +import sos.plugintools +from os.path import exists + +class netdump(sos.plugintools.PluginBase): + """Netdump Configuration Information + """ + def checkenabled(self): + return self.isInstalled("netdump") or exists("/etc/sysconfig/netdump*") + + def setup(self): + self.addCopySpec("/etc/sysconfig/netdump") diff --git a/sos/plugins/process.py b/sos/plugins/process.py index 70875c8e..ea19be55 100644 --- a/sos/plugins/process.py +++ b/sos/plugins/process.py @@ -17,6 +17,19 @@ import time import os class process(sos.plugintools.PluginBase): + """process information + """ + def setup(self): + self.collectExtOutput("/bin/ps auxwww", root_symlink = "ps") + self.collectExtOutput("/bin/ps auxwwwm") + self.collectExtOutput("/bin/ps alxwww") + self.collectExtOutput("/usr/bin/pstree", root_symlink = "pstree") + self.collectExtOutput("/usr/sbin/lsof -b +M -n -l", root_symlink = "lsof") + + def find_mountpoint(s): + if (os.path.ismount(s) or len(s)==0): return s + else: return mountpoint(os.path.split(s)[0]) + def diagnose(self): from subprocess import Popen, PIPE # check that no process is in state D diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py index e69de29b..33529cee 100644 --- a/sos/plugins/rpm.py +++ b/sos/plugins/rpm.py @@ -0,0 +1,30 @@ +### This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +import sos.plugintools + +class rpm(sos.plugintools.PluginBase): + """RPM information + """ + optionList = [("rpmq", "queries for package information via rpm -q", "fast", True), + ("rpmva", "runs a verify on all packages", "slow", False)] + + def setup(self): + self.addCopySpec("/var/log/rpmpkgs") + + if self.getOption("rpmq"): + self.collectExtOutput("/bin/rpm -qa --qf=\"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}~~%{INSTALLTIME:date}\t%{INSTALLTIME}\t%{VENDOR}\n\" --nosignature --nodigest|/bin/awk -F ~~ '{printf \"%-60s%s\\n\",$1,$2}'|sort", root_symlink = "installed-rpms") + + if self.getOption("rpmva"): + self.collectExtOutput("/bin/rpm -Va", root_symlink = "rpm-Va", timeout = 3600) diff --git a/sos/plugins/s390.py b/sos/plugins/s390.py index e593e313..de8519c6 100644 --- a/sos/plugins/s390.py +++ b/sos/plugins/s390.py @@ -47,6 +47,7 @@ class s390(sos.plugintools.PluginBase): "/sys/bus/ccw/drivers/zfcp/0.*/0x*/0x*/*", "/etc/zipl.conf", "/etc/zfcp.conf", + "/etc/sysconfig/dumpconf", "/etc/src_vipa.conf", "/etc/ccwgroup.conf", "/etc/chandev.conf"]) diff --git a/sos/plugins/sendmail.py b/sos/plugins/sendmail.py index e69de29b..0b73451b 100644 --- a/sos/plugins/sendmail.py +++ b/sos/plugins/sendmail.py @@ -0,0 +1,27 @@ +## Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@redhat.com> + +### This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +import sos.plugintools +from os.path import exists + +class sendmail(sos.plugintools.PluginBase): + """sendmail information + """ + def checkenabled(self): + return self.isInstalled("sendmail") or exists("/etc/rc.d/init.d/sendmail") + + def setup(self): + self.addCopySpecs(["/etc/mail/*", "/var/log/maillog"]) |