[PYTHON] Erhaltene Inhalte von sosreport

Hintergrund untersucht

https://github.com/sosreport/sos/wiki/

Was ist Sosreport?

Implementierung von sosreport

Wo soll der Stecker aufbewahrt werden?

/usr/lib/python2.7/site-packages/sos/plugins

Implementierung des Plugins

Beispiel: Quelle des Yum-Plug-Ins

yum.py


from sos.plugins import Plugin, RedHatPlugin


class Yum(Plugin, RedHatPlugin):
    """yum information
    """

    plugin_name = 'yum'
    profiles = ('system', 'packagemanager', 'sysmgmt')

    files = ('/etc/yum.conf',)
    packages = ('yum',)

    option_list = [
        ("yumlist", "list repositories and packages", "slow", False),
        ("yumdebug", "gather yum debugging data", "slow", False)
    ]

    def setup(self):
        # Pull all yum related information
        self.add_copy_spec([
            "/etc/yum",
            "/etc/yum.repos.d",
            "/etc/yum.conf",
            "/var/log/yum.log"
        ])

        # Get a list of channels the machine is subscribed to.
        self.add_cmd_output("yum -C repolist")

        # candlepin info
        self.add_forbidden_path("/etc/pki/entitlement/key.pem")
        self.add_forbidden_path("/etc/pki/entitlement/*-key.pem")
        self.add_copy_spec([
            "/etc/pki/product/*.pem",
            "/etc/pki/consumer/cert.pem",
            "/etc/pki/entitlement/*.pem"
        ])
        self.add_cmd_output("yum history")

        if self.get_option("yumlist"):
            # List various information about available packages
            self.add_cmd_output("yum list")

        if self.get_option("yumdebug") and self.is_installed('yum-utils'):
            # RHEL6+ alternative for this whole function:
            # self.add_cmd_output("yum-debug-dump '%s'"
            # % os.path.join(self.commons['dstroot'],"yum-debug-dump"))
            r = self.call_ext_prog("yum-debug-dump")
            try:
                self.add_cmd_output("zcat %s" % (r['output'].split()[-1],))
            except IndexError:
                pass

sosreport.py


1240     def setup(self):
1241         msg = "[%s:%s] executing 'sosreport %s'"
1242         self.soslog.info(msg % (__name__, "setup", " ".join(self._args)))
1243         self.ui_log.info(_(" Setting up plugins ..."))
1244         for plugname, plug in self.loaded_plugins:
1245             try:
1246                 plug.archive = self.archive
1247                 plug.setup()
1248             except KeyboardInterrupt:
1249                 raise
1250             except (OSError, IOError) as e:
1251                 if e.errno in fatal_fs_errors:
1252                     self.ui_log.error("")
1253                     self.ui_log.error(" %s while setting up plugins"
1254                                       % e.strerror)
1255                     self.ui_log.error("")
1256                     self._exit(1)
1257                 if self.raise_plugins:
1258                     raise
1259                 self._log_plugin_exception(plugname, "setup")
1260             except:
1261                 if self.raise_plugins:
1262                     raise
1263                 self._log_plugin_exception(plugname, "setup")

Zusammenfassend ist die Implementierung des yum-Plug-Ins wie folgt.

Artikel Inhalt
profiles system
packagemanager
sysmgmt
Gültige Bedingungen /etc/yum.conf existiert oder wenn yum package installiert ist
yumlist Option Ruft das Ausführungsergebnis des Befehls yum list ab. Standard deaktiviert
yumdebug Option yum-debug-Rufen Sie das Ergebnis der Referenzierung des vom Befehl dump generierten Archivs mit dem Befehl zcat ab. Standard ist deaktiviert
Erfassungsdatei /etc/yum
/etc/yum.repos.d
/etc/yum.conf
/var/log/yum.log
/etc/pki/product/*.pem(*1)
/etc/pki/consumer/cert.pem
/etc/pki/entitlement/*.pem
/etc/pki/entitlement/key.pem
/etc/pki/entitlement/*-key.pem
yum-debug-Referenzergebnis des Befehls zcat des Archivs, das mit dem Befehl dump generiert wurde(*2)
Befehl abrufen yum -C repolist
yum history
yum list(*3)
/etc/pki/entitlement/key.pem
/etc/pki/entitlement/\*-key.pem

Recommended Posts

Erhaltene Inhalte von sosreport
Inhalt von __name__
[Anmerkung] Inhalt der Form [0], Form [1], Form [2]
Simulation des Inhalts der Brieftasche
[Linux] [Grundeinstellungen] Inhaltsverzeichnis
yolov5 Visualisierungsprogramm Inhaltsverzeichnis
Einfache Verschlüsselung von Dateiinhalten (Python)
Inhalt der HTML-Escape-Verarbeitung von Jinja2
[Python] [Inhaltsverzeichnis Links] Python-Programmierung
Verstehen Sie den Inhalt der sklearn-Pipeline
[Übersetzung] scikit-learn 0.18 Tutorial Inhaltsverzeichnis
Siehe den Inhalt von Kumantic Segumantion
Erste Schritte mit Python3
Ein Memorandum über den Inhalt der Abschlussumfrage
Ich habe den Inhalt des Docker-Volumes überprüft
28.02.2014 Zusammenfassung der in #ssmjp, Teil 1, vorgestellten Inhalte
[Übersetzung] scikit-learn 0.18 Benutzerhandbuch Inhaltsverzeichnis
Lesen Sie den gesamten Inhalt von proc / [pid]