Blob Blame History Raw
From b502b9f51b4d314ed6fa76d66a6db8aea7d32c12 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:00:16 +0200
Subject: [PATCH 1/8] [startup] rename plugin to 'services'

The plugin is supposed to collect information about services
rather than about their startup.

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/services.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++
 sos/plugins/startup.py  | 56 -------------------------------------------------
 2 files changed, 56 insertions(+), 56 deletions(-)
 create mode 100644 sos/plugins/services.py
 delete mode 100644 sos/plugins/startup.py

diff --git a/sos/plugins/services.py b/sos/plugins/services.py
new file mode 100644
index 0000000..606a135
--- /dev/null
+++ b/sos/plugins/services.py
@@ -0,0 +1,56 @@
+# 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.
+
+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class Services(Plugin):
+    """System services
+    """
+
+    plugin_name = "services"
+    profiles = ('system', 'boot')
+
+    option_list = [("servicestatus", "get a status of all running services",
+                    "slow", False)]
+
+    def setup(self):
+        self.add_copy_spec([
+            "/etc/inittab",
+            "/etc/rc.d"
+        ])
+        if self.get_option('servicestatus'):
+            self.add_cmd_output("/sbin/service --status-all")
+        self.add_cmd_output("/sbin/runlevel")
+
+
+class RedHatServices(Services, RedHatPlugin):
+
+    def setup(self):
+        super(RedHatServices, self).setup()
+        self.add_cmd_output("/sbin/chkconfig --list", root_symlink="chkconfig")
+
+
+class DebianServices(Services, DebianPlugin, UbuntuPlugin):
+
+    def setup(self):
+        super(DebianServices, self).setup()
+        self.add_copy_spec("/etc/rc*.d")
+
+        self.add_cmd_output("/sbin/initctl show-config",
+                            root_symlink="initctl")
+        if self.get_option('servicestatus'):
+            self.add_cmd_output("/sbin/initctl list")
+
+# vim: et ts=4 sw=4
diff --git a/sos/plugins/startup.py b/sos/plugins/startup.py
deleted file mode 100644
index 9d92370..0000000
--- a/sos/plugins/startup.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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.
-
-from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
-
-
-class Startup(Plugin):
-    """System startup
-    """
-
-    plugin_name = "startup"
-    profiles = ('system', 'boot')
-
-    option_list = [("servicestatus", "get a status of all running services",
-                    "slow", False)]
-
-    def setup(self):
-        self.add_copy_spec([
-            "/etc/inittab",
-            "/etc/rc.d"
-        ])
-        if self.get_option('servicestatus'):
-            self.add_cmd_output("/sbin/service --status-all")
-        self.add_cmd_output("/sbin/runlevel")
-
-
-class RedHatStartup(Startup, RedHatPlugin):
-
-    def setup(self):
-        super(RedHatStartup, self).setup()
-        self.add_cmd_output("/sbin/chkconfig --list", root_symlink="chkconfig")
-
-
-class DebianStartup(Startup, DebianPlugin, UbuntuPlugin):
-
-    def setup(self):
-        super(DebianStartup, self).setup()
-        self.add_copy_spec("/etc/rc*.d")
-
-        self.add_cmd_output("/sbin/initctl show-config",
-                            root_symlink="initctl")
-        if self.get_option('servicestatus'):
-            self.add_cmd_output("/sbin/initctl list")
-
-# vim: et ts=4 sw=4
-- 
1.8.3.1


From 5204d62fdb362fb5cc4a897c90faa9539715fc74 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 7 Jul 2015 13:03:14 +0200
Subject: [PATCH 2/8] [services] add "ls /var/lock/subsys"

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/services.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sos/plugins/services.py b/sos/plugins/services.py
index 606a135..ab9f8ce 100644
--- a/sos/plugins/services.py
+++ b/sos/plugins/services.py
@@ -32,7 +32,10 @@ class Services(Plugin):
         ])
         if self.get_option('servicestatus'):
             self.add_cmd_output("/sbin/service --status-all")
-        self.add_cmd_output("/sbin/runlevel")
+        self.add_cmd_output([
+            "/sbin/runlevel",
+            "ls /var/lock/subsys"
+        ])
 
 
 class RedHatServices(Services, RedHatPlugin):
-- 
1.8.3.1


From e00447e7ee346aa3be685a91ebba7cf208c4f205 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:04:19 +0200
Subject: [PATCH 3/8] [ntp] Collect "ntpq -p" output

Partially solves #570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/ntp.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sos/plugins/ntp.py b/sos/plugins/ntp.py
index 0e39b9d..c0f731d 100644
--- a/sos/plugins/ntp.py
+++ b/sos/plugins/ntp.py
@@ -30,7 +30,10 @@ class Ntp(Plugin):
             "/etc/ntp/step-tickers",
             "/etc/ntp/ntpservers"
         ])
-        self.add_cmd_output("ntptime")
+        self.add_cmd_output([
+            "ntptime",
+            "ntpq -p"
+        ])
 
 
 class RedHatNtp(Ntp, RedHatPlugin):
-- 
1.8.3.1


From 83ef3aff955a33bb58c578479ac6b63a615b4521 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:07:06 +0200
Subject: [PATCH 4/8] [networking] Collect "ethtool -T $NIC"

Partially solves #570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/networking.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
index f2b06a6..b2c74c1 100644
--- a/sos/plugins/networking.py
+++ b/sos/plugins/networking.py
@@ -184,6 +184,7 @@ class Networking(Plugin):
                     "ethtool -i "+eth,
                     "ethtool -k "+eth,
                     "ethtool -S "+eth,
+                    "ethtool -T "+eth,
                     "ethtool -a "+eth,
                     "ethtool -c "+eth,
                     "ethtool -g "+eth
-- 
1.8.3.1


From 002cef3eddc288352d0b92f6272fbd2e85280e6e Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:17:40 +0200
Subject: [PATCH 5/8] [ptp] Add new plugin for Precision time protocol

Partially resolves #570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/ptp.py | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 sos/plugins/ptp.py

diff --git a/sos/plugins/ptp.py b/sos/plugins/ptp.py
new file mode 100644
index 0000000..a6ac648
--- /dev/null
+++ b/sos/plugins/ptp.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2015 Pavel Moravec <pmoravec@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.
+
+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class Ptp(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+    """Precision time protocol
+    """
+
+    plugin_name = "ptp"
+    profiles = ('system', 'services')
+
+    packages = ('linuxptp',)
+
+    def setup(self):
+        self.add_copy_spec([
+            "/etc/ptp4l.conf",
+            "/etc/timemaster.conf",
+            "/sys/class/ptp"
+        ])
+
+# vim: et ts=4 sw=4
-- 
1.8.3.1


From 72e2e32eaa97c6c76b61635dd0fafeb4dcc1aa7d Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:19:29 +0200
Subject: [PATCH 6/8] [process] Collect few "ps" outputs

Partially solves $570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
(edits for readability & line length)
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
 sos/plugins/process.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/sos/plugins/process.py b/sos/plugins/process.py
index 6ae189b..a643844 100644
--- a/sos/plugins/process.py
+++ b/sos/plugins/process.py
@@ -23,13 +23,20 @@ class Process(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
     profiles = ('system',)
 
     def setup(self):
+        ps_axo = "ps axo"
+        # process group and thread options
+        ps_group_opts = "pid,ppid,user,group,lwp,nlwp,start_time,comm,cgroup"
+        ps_sched_opts = "flags,state,uid,pid,ppid,pgid,sid,cls,pri,addr,sz,"
+        ps_sched_opts += "wchan,stime,tty,time,cmd"
         self.add_copy_spec("/proc/sched_debug")
         self.add_cmd_output("ps auxwww", root_symlink="ps")
         self.add_cmd_output("pstree", root_symlink="pstree")
         self.add_cmd_output("lsof -b +M -n -l", root_symlink="lsof")
         self.add_cmd_output([
             "ps auxwwwm",
-            "ps alxwww"
+            "ps alxwww",
+            "%s %s" % (ps_axo, ps_group_opts),
+            "%s %s" % (ps_axo, ps_sched_opts)
         ])
 
 # vim: et ts=4 sw=4
-- 
1.8.3.1


From 0b9a4c545582ed73f89ee4a7572ecb631633819e Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:21:28 +0200
Subject: [PATCH 7/8] [sysvipc] Collect "ipcs -u"

Partially solves #570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/sysvipc.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sos/plugins/sysvipc.py b/sos/plugins/sysvipc.py
index a0732e7..a98abf9 100644
--- a/sos/plugins/sysvipc.py
+++ b/sos/plugins/sysvipc.py
@@ -29,6 +29,9 @@ class SysVIPC(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
             "/proc/sysvipc/sem",
             "/proc/sysvipc/shm"
         ])
-        self.add_cmd_output("ipcs")
+        self.add_cmd_output([
+            "ipcs",
+            "ipcs -u"
+        ])
 
 # vim: et ts=4 sw=4
-- 
1.8.3.1


From fb7bbcf9e60002d75db383fac08244a7fa06a1d6 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 31 May 2015 16:24:23 +0200
Subject: [PATCH 8/8] [devices] New plugin to collect "udevadm info
 --export-db"

Partially resolves #570

Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
 sos/plugins/devices.py | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 sos/plugins/devices.py

diff --git a/sos/plugins/devices.py b/sos/plugins/devices.py
new file mode 100644
index 0000000..5e0283a
--- /dev/null
+++ b/sos/plugins/devices.py
@@ -0,0 +1,28 @@
+# 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.
+
+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class Devices(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+    """ devices specific commands
+    """
+
+    plugin_name = 'devices'
+    profiles = ('system', 'hardware', 'boot')
+
+    def setup(self):
+        self.add_cmd_output("udevadm info --export-db")
+
+# vim: et ts=4 sw=4
-- 
1.8.3.1

From c05fa2947937a5adc3496c4e66b649633de054e9 Mon Sep 17 00:00:00 2001
From: Alexandru Juncu <alexj@linux.com>
Date: Tue, 24 Feb 2015 18:28:04 +0100
Subject: [PATCH] [last] information about login actions

This is useful information to be correlated with shutdown/reboot
events in /var/log/messages to identify graceful shutdowns/reboots
and lower false positives about system crashes.

Resolves #572.

Signed-off-by: Alexandru Juncu <alexj@linux.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
 sos/plugins/last.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 sos/plugins/last.py

diff --git a/sos/plugins/last.py b/sos/plugins/last.py
new file mode 100644
index 0000000..d6b791d
--- /dev/null
+++ b/sos/plugins/last.py
@@ -0,0 +1,33 @@
+# 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.
+
+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class Last(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+    """login information
+    """
+
+    plugin_name = 'last'
+    profiles = ('system',)
+
+    def setup(self):
+        self.add_cmd_output("last", root_symlink="last")
+        self.add_cmd_output([
+                "last reboot",
+                "last shutdown",
+                "lastlog"
+                ])
+
+# vim: et ts=4 sw=4
-- 
1.8.3.1