⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3
/
dist-packages
/
sos
/
report
/
plugins
/
Edit File: filesys.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, DebianPlugin, UbuntuPlugin, CosPlugin, PluginOpt) class Filesys(Plugin, DebianPlugin, UbuntuPlugin, CosPlugin): """Collects general information about the local filesystem(s) and mount points as well as optional information about EXT filesystems. Note that information specific filesystems such as XFS or ZFS is not collected by this plugin, as there are specific plugins for those filesystem types. This plugin will collect /etc/fstab as well as mount information within /proc/, and is responsible for the 'mount' and 'df' symlinks that appear in an sos archive's root. """ short_desc = 'Local file systems' plugin_name = 'filesys' profiles = ('storage',) option_list = [ PluginOpt('lsof', default=False, desc='collect information on all open files'), PluginOpt('dumpe2fs', default=False, desc='dump filesystem info'), PluginOpt('frag', default=False, desc='collect filesystem fragmentation status') ] def setup(self): self.add_copy_spec([ "/proc/fs/", "/proc/mounts", "/proc/filesystems", "/proc/self/mounts", "/proc/self/mountinfo", "/proc/self/mountstats", "/proc/[0-9]*/mountinfo", "/etc/mtab", "/etc/fstab", "/run/mount/utab", ]) self.add_cmd_output("mount -l", root_symlink="mount", tags="mount") self.add_cmd_output("df -al -x autofs", root_symlink="df", tags='df__al') self.add_cmd_output([ "df -aliT -x autofs", "findmnt", "lslocks" ]) self.add_forbidden_path([ # cifs plugin '/proc/fs/cifs', # lustre plugin '/proc/fs/ldiskfs', '/proc/fs/lustre', # nfs plugin '/proc/fs/nfsd', '/proc/fs/nfsfs', # panfs (from Panasas company) provides statistics which can be # very large (100s of GB) '/proc/fs/panfs', # xfs plugin '/proc/fs/xfs' ]) if self.get_option('lsof'): self.add_cmd_output("lsof -b +M -n -l -P", root_symlink="lsof", priority=50) dumpe2fs_opts = '-h' if self.get_option('dumpe2fs'): dumpe2fs_opts = '' mounts = '/proc/mounts' ext_fs_regex = r"^(/dev/\S+).+ext[234]\s+" for dev in self.do_regex_find_all(ext_fs_regex, mounts): self.add_cmd_output(f"dumpe2fs {dumpe2fs_opts} {dev}", tags="dumpe2fs_h") if self.get_option('frag'): self.add_cmd_output(f"e2freefrag {dev}", priority=100) def postproc(self): self.do_file_sub( "/etc/fstab", r"(password=)[^,\s]*", r"\1********" ) # remove expected errors from lsof due to command formatting, but still # keep stderr so other errors are reported regex = (r"(lsof: (avoiding (.*?)|WARNING: can't stat\(\) (.*?))|" "Output information may be incomplete.)\n") self.do_cmd_output_sub("lsof", regex, '') class RedHatFilesys(Filesys, RedHatPlugin): def setup(self): super().setup() self.add_cmd_output('ls -ldZ /tmp') # vim: set et ts=4 sw=4 :
Simpan