✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/sbin//mountstats
#!/usr/bin/python3
# -*- python-mode -*-
"""Parse /proc/self/mountstats and display it in human readable form
"""

from __future__ import print_function
import datetime as datetime

__copyright__ = """
Copyright (C) 2005, Chuck Lever <cel@netapp.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.

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., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA
"""

import sys, os, time
from operator import itemgetter, add
try:
    import argparse
except ImportError:
    print('%s:  Failed to import argparse - make sure argparse is installed!'
        % sys.argv[0])
    sys.exit(1)

Mountstats_version = '0.3'

def difference(x, y):
    """Used for a map() function
    """
    return x - y

NfsEventCounters = [
    'inoderevalidates',
    'dentryrevalidates',
    'datainvalidates',
    'attrinvalidates',
    'vfsopen',
    'vfslookup',
    'vfspermission',
    'vfsupdatepage',
    'vfsreadpage',
    'vfsreadpages',
    'vfswritepage',
    'vfswritepages',
    'vfsreaddir',
    'vfssetattr',
    'vfsflush',
    'vfsfsync',
    'vfslock',
    'vfsrelease',
    'congestionwait',
    'setattrtrunc',
    'extendwrite',
    'sillyrenames',
    'shortreads',
    'shortwrites',
    'delay',
    'pnfsreads',
    'pnfswrites'
]

NfsByteCounters = [
    'normalreadbytes',
    'normalwritebytes',
    'directreadbytes',
    'directwritebytes',
    'serverreadbytes',
    'serverwritebytes',
    'readpages',
    'writepages'
]

XprtUdpCounters = [
    'port',
    'bind_count',
    'rpcsends',
    'rpcreceives',
    'badxids',
    'inflightsends',
    'backlogutil',
    'maxslots',
    'sendutil',
    'pendutil'
]

XprtTcpCounters = [
    'port',
    'bind_count',
    'connect_count',
    'connect_time',
    'idle_time',
    'rpcsends',
    'rpcreceives',
    'badxids',
    'inflightsends',
    'backlogutil',
    'maxslots',
    'sendutil',
    'pendutil'
]

XprtRdmaCounters = [
    'port',
    'bind_count',
    'connect_count',
    'connect_time',
    'idle_time',
    'rpcsends',
    'rpcreceives',
    'badxids',
    'inflightsends',
    'backlogutil',
    'read_segments',
    'write_segments',
    'reply_segments',
    'total_rdma_req',
    'total_rdma_rep',
    'pullup',
    'fixup',
    'hardway',
    'failed_marshal',
    'bad_reply',
    'nomsg_calls',
    'recovered_mrs',
    'orphaned_mrs',
    'allocated_mrs',
    'local_invalidates',
    'empty_sendctx_q',
    'reply_waits_for_send',
]

Nfsv3ops = [
    'NULL',
    'GETATTR',
    'SETATTR',
    'LOOKUP',
    'ACCESS',
    'READLINK',
    'READ',
    'WRITE',
    'CREATE',
    'MKDIR',
    'SYMLINK',
    'MKNOD',
    'REMOVE',
    'RMDIR',
    'RENAME',
    'LINK',
    'READDIR',
    'READDIRPLUS',
    'FSSTAT',
    'FSINFO',
    'PATHCONF',
    'COMMIT'
]

# This list should be kept in-sync with the NFSPROC4_CLNT_* enum in
# include/linux/nfs4.h in the kernel.
Nfsv4ops = [
    'NULL',
    'READ',
    'WRITE',
    'COMMIT',
    'OPEN',
    'OPEN_CONFIRM',
    'OPEN_NOATTR',
    'OPEN_DOWNGRADE',
    'CLOSE',
    'SETATTR',
    'FSINFO',
    'RENEW',
    'SETCLIENTID',
    'SETCLIENTID_CONFIRM',
    'LOCK',
    'LOCKT',
    'LOCKU',
    'ACCESS',
    'GETATTR',
    'LOOKUP',
    'LOOKUP_ROOT',
    'REMOVE',
    'RENAME',
    'LINK',
    'SYMLINK',
    'CREATE',
    'PATHCONF',
    'STATFS',
    'READLINK',
    'READDIR',
    'SERVER_CAPS',
    'DELEGRETURN',
    'GETACL',
    'SETACL',
    'FS_LOCATIONS',
    'RELEASE_LOCKOWNER',
    'SECINFO',
    'FSID_PRESENT',
    'EXCHANGE_ID',
    'CREATE_SESSION',
    'DESTROY_SESSION',
    'SEQUENCE',
    'GET_LEASE_TIME',
    'RECLAIM_COMPLETE',
    'LAYOUTGET',
    'GETDEVICEINFO',
    'LAYOUTCOMMIT',
    'LAYOUTRETURN',
    'SECINFO_NO_NAME',
    'TEST_STATEID',
    'FREE_STATEID',
    'GETDEVICELIST',
    'BIND_CONN_TO_SESSION',
    'DESTROY_CLIENTID',
    'SEEK',
    'ALLOCATE',
    'DEALLOCATE',
    'LAYOUTSTATS',
    'CLONE',
    'COPY',
    'OFFLOAD_CANCEL',
    'LOOKUPP',
    'LAYOUTERROR',
    'COPY_NOTIFY'
]

class DeviceData:
    """DeviceData objects provide methods for parsing and displaying
    data for a single mount grabbed from /proc/self/mountstats
    """
    def __init__(self):
        self.__nfs_data = dict()
        self.__rpc_data = dict()
        self.__rpc_data['ops'] = []

    def __parse_nfs_line(self, words):
        if words[0] == 'device':
            self.__nfs_data['export'] = words[1]
            self.__nfs_data['mountpoint'] = words[4]
            self.__nfs_data['fstype'] = words[7]
            if words[7].find('nfs') != -1 and words[7] != 'nfsd':
                self.__nfs_data['statvers'] = words[8]
        elif 'nfs' in words or 'nfs4' in words:
            self.__nfs_data['export'] = words[0]
            self.__nfs_data['mountpoint'] = words[3]
            self.__nfs_data['fstype'] = words[6]
            if words[6].find('nfs') != -1 and words[6] != 'nfsd':
                self.__nfs_data['statvers'] = words[7]
        elif words[0] == 'age:':
            self.__nfs_data['age'] = int(words[1])
        elif words[0] == 'opts:':
            self.__nfs_data['mountoptions'] = ''.join(words[1:]).split(',')
        elif words[0] == 'caps:':
            self.__nfs_data['servercapabilities'] = ''.join(words[1:]).split(',')
        elif words[0] == 'nfsv4:':
            self.__nfs_data['nfsv4flags'] = ''.join(words[1:]).split(',')
        elif words[0] == 'sec:':
            keys = ''.join(words[1:]).split(',')
            self.__nfs_data['flavor'] = int(keys[0].split('=')[1])
            self.__nfs_data['pseudoflavor'] = 0
            if self.__nfs_data['flavor'] == 6:
                self.__nfs_data['pseudoflavor'] = int(keys[1].split('=')[1])
        elif words[0] == 'events:':
            i = 1
            for key in NfsEventCounters:
                try:
                    self.__nfs_data[key] = int(words[i])
                except IndexError as err:
                    self.__nfs_data[key] = 0
                i += 1
        elif words[0] == 'bytes:':
            i = 1
            for key in NfsByteCounters:
                self.__nfs_data[key] = int(words[i])
                i += 1

    def __parse_rpc_line(self, words):
        if words[0] == 'RPC':
            self.__rpc_data['statsvers'] = float(words[3])
            self.__rpc_data['programversion'] = words[5]
        elif words[0] == 'xprt:':
            self.__rpc_data['protocol'] = words[1]
            if words[1] == 'udp':
                i = 2
                for key in XprtUdpCounters:
                    if i < len(words):
                        self.__rpc_data[key] = int(words[i])
                    i += 1
            elif words[1] == 'tcp':
                i = 2
                for key in XprtTcpCounters:
                    if i < len(words):
                        self.__rpc_data[key] = int(words[i])
                    i += 1
            elif words[1] == 'rdma':
                i = 2
                for key in XprtRdmaCounters:
                    if i < len(words):
                        self.__rpc_data[key] = int(words[i])
                    i += 1
        elif words[0] == 'per-op':
            self.__rpc_data['per-op'] = words
        else:
            op = words[0][:-1]
            self.__rpc_data['ops'] += [op]
            self.__rpc_data[op] = [int(word) for word in words[1:]]
            if len(self.__rpc_data[op]) < 9:
                self.__rpc_data[op] += [0]

    def parse_stats(self, lines):
        """Turn a list of lines from a mount stat file into a 
        dictionary full of stats, keyed by name
        """
        found = False
        for line in lines:
            words = line.split()
            if len(words) == 0:
                continue
            if (not found and words[0] != 'RPC'):
                self.__parse_nfs_line(words)
                continue

            found = True
            self.__parse_rpc_line(words)

    def fstype(self):
        """Return the fstype for the mountpoint
        """
        return self.__nfs_data['fstype']

    def is_nfs_mountpoint(self):
        """Return True if this is an NFS or NFSv4 mountpoint,
        otherwise return False
        """
        if self.__nfs_data['fstype'] == 'nfs':
            return True
        elif self.__nfs_data['fstype'] == 'nfs4':
            return True
        return False

    def nfs_version(self):
        if self.is_nfs_mountpoint():
            prog, vers = self.__rpc_data['programversion'].split('/')
            return int(vers)

    def display_raw_stats(self):
        """Prints out stats in the same format as /proc/self/mountstats
        """
        print('device %s mounted on %s with fstype %s %s' % \
            (self.__nfs_data['export'], self.__nfs_data['mountpoint'], \
            self.__nfs_data['fstype'], self.__nfs_data['statvers']))
        print('\topts:\t%s' % ','.join(self.__nfs_data['mountoptions']))
        print('\tage:\t%d' % self.__nfs_data['age'])
        print('\tcaps:\t%s' % ','.join(self.__nfs_data['servercapabilities']))
        print('\tsec:\tflavor=%d,pseudoflavor=%d' % (self.__nfs_data['flavor'], \
            self.__nfs_data['pseudoflavor']))
        print('\tevents:\t%s' % " ".join([str(self.__nfs_data[key]) for key in NfsEventCounters]))
        print('\tbytes:\t%s' % " ".join([str(self.__nfs_data[key]) for key in NfsByteCounters]))
        print('\tRPC iostats version: %1.1f p/v: %s (nfs)' % (self.__rpc_data['statsvers'], \
            self.__rpc_data['programversion']))
        if self.__rpc_data['protocol'] == 'udp':
            print('\txprt:\tudp %s' % " ".join([str(self.__rpc_data[key]) for key in XprtUdpCounters]))
        elif self.__rpc_data['protocol'] == 'tcp':
            print('\txprt:\ttcp %s' % " ".join([str(self.__rpc_data[key]) for key in XprtTcpCounters]))
        elif self.__rpc_data['protocol'] == 'rdma':
            print('\txprt:\trdma %s' % " ".join([str(self.__rpc_data[key]) for key in XprtRdmaCounters]))
        else:
            raise Exception('Unknown RPC transport protocol %s' % self.__rpc_data['protocol'])
        print('\tper-op statistics')
        prog, vers = self.__rpc_data['programversion'].split('/')
        if vers == '3':
            for op in Nfsv3ops:
                print('\t%12s: %s' % (op, " ".join(str(x) for x in self.__rpc_data[op])))
        elif vers == '4':
            for op in Nfsv4ops:
                try:
                    print('\t%12s: %s' % (op, " ".join(str(x) for x in self.__rpc_data[op])))
                except KeyError:
                    continue
        else:
            print('\tnot implemented for version %d' % vers)
        print()

    def display_stats_header(self):
        print('Stats for %s mounted on %s:' % \
            (self.__nfs_data['export'], self.__nfs_data['mountpoint']))
        print()

    def display_nfs_options(self):
        """Pretty-print the NFS options
        """
        print('  NFS mount options: %s' % ','.join(self.__nfs_data['mountoptions']))
        print('  NFS mount age: %s' % datetime.timedelta(seconds = self.__nfs_data['age']))
        print('  NFS server capabilities: %s' % ','.join(self.__nfs_data['servercapabilities']))
        if 'nfsv4flags' in self.__nfs_data:
            print('  NFSv4 capability flags: %s' % ','.join(self.__nfs_data['nfsv4flags']))
        if 'pseudoflavor' in self.__nfs_data:
            print('  NFS security flavor: %d  pseudoflavor: %d' % \
                (self.__nfs_data['flavor'], self.__nfs_data['pseudoflavor']))
        else:
            print('  NFS security flavor: %d' % self.__nfs_data['flavor'])

    def display_nfs_events(self):
        """Pretty-print the NFS event counters
        """
        print()
        print('Cache events:')
        print('  data cache invalidated %d times' % self.__nfs_data['datainvalidates'])
        print('  attribute cache invalidated %d times' % self.__nfs_data['attrinvalidates'])
        print()
        print('VFS calls:')
        print('  VFS requested %d inode revalidations' % self.__nfs_data['inoderevalidates'])
        print('  VFS requested %d dentry revalidations' % self.__nfs_data['dentryrevalidates'])
        print()
        print('  VFS called nfs_readdir() %d times' % self.__nfs_data['vfsreaddir'])
        print('  VFS called nfs_lookup() %d times' % self.__nfs_data['vfslookup'])
        print('  VFS called nfs_permission() %d times' % self.__nfs_data['vfspermission'])
        print('  VFS called nfs_file_open() %d times' % self.__nfs_data['vfsopen'])
        print('  VFS called nfs_file_flush() %d times' % self.__nfs_data['vfsflush'])
        print('  VFS called nfs_lock() %d times' % self.__nfs_data['vfslock'])
        print('  VFS called nfs_fsync() %d times' % self.__nfs_data['vfsfsync'])
        print('  VFS called nfs_file_release() %d times' % self.__nfs_data['vfsrelease'])
        print()
        print('VM calls:')
        print('  VFS called nfs_readpage() %d times' % self.__nfs_data['vfsreadpage'])
        print('  VFS called nfs_readpages() %d times' % self.__nfs_data['vfsreadpages'])
        print('  VFS called nfs_writepage() %d times' % self.__nfs_data['vfswritepage'])
        print('  VFS called nfs_writepages() %d times' % self.__nfs_data['vfswritepages'])
        print()
        print('Generic NFS counters:')
        print('  File size changing operations:')
        print('    truncating SETATTRs: %d  extending WRITEs: %d' % \
            (self.__nfs_data['setattrtrunc'], self.__nfs_data['extendwrite']))
        print('  %d silly renames' % self.__nfs_data['sillyrenames'])
        print('  short reads: %d  short writes: %d' % \
            (self.__nfs_data['shortreads'], self.__nfs_data['shortwrites']))
        print('  NFSERR_DELAYs from server: %d' % self.__nfs_data['delay'])
        print('  pNFS READs: %d' % self.__nfs_data['pnfsreads'])
        print('  pNFS WRITEs: %d' % self.__nfs_data['pnfswrites'])

    def display_nfs_bytes(self):
        """Pretty-print the NFS event counters
        """
        print()
        print('NFS byte counts:')
        print('  applications read %d bytes via read(2)' % self.__nfs_data['normalreadbytes'])
        print('  applications wrote %d bytes via write(2)' % self.__nfs_data['normalwritebytes'])
        print('  applications read %d bytes via O_DIRECT read(2)' % self.__nfs_data['directreadbytes'])
        print('  applications wrote %d bytes via O_DIRECT write(2)' % self.__nfs_data['directwritebytes'])
        print('  client read %d bytes via NFS READ' % self.__nfs_data['serverreadbytes'])
        print('  client wrote %d bytes via NFS WRITE' % self.__nfs_data['serverwritebytes'])

    def display_rpc_generic_stats(self):
        """Pretty-print the generic RPC stats
        """
        sends = self.__rpc_data['rpcsends']

        print('RPC statistics:')

        print('  %d RPC requests sent, %d RPC replies received (%d XIDs not found)' % \
            (sends, self.__rpc_data['rpcreceives'], self.__rpc_data['badxids']))
        if sends != 0:
            print('  average backlog queue length: %d' % \
                (float(self.__rpc_data['backlogutil']) / sends))

    def display_rpc_op_stats(self):
        """Pretty-print the per-op stats
        """
        sends = self.__rpc_data['rpcsends']

        allstats = []
        for op in self.__rpc_data['ops']:
            allstats.append([op] + self.__rpc_data[op])

        print()
        for stats in sorted(allstats, key=itemgetter(1), reverse=True):
            count = stats[1]
            if count != 0:
                print('%s:' % stats[0])
                print('\t%d ops (%d%%)' % \
                    (count, ((count * 100) / sends)), end=' ')
                retrans = stats[2] - count
                if retrans != 0:
                    print('\t%d retrans (%d%%)' % (retrans, ((retrans * 100) / count)), end=' ')
                    print('\t%d major timeouts' % stats[3], end='')
                if len(stats) >= 10 and stats[9] != 0:
                    print('\t%d errors (%d%%)' % (stats[9], ((stats[9] * 100) / count)))
                else:
                    print('')
                print('\tavg bytes sent per op: %d\tavg bytes received per op: %d' % \
                    (stats[4] / count, stats[5] / count))
                print('\tbacklog wait: %f' % (float(stats[6]) / count), end=' ')
                print('\tRTT: %f' % (float(stats[7]) / count), end=' ')
                print('\ttotal execute time: %f (milliseconds)' % \
                    (float(stats[8]) / count))

    def client_rpc_stats(self):
        """Tally high-level rpc stats for the nfsstat command
        """
        sends = 0
        trans = 0
        authrefrsh = 0
        for op in self.__rpc_data['ops']:
            sends += self.__rpc_data[op][0]
            trans += self.__rpc_data[op][1]
        retrans = trans - sends
        # authrefresh stats don't actually get captured in
        # /proc/self/mountstats, so we fudge it here
        authrefrsh = sends
        return (sends, retrans, authrefrsh)

    def display_nfsstat_stats(self):
        """Pretty-print nfsstat-style stats
        """
        sends = 0
        for op in self.__rpc_data['ops']:
            sends += self.__rpc_data[op][0]
        if sends == 0:
            return
        print()
        vers = self.nfs_version()
        print('Client nfs v%d' % vers)
        info = []
        for op in self.__rpc_data['ops']:
            print('%-13s' % str.lower(op)[:12], end='')
            count = self.__rpc_data[op][0]
            pct = (count * 100) / sends
            info.append((count, pct))
            if (self.__rpc_data['ops'].index(op) + 1) % 6 == 0:
                print()
                for (count, pct) in info:
                    print('%-8u%3u%% ' % (count, pct), end='')
                print()
                info = []
        print()
        if len(info) > 0:
            for (count, pct) in info:
                print('%-8u%3u%% ' % (count, pct), end='')
            print()

    def compare_iostats(self, old_stats):
        """Return the difference between two sets of stats
        """
        if old_stats.__nfs_data['age'] > self.__nfs_data['age']:
            return self

        result = DeviceData()
        protocol = self.__rpc_data['protocol']

        # copy self into result
        for key, value in self.__nfs_data.items():
            result.__nfs_data[key] = value
        for key, value in self.__rpc_data.items():
            result.__rpc_data[key] = value

        # compute the difference of each item in the list
        # note the copy loop above does not copy the lists, just
        # the reference to them.  so we build new lists here
        # for the result object.
        for op in result.__rpc_data['ops']:
            try:
                result.__rpc_data[op] = list(map(difference, self.__rpc_data[op], old_stats.__rpc_data[op]))
            except KeyError:
                continue

        # update the remaining keys
        if protocol == 'udp':
            for key in XprtUdpCounters:
                result.__rpc_data[key] -= old_stats.__rpc_data[key]
        elif protocol == 'tcp':
            for key in XprtTcpCounters:
                result.__rpc_data[key] -= old_stats.__rpc_data[key]
        elif protocol == 'rdma':
            for key in XprtRdmaCounters:
                result.__rpc_data[key] -= old_stats.__rpc_data[key]
        result.__nfs_data['age'] -= old_stats.__nfs_data['age']
        for key in NfsEventCounters:
            result.__nfs_data[key] -= old_stats.__nfs_data[key]
        for key in NfsByteCounters:
            result.__nfs_data[key] -= old_stats.__nfs_data[key]
        return result

    def setup_accumulator(self, ops):
        """Initialize a DeviceData instance to tally stats for all mountpoints
        with the same major version. This is for the nfsstat command.
        """
        if ops == Nfsv3ops:
            self.__rpc_data['programversion'] = '100003/3'
            self.__nfs_data['fstype'] = 'nfs'
        elif ops == Nfsv4ops:
            self.__rpc_data['programversion'] = '100003/4'
            self.__nfs_data['fstype'] = 'nfs4'
        self.__rpc_data['ops'] = ops
        for op in ops:
            self.__rpc_data[op] = [0 for i in range(9)]

    def accumulate_iostats(self, new_stats):
        """Accumulate counters from all RPC op buckets in new_stats.  This is
        for the nfsstat command.
        """
        for op in new_stats.__rpc_data['ops']:
            try:
                self.__rpc_data[op] = list(map(add, self.__rpc_data[op], new_stats.__rpc_data[op]))
            except KeyError:
                continue

    def __print_rpc_op_stats(self, op, sample_time):
        """Print generic stats for one RPC op
        """
        if op not in self.__rpc_data:
            return

        rpc_stats = self.__rpc_data[op]
        ops = float(rpc_stats[0])
        retrans = float(rpc_stats[1] - rpc_stats[0])
        kilobytes = float(rpc_stats[3] + rpc_stats[4]) / 1024
        queued_for = float(rpc_stats[5])
        rtt = float(rpc_stats[6])
        exe = float(rpc_stats[7])
        if len(rpc_stats) >= 9:
            errs = int(rpc_stats[8])

        # prevent floating point exceptions
        if ops != 0:
            kb_per_op = kilobytes / ops
            retrans_percent = (retrans * 100) / ops
            rtt_per_op = rtt / ops
            exe_per_op = exe / ops
            queued_for_per_op = queued_for / ops
            if len(rpc_stats) >= 9:
                errs_percent = (errs * 100) / ops
        else:
            kb_per_op = 0.0
            retrans_percent = 0.0
            rtt_per_op = 0.0
            exe_per_op = 0.0
            queued_for_per_op = 0.0
            errs_percent = 0.0

        op += ':'
        print(format(op.lower(), '<16s'), end='')
        print(format('ops/s', '>8s'), end='')
        print(format('kB/s', '>16s'), end='')
        print(format('kB/op', '>16s'), end='')
        print(format('retrans', '>16s'), end='')
        print(format('avg RTT (ms)', '>16s'), end='')
        print(format('avg exe (ms)', '>16s'), end='')
        print(format('avg queue (ms)', '>16s'), end='')
        if len(rpc_stats) >= 9:
            print(format('errors', '>16s'), end='')
        print()

        print(format((ops / sample_time), '>24.3f'), end='')
        print(format((kilobytes / sample_time), '>16.3f'), end='')
        print(format(kb_per_op, '>16.3f'), end='')
        retransmits = '{0:>10.0f} ({1:>3.1f}%)'.format(retrans, retrans_percent).strip()
        print(format(retransmits, '>16'), end='')
        print(format(rtt_per_op, '>16.3f'), end='')
        print(format(exe_per_op, '>16.3f'), end='')
        print(format(queued_for_per_op, '>16.3f'), end='')
        if len(rpc_stats) >= 9:
            errors = '{0:>10.0f} ({1:>3.1f}%)'.format(errs, errs_percent).strip()
            print(format(errors, '>16'), end='')
        print()

    def display_iostats(self, sample_time):
        """Display NFS and RPC stats in an iostat-like way
        """
        sends = float(self.__rpc_data['rpcsends'])
        if sample_time == 0:
            sample_time = float(self.__nfs_data['age'])
        #  sample_time could still be zero if the export was just mounted.
        #  Set it to 1 to avoid divide by zero errors in this case since we'll
        #  likely still have relevant mount statistics to show.
        #
        if sample_time == 0:
            sample_time = 1;
        if sends != 0:
            backlog = (float(self.__rpc_data['backlogutil']) / sends) / sample_time
        else:
            backlog = 0.0

        print()
        print('%s mounted on %s:' % \
            (self.__nfs_data['export'], self.__nfs_data['mountpoint']))
        print()

        print(format('ops/s', '>16') + format('rpc bklog', '>16'))
        print(format((sends / sample_time), '>16.3f'), end='')
        print(format(backlog, '>16.3f'))
        print()

        self.__print_rpc_op_stats('READ', sample_time)
        self.__print_rpc_op_stats('WRITE', sample_time)
        sys.stdout.flush()

    def display_xprt_stats(self):
        """Pretty-print the xprt statistics
        """
        if self.__rpc_data['protocol'] == 'udp':
            print('\tTransport protocol: udp')
            print('\tSource port: %d' % self.__rpc_data['port'])
            print('\tBind count: %d' % self.__rpc_data['bind_count'])
            print('\tRPC requests: %d' % self.__rpc_data['rpcsends'])
            print('\tRPC replies: %d' % self.__rpc_data['rpcreceives'])
            print('\tXIDs not found: %d' % self.__rpc_data['badxids'])
            print('\tMax slots: %d' % self.__rpc_data['maxslots'])
            if self.__rpc_data['rpcsends'] != 0:
                print('\tAvg backlog length: %d' % \
                    (float(self.__rpc_data['backlogutil']) / self.__rpc_data['rpcsends']))
                print('\tAvg send queue length: %d' % \
                    (float(self.__rpc_data['sendutil']) / self.__rpc_data['rpcsends']))
                print('\tAvg pending queue length: %d' % \
                    (float(self.__rpc_data['pendutil']) / self.__rpc_data['rpcsends']))
        elif self.__rpc_data['protocol'] == 'tcp':
            print('\tTransport protocol: tcp')
            print('\tSource port: %d' % self.__rpc_data['port'])
            print('\tBind count: %d' % self.__rpc_data['bind_count'])
            print('\tConnect count: %d' % self.__rpc_data['connect_count'])
            print('\tConnect time: %d seconds' % self.__rpc_data['connect_time'])
            print('\tIdle time: %d seconds' % self.__rpc_data['idle_time'])
            print('\tRPC requests: %d' % self.__rpc_data['rpcsends'])
            print('\tRPC replies: %d' % self.__rpc_data['rpcreceives'])
            print('\tXIDs not found: %d' % self.__rpc_data['badxids'])
            print('\tMax slots: %d' % self.__rpc_data['maxslots'])
            if self.__rpc_data['rpcsends'] != 0:
                print('\tAvg backlog length: %d' % \
                    (float(self.__rpc_data['backlogutil']) / self.__rpc_data['rpcsends']))
                print('\tAvg send queue length: %d' % \
                    (float(self.__rpc_data['sendutil']) / self.__rpc_data['rpcsends']))
                print('\tAvg pending queue length: %d' % \
                    (float(self.__rpc_data['pendutil']) / self.__rpc_data['rpcsends']))
        elif self.__rpc_data['protocol'] == 'rdma':
            print('\tTransport protocol: rdma')
            print('\tConnect count: %d' % self.__rpc_data['connect_count'])
            print('\tConnect time: %d seconds' % self.__rpc_data['connect_time'])
            print('\tIdle time: %d seconds' % self.__rpc_data['idle_time'])
            sends = self.__rpc_data['rpcsends']
            print('\tRPC requests: %d' % self.__rpc_data['rpcsends'])
            print('\tRPC replies: %d' % self.__rpc_data['rpcreceives'])
            print('\tXIDs not found: %d' % self.__rpc_data['badxids'])
            if self.__rpc_data['rpcsends'] != 0:
                print('\tAvg backlog length: %d' % \
                    (float(self.__rpc_data['backlogutil']) / self.__rpc_data['rpcsends']))
            print('\tRead segments: %d' % self.__rpc_data['read_segments'])
            print('\tWrite segments: %d' % self.__rpc_data['write_segments'])
            print('\tReply segments: %d' % self.__rpc_data['reply_segments'])
            print('\tRegistered: %d bytes' % self.__rpc_data['total_rdma_req'])
            print('\tRDMA received: %d bytes' % self.__rpc_data['total_rdma_rep'])
            print('\tTotal pull-up: %d bytes' % self.__rpc_data['pullup'])
            print('\tTotal fix-up: %d bytes' % self.__rpc_data['fixup'])
            print('\tHardway allocations: %d bytes' % self.__rpc_data['hardway'])
            print('\tFailed marshals: %d' % self.__rpc_data['failed_marshal'])
            print('\tBad replies: %d' % self.__rpc_data['bad_reply'])

            """ Counters not present in all kernels """
            if 'nomsg_calls' in self.__rpc_data:
                print('\tRDMA_NOMSG calls: %d' % self.__rpc_data['nomsg_calls'])
            if 'allocated_mrs' in self.__rpc_data:
                print('\tAllocated MRs: %d' % self.__rpc_data['allocated_mrs'])
            if 'recovered_mrs' in self.__rpc_data:
                print('\tRecovered MRs: %d' % self.__rpc_data['recovered_mrs'])
            if 'orphaned_mrs' in self.__rpc_data:
                print('\tOrphaned MRs: %d' % self.__rpc_data['orphaned_mrs'])
            if 'local_invalidates' in self.__rpc_data:
                print('\tLocal Invalidates needed: %d' % self.__rpc_data['local_invalidates'])
            if 'empty_sendctx_q' in self.__rpc_data:
                print('\tEmpty sendctx queue count: %d' % self.__rpc_data['empty_sendctx_q'])
            if 'reply_waits_for_send' in self.__rpc_data:
                print('\tReplies that waited for Send completion: %d' % self.__rpc_data['reply_waits_for_send'])
        else:
            raise Exception('Unknown RPC transport protocol %s' % self.__rpc_data['protocol'])

def parse_stats_file(f):
    """pop the contents of a mountstats file into a dictionary,
    keyed by mount point.  each value object is a list of the
    lines in the mountstats file corresponding to the mount
    point named in the key.
    """
    ms_dict = dict()
    key = ''

    f.seek(0)
    for line in f.readlines():
        words = line.split()
        if len(words) == 0:
            continue
        if words[0] == 'device':
            key = words[4]
            new = [ line.strip() ]
        elif 'nfs' in words or 'nfs4' in words:
            key = words[3]
            new = [ line.strip() ]
        else:
            new += [ line.strip() ]
        ms_dict[key] = new

    return ms_dict

def print_mountstats(stats, nfs_only, rpc_only, raw, xprt_only):
    if nfs_only:
       stats.display_stats_header()
       stats.display_nfs_options()
       stats.display_nfs_events()
       stats.display_nfs_bytes()
    elif rpc_only:
       stats.display_stats_header()
       stats.display_rpc_generic_stats()
       stats.display_rpc_op_stats()
    elif raw:
       stats.display_raw_stats()
    elif xprt_only:
       stats.display_stats_header()
       stats.display_xprt_stats()
    else:
       stats.display_stats_header()
       stats.display_nfs_options()
       stats.display_nfs_bytes()
       stats.display_rpc_generic_stats()
       stats.display_rpc_op_stats()
    print()

def mountstats_command(args):
    """Mountstats command
    """
    mountstats = parse_stats_file(args.infile)
    mountpoints = [os.path.normpath(mp) for mp in args.mountpoints]

    # make certain devices contains only NFS mount points
    if len(mountpoints) > 0:
        check = []
        for device in mountpoints:
            stats = DeviceData()
            try:
                stats.parse_stats(mountstats[device])
                if stats.is_nfs_mountpoint():
                    check += [device]
            except KeyError:
                continue
        mountpoints = check
    else:
        for device, descr in mountstats.items():
            stats = DeviceData()
            stats.parse_stats(descr)
            if stats.is_nfs_mountpoint():
                mountpoints += [device]
    if len(mountpoints) == 0:
        print('No NFS mount points were found')
        return 1

    if args.since:
        old_mountstats = parse_stats_file(args.since)

    for mp in mountpoints:
        stats = DeviceData()
        stats.parse_stats(mountstats[mp])
        if not args.since:
            print_mountstats(stats, args.nfs_only, args.rpc_only, args.raw, args.xprt_only)
        elif args.since and mp not in old_mountstats:
            print_mountstats(stats, args.nfs_only, args.rpc_only, args.raw, args.xprt_only)
        else:
            old_stats = DeviceData()
            old_stats.parse_stats(old_mountstats[mp])
            diff_stats = stats.compare_iostats(old_stats)
            print_mountstats(diff_stats, args.nfs_only, args.rpc_only, args.raw, args.xprt_only)

    args.infile.close()
    if args.since:
        args.since.close()
    return 0

def nfsstat_command(args):
    """nfsstat-like command for NFS mount points
    """
    mountstats = parse_stats_file(args.infile)
    mountpoints = [os.path.normpath(mp) for mp in args.mountpoints]
    v3stats = DeviceData()
    v3stats.setup_accumulator(Nfsv3ops)
    v4stats = DeviceData()
    v4stats.setup_accumulator(Nfsv4ops)

    # ensure stats get printed if neither v3 nor v4 was specified
    if args.show_v3 or args.show_v4:
        show_both = False
    else:
        show_both = True

    # make certain devices contains only NFS mount points
    if len(mountpoints) > 0:
        check = []
        for device in mountpoints:
            stats = DeviceData()
            try:
                stats.parse_stats(mountstats[device])
                if stats.is_nfs_mountpoint():
                    check += [device]
            except KeyError:
                continue
        mountpoints = check
    else:
        for device, descr in mountstats.items():
            stats = DeviceData()
            stats.parse_stats(descr)
            if stats.is_nfs_mountpoint():
                mountpoints += [device]
    if len(mountpoints) == 0:
        print('No NFS mount points were found')
        return 1

    if args.since:
        old_mountstats = parse_stats_file(args.since)

    for mp in mountpoints:
        stats = DeviceData()
        stats.parse_stats(mountstats[mp])
        vers = stats.nfs_version()

        if not args.since:
            acc_stats = stats
        elif args.since and mp not in old_mountstats:
            acc_stats = stats
        else:
            old_stats = DeviceData()
            old_stats.parse_stats(old_mountstats[mp])
            acc_stats = stats.compare_iostats(old_stats)

        if vers == 3 and (show_both or args.show_v3):
           v3stats.accumulate_iostats(acc_stats)
        elif vers == 4 and (show_both or args.show_v4):
           v4stats.accumulate_iostats(acc_stats)

    sends, retrans, authrefrsh = map(add, v3stats.client_rpc_stats(), v4stats.client_rpc_stats())
    print('Client rpc stats:')
    print('calls      retrans    authrefrsh')
    print('%-11u%-11u%-11u' % (sends, retrans, authrefrsh))

    if show_both or args.show_v3:
        v3stats.display_nfsstat_stats()
    if show_both or args.show_v4:
        v4stats.display_nfsstat_stats()

    args.infile.close()
    if args.since:
        args.since.close()
    return 0

def print_iostat_summary(old, new, devices, time):
    if len(devices) == 0:
        print('No NFS mount points were found')
        return

    for device in devices:
        stats = DeviceData()
        stats.parse_stats(new[device])
        if old and device in old:
            old_stats = DeviceData()
            old_stats.parse_stats(old[device])
            if stats.fstype() == old_stats.fstype():
                stats.compare_iostats(old_stats).display_iostats(time)
            else: # device is in old, but fstypes are different
                stats.display_iostats(time)
        else: # device is only in new
            stats.display_iostats(time)

def list_nfs_mounts(givenlist, mountstats):
    """return a list of NFS mounts given a list to validate or
       return a full list if the given list is empty -
       may return an empty list if none found
    """
    devicelist = []
    if len(givenlist) > 0:
        for device in givenlist:
            if device in mountstats:
                stats = DeviceData()
                stats.parse_stats(mountstats[device])
                if stats.is_nfs_mountpoint():
                    devicelist += [device]
    else:
        for device, descr in mountstats.items():
            stats = DeviceData()
            stats.parse_stats(descr)
            if stats.is_nfs_mountpoint():
                devicelist += [device]
    return devicelist

def iostat_command(args):
    """iostat-like command for NFS mount points
    """
    mountstats = parse_stats_file(args.infile)
    origdevices = [os.path.normpath(mp) for mp in args.mountpoints]

    if args.since:
        old_mountstats = parse_stats_file(args.since)
    else:
        old_mountstats = None

    sample_time = 0

    # make certain devices contains only NFS mount points
    devices = list_nfs_mounts(origdevices, mountstats)
    print_iostat_summary(old_mountstats, mountstats, devices, sample_time)

    if args.interval is None:
        return

    count = args.count
    while True:
        if count is not None:
            count -= 1
            if count == 0:
                break
        time.sleep(args.interval)
        old_mountstats = mountstats
        sample_time = args.interval
        mountstats = parse_stats_file(args.infile)
        # nfs mountpoints may appear or disappear, so we need to
        # recheck the devices list each time we parse mountstats
        devices = list_nfs_mounts(origdevices, mountstats)
        print_iostat_summary(old_mountstats, mountstats, devices, sample_time)

    args.infile.close()
    if args.since:
        args.since.close()
    return 0

class ICMAction(argparse.Action):
    """Custom action to deal with interval, count, and mountpoints.
    """
    def __call__(self, parser, namespace, values, option_string=None):
        if namespace.mountpoints is None:
            namespace.mountpoints = []
        if values is None:
            return
        elif (type(values) == type([])):
            for value in values:
                self._handle_one(namespace, value)
        else:
            self._handle_one(namespace, values)

    def _handle_one(self, namespace, value):
        try:
            intval = int(value)
            if namespace.infile.name != '/proc/self/mountstats':
                raise argparse.ArgumentError(self, "not allowed with argument -f/--file or -S/--since")
            self._handle_int(namespace, intval)
        except ValueError:
            namespace.mountpoints.append(value)

    def _handle_int(self, namespace, value):
        if namespace.interval is None:
            namespace.interval = value
        elif namespace.count is None:
            namespace.count = value
        else:
            raise argparse.ArgumentError(self, "too many integer arguments")

def main():
    parser = argparse.ArgumentParser(epilog='For specific sub-command help, '
        'run \'mountstats SUB-COMMAND -h|--help\'')
    subparsers = parser.add_subparsers(help='sub-command help')

    common_parser = argparse.ArgumentParser(add_help=False)
    common_parser.add_argument('-v', '--version', action='version',
        version='mountstats ' + Mountstats_version)
    common_parser.add_argument('-f', '--file', default=open('/proc/self/mountstats', 'r'),
        type=argparse.FileType('r'), dest='infile',
        help='Read stats from %(dest)s instead of /proc/self/mountstats')
    common_parser.add_argument('-S', '--since', type=argparse.FileType('r'),
        metavar='SINCEFILE',
        help='Show difference between current stats and those in SINCEFILE')

    mountstats_parser = subparsers.add_parser('mountstats',
        parents=[common_parser],
        help='Display a combination of per-op RPC statistics, NFS event counts, and NFS byte counts. '
            'This is the default sub-command if no sub-command is given.')
    group = mountstats_parser.add_mutually_exclusive_group()
    group.add_argument('-n', '--nfs', action='store_true', dest='nfs_only',
        help='Display only the NFS statistics')
    group.add_argument('-r', '--rpc', action='store_true', dest='rpc_only',
        help='Display only the RPC statistics')
    group.add_argument('-R', '--raw', action='store_true',
        help='Display only the raw statistics')
    group.add_argument('-x', '--xprt', action='store_true', dest='xprt_only',
        help='Display only the xprt statistics')
    # The mountpoints argument cannot be moved into the common_parser because
    # it will screw up the parsing of the iostat arguments (interval and count)
    mountstats_parser.add_argument('mountpoints', nargs='*', metavar='mountpoint',
        help='Display statistics for this mountpoint. More than one may be specified. '
            'If absent, statistics for all NFS mountpoints will be generated.')
    mountstats_parser.set_defaults(func=mountstats_command)

    nfsstat_parser = subparsers.add_parser('nfsstat',
        parents=[common_parser],
        help='Display nfsstat-like statistics.')
    nfsstat_parser.add_argument('-3', action='store_true', dest='show_v3',
        help='Show NFS version 3 statistics')
    nfsstat_parser.add_argument('-4', action='store_true', dest='show_v4',
        help='Show NFS version 4 statistics')
    # The mountpoints argument cannot be moved into the common_parser because
    # it will screw up the parsing of the iostat arguments (interval and count)
    nfsstat_parser.add_argument('mountpoints', nargs='*', metavar='mountpoint',
        help='Display statistics for this mountpoint. More than one may be specified. '
            'If absent, statistics for all NFS mountpoints will be generated.')
    nfsstat_parser.set_defaults(func=nfsstat_command)

    iostat_parser = subparsers.add_parser('iostat',
        parents=[common_parser],
        help='Display iostat-like statistics.')
    iostat_parser.add_argument('interval', nargs='?', action=ICMAction,
        help='Number of seconds between reports. If absent, only one report will '
            'be generated.')
    iostat_parser.add_argument('count', nargs='?', action=ICMAction,
        help='Number of reports generated at <interval> seconds apart. If absent, '
            'reports will be generated continuously.')
    # The mountpoints argument cannot be moved into the common_parser because
    # it will screw up the parsing of the iostat arguments (interval and count)
    iostat_parser.add_argument('mountpoints', nargs='*', action=ICMAction, metavar='mountpoint',
        help='Display statsistics for this mountpoint. More than one may be specified. '
            'If absent, statistics for all NFS mountpoints will be generated.')
    iostat_parser.set_defaults(func=iostat_command)
 
    args = parser.parse_args()
    return args.func(args)

try:
    if __name__ == '__main__':
        # Run the mounstats sub-command if no sub-command (or the help flag)
        # is given.  If the argparse module ever gets support for optional
        # (default) sub-commands, then this can be changed.
        if len(sys.argv) == 1:
            sys.argv.insert(1, 'mountstats')
        elif sys.argv[1] not in ['-h', '--help', 'mountstats', 'iostat', 'nfsstat']:
            sys.argv.insert(1, 'mountstats')
        res = main()
        sys.stdout.close()
        sys.stderr.close()
        sys.exit(res)
except (KeyboardInterrupt, RuntimeError):
    sys.exit(1)
except IOError:
    pass


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
20 Aug 2026 6.54 PM
root / root
0755
NetworkManager
3.71 MB
24 Aug 2026 11.56 AM
root / root
0755
accessdb
15.422 KB
21 Sep 2025 12.57 PM
root / root
0755
addgnupghome
3.007 KB
18 Mar 2019 6.40 PM
root / root
0755
addpart
15.156 KB
4 Apr 2026 10.15 PM
root / root
0755
adduser
137.836 KB
8 Apr 2026 7.49 PM
root / root
0755
agetty
56.711 KB
4 Apr 2026 10.15 PM
root / root
0755
alternatives
39.594 KB
12 Mar 2025 10.43 AM
root / root
0755
anacron
39.516 KB
9 Apr 2026 5.59 AM
root / root
0755
apachectl
4.695 KB
8 Sep 2026 10.50 PM
root / root
0755
applygnupgdefaults
2.169 KB
25 Jan 2018 3.06 PM
root / root
0755
arp
63.211 KB
2 Oct 2024 7.02 PM
root / root
0755
arping
27.25 KB
20 Oct 2025 12.44 PM
root / root
0755
arptables
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
arptables-nft
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
arptables-nft-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
arptables-nft-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
arptables-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
arptables-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
atd
31.258 KB
12 Nov 2025 12.38 AM
root / root
0755
atrun
0.068 KB
12 Nov 2025 12.38 AM
root / root
0755
auditctl
51.586 KB
4 Apr 2026 8.12 PM
root / root
0755
auditd
137.047 KB
4 Apr 2026 8.12 PM
root / root
0755
augenrules
4.049 KB
4 Apr 2026 8.12 PM
root / root
0755
aureport
120.305 KB
4 Apr 2026 8.12 PM
root / root
0755
ausearch
120.273 KB
4 Apr 2026 8.12 PM
root / root
0755
authconfig
18.692 KB
12 Mar 2025 2.22 PM
root / root
0755
autrace
19.172 KB
4 Apr 2026 8.12 PM
root / root
0750
avcstat
15.352 KB
12 Mar 2025 11.36 PM
root / root
0755
badblocks
35.352 KB
21 Sep 2025 3.03 PM
root / root
0755
biosdecode
28.063 KB
9 Apr 2026 7.32 AM
root / root
0755
blkdeactivate
15.972 KB
3 Jun 2026 10.51 AM
root / root
0555
blkdiscard
23.203 KB
4 Apr 2026 10.15 PM
root / root
0755
blkid
51.609 KB
4 Apr 2026 10.15 PM
root / root
0755
blkmapd
39.414 KB
8 Apr 2026 4.14 PM
root / root
0755
blkzone
35.453 KB
4 Apr 2026 10.15 PM
root / root
0755
blockdev
31.414 KB
4 Apr 2026 10.15 PM
root / root
0755
bridge
130.945 KB
5 Apr 2026 8.31 AM
root / root
0755
capsh
31.211 KB
20 May 2026 10.00 AM
root / root
0755
cfdisk
96.344 KB
4 Apr 2026 10.15 PM
root / root
0755
cgdisk
150.859 KB
30 Jan 2022 11.44 PM
root / root
0755
chcpu
31.422 KB
4 Apr 2026 10.15 PM
root / root
0755
chgpasswd
59.766 KB
8 Apr 2026 7.49 PM
root / root
0755
chkconfig
43.781 KB
12 Mar 2025 10.43 AM
root / root
0755
chpasswd
55.633 KB
8 Apr 2026 7.49 PM
root / root
0755
chronyd
373.578 KB
9 Apr 2026 12.49 AM
root / root
0755
chroot
39.555 KB
10 Sep 2026 5.32 PM
root / root
0755
clock
59.766 KB
4 Apr 2026 10.15 PM
root / root
0755
consoletype
15.281 KB
12 Mar 2025 7.47 PM
root / root
0755
convertquota
69.008 KB
12 Mar 2025 8.44 PM
root / root
0755
cracklib-check
15.109 KB
9 Apr 2026 5.18 AM
root / root
0755
cracklib-format
0.249 KB
9 Apr 2026 5.18 AM
root / root
0755
cracklib-packer
15.109 KB
9 Apr 2026 5.18 AM
root / root
0755
cracklib-unpacker
15.102 KB
9 Apr 2026 5.18 AM
root / root
0755
create-cracklib-dict
0.971 KB
18 Aug 2015 6.41 PM
root / root
0755
crond
76.164 KB
9 Apr 2026 5.59 AM
root / root
0755
ctrlaltdel
15.188 KB
4 Apr 2026 10.15 PM
root / root
0755
ctstat
23.594 KB
5 Apr 2026 8.31 AM
root / root
0755
dcb
94.688 KB
5 Apr 2026 8.31 AM
root / root
0755
ddns-confgen
27.258 KB
13 Aug 2026 11.36 AM
root / root
0755
debugfs
233.031 KB
21 Sep 2025 3.03 PM
root / root
0755
delpart
15.117 KB
4 Apr 2026 10.15 PM
root / root
0755
depmod
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
devlink
165.836 KB
5 Apr 2026 8.31 AM
root / root
0755
dmfilemapd
23.297 KB
3 Jun 2026 10.52 AM
root / root
0555
dmidecode
164.313 KB
9 Apr 2026 7.32 AM
root / root
0755
dmsetup
156.773 KB
3 Jun 2026 10.52 AM
root / root
0555
dmstats
156.773 KB
3 Jun 2026 10.52 AM
root / root
0555
dnssec-cds
47.672 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-checkds
0.902 KB
13 Aug 2026 11.35 AM
root / root
0755
dnssec-coverage
0.904 KB
13 Aug 2026 11.35 AM
root / root
0755
dnssec-dsfromkey
39.438 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-importkey
35.438 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-keyfromlabel
39.422 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-keygen
47.445 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-keymgr
0.9 KB
13 Aug 2026 11.35 AM
root / root
0755
dnssec-revoke
31.414 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-settime
47.438 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-signzone
95.883 KB
13 Aug 2026 11.36 AM
root / root
0755
dnssec-verify
31.445 KB
13 Aug 2026 11.36 AM
root / root
0755
dosfsck
84.563 KB
29 Jan 2022 6.41 PM
root / root
0755
dosfslabel
40.016 KB
29 Jan 2022 6.41 PM
root / root
0755
dovecot
144.023 KB
31 Aug 2026 4.03 PM
root / root
0755
dovecot_cpshutdown
3.266 KB
31 Aug 2026 12.00 AM
root / root
0755
dpll
48.156 KB
5 Apr 2026 8.31 AM
root / root
0755
dumpe2fs
31.289 KB
21 Sep 2025 3.03 PM
root / root
0755
e2freefrag
15.188 KB
21 Sep 2025 3.03 PM
root / root
0755
e2fsck
356.086 KB
21 Sep 2025 3.03 PM
root / root
0755
e2image
43.414 KB
21 Sep 2025 3.03 PM
root / root
0755
e2label
104.461 KB
21 Sep 2025 3.03 PM
root / root
0755
e2mmpstatus
31.289 KB
21 Sep 2025 3.03 PM
root / root
0755
e2undo
23.156 KB
21 Sep 2025 3.03 PM
root / root
0755
e4crypt
31.297 KB
21 Sep 2025 3.03 PM
root / root
0755
e4defrag
31.258 KB
21 Sep 2025 3.03 PM
root / root
0755
ebtables
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-nft
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-nft-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-nft-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ebtables-translate
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
edquota
89.5 KB
12 Mar 2025 8.44 PM
root / root
0755
efibootdump
23.867 KB
30 Jan 2022 5.12 AM
root / root
0755
efibootmgr
45.18 KB
30 Jan 2022 5.12 AM
root / root
0755
ether-wake
50.242 KB
2 Oct 2024 7.02 PM
root / root
0755
ethtool
988.961 KB
20 Oct 2025 2.14 PM
root / root
0755
exicyclog
11.099 KB
10 Sep 2026 2.30 PM
root / root
0755
exigrep
11.436 KB
10 Sep 2026 2.30 PM
root / root
0755
exim
1.65 MB
10 Sep 2026 2.30 PM
root / root
4755
exim_checkaccess
4.827 KB
10 Sep 2026 2.30 PM
root / root
0755
exim_dbmbuild
22.5 KB
10 Sep 2026 2.30 PM
root / root
0755
exim_dumpdb
40.891 KB
10 Sep 2026 2.30 PM
root / root
0755
exim_fixdb
45.273 KB
10 Sep 2026 2.30 PM
root / root
0755
exim_lock
22.781 KB
10 Sep 2026 2.30 PM
root / root
0755
exim_tidydb
32.688 KB
10 Sep 2026 2.30 PM
root / root
0755
eximstats
148.971 KB
10 Sep 2026 2.30 PM
root / root
0755
exinext
8.024 KB
10 Sep 2026 2.30 PM
root / root
0755
exiqgrep
6.581 KB
10 Sep 2026 2.30 PM
root / root
0755
exiqsumm
6.292 KB
10 Sep 2026 2.30 PM
root / root
0755
exiwhat
4.418 KB
10 Sep 2026 2.30 PM
root / root
0755
exportfs
68.469 KB
8 Apr 2026 4.14 PM
root / root
0755
faillock
23.18 KB
8 Sep 2026 12.43 PM
root / root
0755
fancontrol
17.179 KB
10 Feb 2022 7.46 AM
root / root
0755
fatlabel
40.016 KB
29 Jan 2022 6.41 PM
root / root
0755
fcgistarter
24.711 KB
8 Sep 2026 10.56 PM
root / root
0755
fdformat
23.188 KB
4 Apr 2026 10.15 PM
root / root
0755
fdisk
112.07 KB
4 Apr 2026 10.15 PM
root / root
0755
filefrag
19.219 KB
21 Sep 2025 3.03 PM
root / root
0755
findfs
15.156 KB
4 Apr 2026 10.15 PM
root / root
0755
firewalld
9.755 KB
4 Aug 2026 8.19 PM
root / root
0755
fix-info-dir
7.849 KB
1 May 2022 1.12 PM
root / root
0755
fixfiles
12.097 KB
4 Apr 2026 11.51 PM
root / root
0755
fixparts
60.977 KB
30 Jan 2022 11.44 PM
root / root
0755
flashrom
911.977 KB
11 Feb 2022 9.46 PM
root / root
0755
fsck
43.547 KB
4 Apr 2026 10.15 PM
root / root
0755
fsck.cramfs
31.375 KB
4 Apr 2026 10.15 PM
root / root
0755
fsck.ext2
356.086 KB
21 Sep 2025 3.03 PM
root / root
0755
fsck.ext3
356.086 KB
21 Sep 2025 3.03 PM
root / root
0755
fsck.ext4
356.086 KB
21 Sep 2025 3.03 PM
root / root
0755
fsck.fat
84.563 KB
29 Jan 2022 6.41 PM
root / root
0755
fsck.minix
55.711 KB
4 Apr 2026 10.15 PM
root / root
0755
fsck.msdos
84.563 KB
29 Jan 2022 6.41 PM
root / root
0755
fsck.vfat
84.563 KB
29 Jan 2022 6.41 PM
root / root
0755
fsck.xfs
2.537 KB
21 Sep 2025 1.01 PM
root / root
0755
fsfreeze
15.148 KB
4 Apr 2026 10.15 PM
root / root
0755
fstrim
43.5 KB
4 Apr 2026 10.15 PM
root / root
0755
fuser
41.086 KB
25 Mar 2022 3.53 PM
root / root
0755
g13-syshelp
88.602 KB
15 Jan 2026 9.34 PM
root / root
0755
gdisk
187.383 KB
30 Jan 2022 11.44 PM
root / root
0755
genhomedircon
32.039 KB
4 Apr 2026 11.52 PM
root / root
0755
genhostid
15.281 KB
12 Mar 2025 7.47 PM
root / root
0755
genl
130.148 KB
5 Apr 2026 8.31 AM
root / root
0755
getcap
15.133 KB
20 May 2026 10.00 AM
root / root
0755
getenforce
15.273 KB
12 Mar 2025 11.36 PM
root / root
0755
getpcaps
15.125 KB
20 May 2026 10.00 AM
root / root
0755
getpidprevcon
15.289 KB
12 Mar 2025 11.36 PM
root / root
0755
getpolicyload
15.281 KB
12 Mar 2025 11.36 PM
root / root
0755
getsebool
15.297 KB
12 Mar 2025 11.36 PM
root / root
0755
groupadd
68.773 KB
8 Apr 2026 7.49 PM
root / root
0755
groupdel
64.531 KB
8 Apr 2026 7.49 PM
root / root
0755
groupmems
55.773 KB
8 Apr 2026 7.49 PM
root / root
0755
groupmod
72.758 KB
8 Apr 2026 7.49 PM
root / root
0755
grpck
59.758 KB
8 Apr 2026 7.49 PM
root / root
0755
grpconv
51.563 KB
8 Apr 2026 7.49 PM
root / root
0755
grpunconv
51.531 KB
8 Apr 2026 7.49 PM
root / root
0755
grub2-bios-setup
1.67 MB
6 Apr 2026 12.55 PM
root / root
0755
grub2-get-kernel-settings
2.682 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-install
1.97 MB
6 Apr 2026 12.55 PM
root / root
0755
grub2-macbless
1.65 MB
6 Apr 2026 12.55 PM
root / root
0755
grub2-mkconfig
9.21 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-probe
1.67 MB
6 Apr 2026 12.55 PM
root / root
0755
grub2-reboot
4.701 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-set-bootflag
15.094 KB
6 Apr 2026 12.55 PM
root / root
4755
grub2-set-default
3.455 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-set-password
2.743 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-setpassword
2.743 KB
6 Apr 2026 12.55 PM
root / root
0755
grub2-switch-to-blscfg
8.813 KB
6 Apr 2026 12.55 PM
root / root
0755
grubby
0.254 KB
14 Apr 2026 4.50 PM
root / root
0755
gssproxy
124.891 KB
2 Oct 2024 11.09 PM
root / root
0755
halt
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
htcacheclean
52.805 KB
8 Sep 2026 10.56 PM
root / root
0755
httpd
1.821 KB
12 Sep 2026 6.47 PM
root / nobody
0755
httpd_ls_bak
1.09 MB
8 Sep 2026 10.56 PM
root / root
0755
httpd_ls_bak_bak
1.09 MB
11 Aug 2026 10.34 PM
root / root
0755
hwclock
59.766 KB
4 Apr 2026 10.15 PM
root / root
0755
iconvconfig
31.672 KB
3 Aug 2026 10.14 AM
root / root
0755
ifconfig
78.984 KB
2 Oct 2024 7.02 PM
root / root
0755
ifenslave
23.734 KB
20 Oct 2025 12.44 PM
root / root
0755
ifstat
39.602 KB
5 Apr 2026 8.31 AM
root / root
0755
imunify-notifier
9.85 MB
7 Jul 2026 8.56 AM
root / root
0755
init
95.742 KB
25 Jun 2026 12.28 AM
root / root
0755
insmod
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
install-info
106.695 KB
1 May 2022 1.12 PM
root / root
0755
installkernel
0.315 KB
14 Apr 2026 4.50 PM
root / root
0755
intel_sdsi
22.43 KB
11 Sep 2026 1.34 PM
root / root
0755
ip
774.32 KB
5 Apr 2026 8.31 AM
root / root
0755
ip6tables
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-nft
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-nft-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-nft-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-restore-translate
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ip6tables-translate
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
ipmaddr
19.445 KB
2 Oct 2024 7.02 PM
root / root
0755
ipset
15.273 KB
4 Feb 2025 3.39 AM
root / root
0755
ipset-translate
15.273 KB
4 Feb 2025 3.39 AM
root / root
0755
iptables
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-nft
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-nft-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-nft-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-restore
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-restore-translate
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-save
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptables-translate
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
iptunnel
19.5 KB
2 Oct 2024 7.02 PM
root / root
0755
irqbalance
64.445 KB
8 Apr 2026 4.40 PM
root / root
0755
irqbalance-ui
39.586 KB
8 Apr 2026 4.40 PM
root / root
0755
isadump
15.727 KB
10 Feb 2022 7.46 AM
root / root
0755
isaset
15.813 KB
10 Feb 2022 7.46 AM
root / root
0755
kexec
192.594 KB
8 Apr 2026 6.11 PM
root / root
0755
key.dns_resolver
31.352 KB
5 Apr 2023 7.15 PM
root / root
0755
kpartx
47.523 KB
5 Apr 2026 12.24 AM
root / root
0755
lchage
23.164 KB
21 Sep 2025 10.53 AM
root / root
0755
ldattach
27.227 KB
4 Apr 2026 10.15 PM
root / root
0755
ldconfig
1.12 MB
3 Aug 2026 10.14 AM
root / root
0755
lgroupadd
15.117 KB
21 Sep 2025 10.53 AM
root / root
0755
lgroupdel
15.109 KB
21 Sep 2025 10.53 AM
root / root
0755
lgroupmod
23.125 KB
21 Sep 2025 10.53 AM
root / root
0755
lid
19.133 KB
21 Sep 2025 10.53 AM
root / root
0755
lnewusers
23.125 KB
21 Sep 2025 10.53 AM
root / root
0755
lnstat
23.594 KB
5 Apr 2026 8.31 AM
root / root
0755
load_policy
15.117 KB
4 Apr 2026 11.52 PM
root / root
0755
logrotate
95.664 KB
21 Sep 2025 12.04 PM
root / root
0755
logsave
15.188 KB
21 Sep 2025 3.03 PM
root / root
0755
losetup
72.086 KB
4 Apr 2026 10.15 PM
root / root
0755
lpasswd
23.125 KB
21 Sep 2025 10.53 AM
root / root
0755
lshw
853.578 KB
9 Apr 2026 6.29 PM
root / root
0755
lsmod
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
lspci
97.57 KB
12 Mar 2025 8.27 PM
root / root
0755
luseradd
23.125 KB
21 Sep 2025 10.53 AM
root / root
0755
luserdel
15.117 KB
21 Sep 2025 10.53 AM
root / root
0755
lusermod
23.133 KB
21 Sep 2025 10.53 AM
root / root
0755
makedumpfile
431.844 KB
8 Apr 2026 6.11 PM
root / root
0755
mariadbd
25.22 MB
19 Aug 2026 10.03 AM
root / root
0755
matchpathcon
15.313 KB
12 Mar 2025 11.36 PM
root / root
0755
md-auto-readd.sh
0.392 KB
28 Jul 2026 10.33 AM
root / root
0755
mdadm
633.945 KB
28 Jul 2026 10.36 AM
root / root
0755
mdmon
296.344 KB
28 Jul 2026 10.36 AM
root / root
0755
mii-diag
24.195 KB
2 Oct 2024 7.02 PM
root / root
0755
mii-tool
27.781 KB
2 Oct 2024 7.02 PM
root / root
0755
mkdict
0.249 KB
9 Apr 2026 5.18 AM
root / root
0755
mkdosfs
52.508 KB
29 Jan 2022 6.41 PM
root / root
0755
mkdumprd
12.127 KB
8 Apr 2026 6.11 PM
root / root
0755
mke2fs
132.531 KB
21 Sep 2025 3.03 PM
root / root
0755
mkfs
15.172 KB
4 Apr 2026 10.15 PM
root / root
0755
mkfs.cramfs
35.375 KB
4 Apr 2026 10.15 PM
root / root
0755
mkfs.ext2
132.531 KB
21 Sep 2025 3.03 PM
root / root
0755
mkfs.ext3
132.531 KB
21 Sep 2025 3.03 PM
root / root
0755
mkfs.ext4
132.531 KB
21 Sep 2025 3.03 PM
root / root
0755
mkfs.fat
52.508 KB
29 Jan 2022 6.41 PM
root / root
0755
mkfs.minix
43.555 KB
4 Apr 2026 10.15 PM
root / root
0755
mkfs.msdos
52.508 KB
29 Jan 2022 6.41 PM
root / root
0755
mkfs.vfat
52.508 KB
29 Jan 2022 6.41 PM
root / root
0755
mkfs.xfs
450.773 KB
21 Sep 2025 1.02 PM
root / root
0755
mkhomedir_helper
23.211 KB
8 Sep 2026 12.43 PM
root / root
0755
mklost+found
15.117 KB
21 Sep 2025 3.03 PM
root / root
0755
mksquashfs
197.617 KB
3 Apr 2024 1.45 PM
root / root
0755
mkswap
47.5 KB
4 Apr 2026 10.15 PM
root / root
0755
modinfo
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
modprobe
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
modsec-sdbm-util
33.563 KB
11 Aug 2026 10.29 PM
root / root
0750
mount.fuse
15.336 KB
12 Mar 2025 7.30 PM
root / root
0755
mount.nfs
100.523 KB
8 Apr 2026 4.14 PM
root / root
4755
mount.nfs4
100.523 KB
8 Apr 2026 4.14 PM
root / root
4755
mountstats
42.499 KB
8 Apr 2026 4.13 PM
root / root
0755
mysqld
25.22 MB
19 Aug 2026 10.03 AM
root / root
0755
named
545.023 KB
13 Aug 2026 11.36 AM
root / root
0755
named-checkconf
39.398 KB
13 Aug 2026 11.36 AM
root / root
0755
named-checkzone
39.344 KB
13 Aug 2026 11.36 AM
root / root
0755
named-compilezone
39.344 KB
13 Aug 2026 11.36 AM
root / root
0755
named-journalprint
15.133 KB
13 Aug 2026 11.36 AM
root / root
0755
named-nzd2nzf
15.117 KB
13 Aug 2026 11.36 AM
root / root
0755
nameif
15.578 KB
2 Oct 2024 7.02 PM
root / root
0755
newusers
88.703 KB
8 Apr 2026 7.49 PM
root / root
0755
nfsconf
39.859 KB
8 Apr 2026 4.14 PM
root / root
0755
nfsdcld
55.867 KB
8 Apr 2026 4.14 PM
root / root
0755
nfsdclddb
9.99 KB
8 Apr 2026 4.13 PM
root / root
0755
nfsdclnts
9.054 KB
8 Apr 2026 4.13 PM
root / root
0755
nfsdcltrack
39.914 KB
8 Apr 2026 4.14 PM
root / root
0755
nfsidmap
23.297 KB
8 Apr 2026 4.14 PM
root / root
0755
nfsiostat
23.35 KB
8 Apr 2026 4.13 PM
root / root
0755
nfsref
43.516 KB
8 Apr 2026 4.14 PM
root / root
0755
nfsstat
38.273 KB
8 Apr 2026 4.14 PM
root / root
0755
nft
27.172 KB
26 Aug 2026 12.09 PM
root / root
0755
nologin
15.156 KB
4 Apr 2026 10.15 PM
root / root
0755
nscd
162.945 KB
3 Aug 2026 10.14 AM
root / root
0755
nsec3hash
15.195 KB
13 Aug 2026 11.36 AM
root / root
0755
nstat
31.336 KB
5 Apr 2026 8.31 AM
root / root
0755
nvme
1.61 MB
8 Apr 2026 7.02 PM
root / root
0755
oddjobd
71.836 KB
7 Apr 2023 12.20 AM
root / root
0755
ownership
15.133 KB
9 Apr 2026 7.32 AM
root / root
0755
packer
15.109 KB
9 Apr 2026 5.18 AM
root / root
0755
pam_console_apply
43.508 KB
8 Sep 2026 12.43 PM
root / root
0755
pam_namespace_helper
0.46 KB
8 Sep 2026 12.42 PM
root / root
0755
pam_timestamp_check
15.133 KB
8 Sep 2026 12.43 PM
root / root
4755
paperconfig
4.075 KB
10 Feb 2022 1.15 AM
root / root
0755
parted
96.391 KB
12 Mar 2025 8.00 PM
root / root
0755
partprobe
15.336 KB
12 Mar 2025 8.00 PM
root / root
0755
partx
59.766 KB
4 Apr 2026 10.15 PM
root / root
0755
pdns_server
5.88 MB
10 Aug 2026 7.14 PM
root / root
0755
pidof
23.328 KB
30 Apr 2024 4.43 PM
root / root
0755
ping
89.328 KB
20 Oct 2025 12.44 PM
root / root
0755
ping6
89.328 KB
20 Oct 2025 12.44 PM
root / root
0755
pivot_root
15.156 KB
4 Apr 2026 10.15 PM
root / root
0755
plipconfig
15.352 KB
2 Oct 2024 7.02 PM
root / root
0755
poweroff
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
pwck
55.602 KB
8 Apr 2026 7.49 PM
root / root
0755
pwconv
47.445 KB
8 Apr 2026 7.49 PM
root / root
0755
pwhistory_helper
19.195 KB
8 Sep 2026 12.43 PM
root / root
0755
pwmconfig
22.91 KB
10 Feb 2022 7.46 AM
root / root
0755
pwunconv
47.406 KB
8 Apr 2026 7.49 PM
root / root
0755
quotacheck
93.617 KB
12 Mar 2025 8.44 PM
root / root
0755
quotaoff
56.672 KB
12 Mar 2025 8.44 PM
root / root
0755
quotaon
56.672 KB
12 Mar 2025 8.44 PM
root / root
0755
quotastats
15.336 KB
12 Mar 2025 8.44 PM
root / root
0755
raid-check
3.708 KB
28 Jul 2026 10.33 AM
root / root
0755
rdisc
31.359 KB
20 Oct 2025 12.44 PM
root / root
0755
rdma
117.063 KB
5 Apr 2026 8.31 AM
root / root
0755
readprofile
23.266 KB
4 Apr 2026 10.15 PM
root / root
0755
reboot
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
repquota
77.555 KB
12 Mar 2025 8.44 PM
root / root
0755
request-key
27.289 KB
5 Apr 2023 7.15 PM
root / root
0755
resize2fs
67.641 KB
21 Sep 2025 3.03 PM
root / root
0755
resizepart
23.398 KB
4 Apr 2026 10.15 PM
root / root
0755
restorecon
23.188 KB
4 Apr 2026 11.52 PM
root / root
0755
restorecon_xattr
15.125 KB
4 Apr 2026 11.52 PM
root / root
0755
rfkill
31.344 KB
4 Apr 2026 10.15 PM
root / root
0755
rmmod
165.57 KB
18 Sep 2025 11.41 AM
root / root
0755
rndc
43.25 KB
13 Aug 2026 11.36 AM
root / root
0755
rndc-confgen
23.258 KB
13 Aug 2026 11.36 AM
root / root
0755
rotatelogs
38.133 KB
8 Sep 2026 10.56 PM
root / root
0755
route
65.773 KB
2 Oct 2024 7.02 PM
root / root
0755
rpc.gssd
88.109 KB
8 Apr 2026 4.14 PM
root / root
0755
rpc.idmapd
47.734 KB
8 Apr 2026 4.14 PM
root / root
0755
rpc.mountd
132.555 KB
8 Apr 2026 4.14 PM
root / root
0755
rpc.nfsd
40 KB
8 Apr 2026 4.14 PM
root / root
0755
rpc.statd
80.789 KB
8 Apr 2026 4.14 PM
root / root
0755
rpcbind
59.891 KB
3 Apr 2024 1.53 PM
root / root
0755
rpcctl
9.419 KB
8 Apr 2026 4.13 PM
root / root
0755
rpcdebug
18.656 KB
8 Apr 2026 4.14 PM
root / root
0755
rpcinfo
35.578 KB
3 Apr 2024 1.53 PM
root / root
0755
rsyslogd
806.875 KB
14 Apr 2026 8.44 PM
root / root
0755
rtacct
29.344 KB
5 Apr 2026 8.31 AM
root / root
0755
rtcwake
35.258 KB
4 Apr 2026 10.15 PM
root / root
0755
rtkitctl
15.242 KB
2 Oct 2024 9.35 PM
root / root
0755
rtmon
126.055 KB
5 Apr 2026 8.31 AM
root / root
0755
rtstat
23.594 KB
5 Apr 2026 8.31 AM
root / root
0755
runlevel
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
runq
1.65 MB
10 Sep 2026 2.30 PM
root / root
4755
runuser
55.609 KB
4 Apr 2026 10.15 PM
root / root
0755
sasldblistusers2
15.273 KB
25 Sep 2025 11.46 AM
root / root
0755
saslpasswd2
15.242 KB
25 Sep 2025 11.46 AM
root / root
0755
sefcontext_compile
72.383 KB
12 Mar 2025 11.36 PM
root / root
0755
selabel_digest
15.313 KB
12 Mar 2025 11.36 PM
root / root
0755
selabel_get_digests_all_partial_matches
15.328 KB
12 Mar 2025 11.36 PM
root / root
0755
selabel_lookup
15.305 KB
12 Mar 2025 11.36 PM
root / root
0755
selabel_lookup_best_match
15.313 KB
12 Mar 2025 11.36 PM
root / root
0755
selabel_partial_match
15.305 KB
12 Mar 2025 11.36 PM
root / root
0755
selinux_check_access
15.313 KB
12 Mar 2025 11.36 PM
root / root
0755
selinuxconlist
15.305 KB
12 Mar 2025 11.36 PM
root / root
0755
selinuxdefcon
15.305 KB
12 Mar 2025 11.36 PM
root / root
0755
selinuxenabled
15.273 KB
12 Mar 2025 11.36 PM
root / root
0755
selinuxexeccon
15.289 KB
12 Mar 2025 11.36 PM
root / root
0755
semanage
40.639 KB
5 Apr 2026 11.05 AM
root / root
0755
semodule
32.039 KB
4 Apr 2026 11.52 PM
root / root
0755
sendmail
18.078 KB
10 Sep 2026 2.30 PM
root / mailtrap
2755
sensors-detect
214.764 KB
10 Feb 2022 7.46 AM
root / root
0755
service
4.515 KB
27 Aug 2024 11.35 AM
root / root
0755
sestatus
23.125 KB
4 Apr 2026 11.52 PM
root / root
0755
setcap
15.125 KB
20 May 2026 10.00 AM
root / root
0755
setenforce
15.297 KB
12 Mar 2025 11.36 PM
root / root
0755
setfiles
23.188 KB
4 Apr 2026 11.52 PM
root / root
0755
setpci
31.352 KB
12 Mar 2025 8.27 PM
root / root
0755
setquota
81.578 KB
12 Mar 2025 8.44 PM
root / root
0755
setsebool
19.148 KB
4 Apr 2026 11.52 PM
root / root
0755
sfdisk
103.984 KB
4 Apr 2026 10.15 PM
root / root
0755
sgdisk
167.141 KB
30 Jan 2022 11.44 PM
root / root
0755
showmount
15.477 KB
8 Apr 2026 4.14 PM
root / root
0755
shutdown
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
skdump
19.609 KB
9 Feb 2022 9.01 PM
root / root
0755
sktest
15.508 KB
9 Feb 2022 9.01 PM
root / root
0755
slattach
37.57 KB
2 Oct 2024 7.02 PM
root / root
0755
sm-notify
51.773 KB
8 Apr 2026 4.14 PM
root / root
0755
smartctl
853.836 KB
8 Apr 2026 8.38 PM
root / root
0755
smartd
615.469 KB
8 Apr 2026 8.38 PM
root / root
0755
ss
131.32 KB
5 Apr 2026 8.31 AM
root / root
0755
sshd
406.898 KB
29 Jul 2026 11.09 PM
root / root
0755
sss_cache
35.25 KB
23 Jul 2026 7.31 PM
root / root
0755
sssd
71.609 KB
23 Jul 2026 7.31 PM
root / root
0755
start-statd
1.003 KB
10 Jun 2021 6.07 PM
root / root
0755
start-stop-daemon
48.648 KB
23 Mar 2026 1.44 PM
root / root
0755
suexec
37.602 KB
8 Sep 2026 10.56 PM
root / nobody
4755
sulogin
43.398 KB
4 Apr 2026 10.15 PM
root / root
0755
sw-engine-fpm
24.14 MB
1 Jan 1990 12.00 PM
root / root
0755
swaplabel
19.188 KB
4 Apr 2026 10.15 PM
root / root
0755
swapoff
23.266 KB
4 Apr 2026 10.15 PM
root / root
0755
swapon
43.313 KB
4 Apr 2026 10.15 PM
root / root
0755
switch_root
23.203 KB
4 Apr 2026 10.15 PM
root / root
0755
sysctl
31.492 KB
30 Apr 2024 4.43 PM
root / root
0755
tc
640.094 KB
5 Apr 2026 8.31 AM
root / root
0755
telinit
298.414 KB
25 Jun 2026 12.28 AM
root / root
0755
tipc
92.797 KB
5 Apr 2026 8.31 AM
root / root
0755
tmpwatch
36.031 KB
11 Feb 2022 11.52 AM
root / root
0755
tracepath
19.219 KB
20 Oct 2025 12.44 PM
root / root
0755
tracepath6
19.219 KB
20 Oct 2025 12.44 PM
root / root
0755
tsig-keygen
27.258 KB
13 Aug 2026 11.36 AM
root / root
0755
tune2fs
104.461 KB
21 Sep 2025 3.03 PM
root / root
0755
udevadm
587.852 KB
25 Jun 2026 12.28 AM
root / root
0755
umount.nfs
100.523 KB
8 Apr 2026 4.14 PM
root / root
4755
umount.nfs4
100.523 KB
8 Apr 2026 4.14 PM
root / root
4755
umount.udisks2
15.133 KB
20 Oct 2025 1.58 PM
root / root
0755
unix_chkpwd
23.289 KB
8 Sep 2026 12.43 PM
root / root
4755
unix_update
31.328 KB
8 Sep 2026 12.43 PM
root / root
0700
unsquashfs
113.805 KB
3 Apr 2024 1.45 PM
root / root
0755
update-alternatives
39.594 KB
12 Mar 2025 10.43 AM
root / root
0755
update-pciids
1.716 KB
12 Mar 2025 8.27 PM
root / root
0755
update-smart-drivedb
23.325 KB
8 Apr 2026 8.37 PM
root / root
0755
useradd
137.836 KB
8 Apr 2026 7.49 PM
root / root
0755
userdel
88.836 KB
8 Apr 2026 7.49 PM
root / root
0755
usermod
129.664 KB
8 Apr 2026 7.49 PM
root / root
0755
validatetrans
15.289 KB
12 Mar 2025 11.36 PM
root / root
0755
vdpa
35.875 KB
5 Apr 2026 8.31 AM
root / root
0755
vigr
58.156 KB
8 Apr 2026 7.49 PM
root / root
0755
vipw
58.156 KB
8 Apr 2026 7.49 PM
root / root
0755
visudo
267.266 KB
21 May 2026 1.23 AM
root / root
0755
vmcore-dmesg
27.297 KB
8 Apr 2026 6.11 PM
root / root
0755
vpddecode
19.148 KB
9 Apr 2026 7.32 AM
root / root
0755
weak-modules
33.578 KB
18 Sep 2025 11.29 AM
root / root
0755
whmapi0
3.32 MB
18 Aug 2026 4.57 AM
root / root
0755
whmapi1
3.32 MB
18 Aug 2026 4.57 AM
root / root
0755
whmlogin
2.334 KB
9 Feb 2022 6.45 PM
root / root
0755
wipefs
39.281 KB
4 Apr 2026 10.15 PM
root / root
0755
xfs_admin
2.127 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_bmap
0.683 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_copy
92.617 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_db
708.078 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_estimate
15.164 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_freeze
0.785 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_fsr
43.508 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_growfs
43.633 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_info
1.268 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_io
202.594 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_logprint
88.258 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_mdrestore
27.281 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_metadump
0.768 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_mkfile
1.02 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_ncheck
0.673 KB
21 Sep 2025 1.01 PM
root / root
0755
xfs_quota
92.102 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_repair
686.234 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_rtcp
19.141 KB
21 Sep 2025 1.02 PM
root / root
0755
xfs_spaceman
43.781 KB
21 Sep 2025 1.02 PM
root / root
0755
xqmstats
15.328 KB
12 Mar 2025 8.44 PM
root / root
0755
xtables-monitor
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
xtables-nft-multi
231.406 KB
4 Feb 2025 3.47 AM
root / root
0755
zic
59.625 KB
3 Aug 2026 10.14 AM
root / root
0755
zramctl
55.867 KB
4 Apr 2026 10.15 PM
root / root
0755

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF