One Hat Cyber Team
Your IP :
216.73.216.9
Server IP :
178.162.244.166
Server :
Linux flexi.hostpinnacleservers.com 5.14.0-611.30.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 11 06:42:00 EST 2026 x86_64
Server Software :
Apache
PHP Version :
8.1.34
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3.9
/
site-packages
/
sos
/
report
/
plugins
/
Edit File:
drbd.py
# This file is part of the sos project: https://github.com/sosreport/sos # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions of # version 2 of the GNU General Public License. # # See the LICENSE file in the source distribution for further information. from sos.report.plugins import Plugin, RedHatPlugin, UbuntuPlugin from sos.utilities import find class DRBD(Plugin, RedHatPlugin, UbuntuPlugin): short_desc = 'Distributed Replicated Block Device (DRBD)' plugin_name = 'drbd' profiles = ('storage',) commands = ('drbdsetup',) # In case of kernel bugs, drbdsetup may hang indefinitely. # Set a shorter than default timeout. cmd_timeout = 60 def add_drbd_thread_stacks(self): stacks = "" for pid_file in find("*_pid", "/sys/kernel/debug/drbd/resources/"): with open(pid_file, 'r', encoding='utf-8') as f: pid = f.read().strip() stacks += f"--- {pid_file}: {pid} ---\n" if pid.isdigit(): try: sfn = f"/proc/{pid}/stack" with open(sfn, 'r', encoding='utf-8') as sf: stacks += sf.read() except Exception as e: stacks += f"Could not read /proc/{pid}/stack: {e}\n" stacks += "\n" self.add_string_as_file(stacks, "drbd_thread_stacks") def setup(self): self.add_cmd_output([ "drbdadm dump", "drbdadm -d -vvv adjust all", "drbdsetup status -vs all", "drbdsetup show all" ]) self.add_drbd_thread_stacks() for kmod in find("drbd*.ko*", "/lib/modules"): self.add_cmd_output([ f"modinfo {kmod}", ], suggest_filename=f"modinfo_{kmod.replace('/', '_')}") self.add_copy_spec([ "/etc/drbd.conf", "/etc/drbd.d/*", "/proc/drbd", "/sys/kernel/debug/drbd/*", "/var/lib/drbd/*", "/var/lib/drbd-support/*", "/var/lib/linstor.d/*" ]) def postproc(self): # Scrub nodehash from /var/lib/drbd-support/registration.json nodehash_re = r'("nodehash"\s*:\s*")[a-zA-Z0-9]+"' repl = r'\1********"' self.do_path_regex_sub( '/var/lib/drbd-support/registration.json', nodehash_re, repl ) # Scrub shared secret from *.{conf,res} files and command outputs secret_re = r'(shared-secret\s+\"?).[^\"]+(\"?\s*;)' repl = r'\1********\2' self.do_path_regex_sub(r'.*\.(conf|res)', secret_re, repl) self.do_cmd_output_sub("drbdadm dump", secret_re, repl) self.do_cmd_output_sub("drbdsetup show all", secret_re, repl) # vim: set et ts=4 sw=4 :
Simpan