aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sos/plugins/anaconda.py31
-rw-r--r--sos/plugins/auditd.py2
-rw-r--r--sos/plugins/autofs.py2
-rw-r--r--sos/plugins/cluster.py2
-rw-r--r--sos/plugins/filesys.py17
-rw-r--r--sos/plugins/mysql.py1
-rw-r--r--sos/plugins/named.py1
-rw-r--r--sos/plugins/netdump.py25
-rw-r--r--sos/plugins/process.py13
-rw-r--r--sos/plugins/rpm.py30
-rw-r--r--sos/plugins/s390.py1
-rw-r--r--sos/plugins/sendmail.py27
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"])