!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/libexec/netdata/python.d/   drwxr-xr-x
Free 13.25 GB of 57.97 GB (22.86%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     logind.chart.py (2.57 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- coding: utf-8 -*-
# Description: logind netdata python.d module
# Author: Austin S. Hemmelgarn (Ferroin)
# SPDX-License-Identifier: GPL-3.0-or-later

from bases.FrameworkServices.ExecutableService import ExecutableService

priority = 59999
disabled_by_default = True

LOGINCTL_COMMAND = 'loginctl list-sessions --no-legend'

ORDER = [
    'sessions',
    'users',
    'seats',
]

CHARTS = {
    'sessions': {
        'options': [None, 'Logind Sessions', 'sessions', 'sessions', 'logind.sessions', 'stacked'],
        'lines': [
            ['sessions_graphical', 'Graphical', 'absolute', 1, 1],
            ['sessions_console', 'Console', 'absolute', 1, 1],
            ['sessions_remote', 'Remote', 'absolute', 1, 1]
        ]
    },
    'users': {
        'options': [None, 'Logind Users', 'users', 'users', 'logind.users', 'stacked'],
        'lines': [
            ['users_graphical', 'Graphical', 'absolute', 1, 1],
            ['users_console', 'Console', 'absolute', 1, 1],
            ['users_remote', 'Remote', 'absolute', 1, 1]
        ]
    },
    'seats': {
        'options': [None, 'Logind Seats', 'seats', 'seats', 'logind.seats', 'line'],
        'lines': [
            ['seats', 'Active Seats', 'absolute', 1, 1]
        ]
    }
}


class Service(ExecutableService):
    def __init__(self, configuration=None, name=None):
        ExecutableService.__init__(self, configuration=configuration, name=name)
        self.order = ORDER
        self.definitions = CHARTS
        self.command = LOGINCTL_COMMAND

    def _get_data(self):
        ret = {
            'sessions_graphical': 0,
            'sessions_console': 0,
            'sessions_remote': 0,
        }
        users = {
            'graphical': list(),
            'console': list(),
            'remote': list()
        }
        seats = list()
        data = self._get_raw_data()

        for item in data:
            fields = item.split()
            if len(fields) == 3:
                users['remote'].append(fields[2])
                ret['sessions_remote'] += 1
            elif len(fields) == 4:
                users['graphical'].append(fields[2])
                ret['sessions_graphical'] += 1
                seats.append(fields[3])
            elif len(fields) == 5:
                users['console'].append(fields[2])
                ret['sessions_console'] += 1
                seats.append(fields[3])

        ret['users_graphical'] = len(set(users['graphical']))
        ret['users_console'] = len(set(users['console']))
        ret['users_remote'] = len(set(users['remote']))
        ret['seats'] = len(set(seats))

        return ret

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0046 ]--