PATH: //opt/cloudlinux/venv/bin
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 Activate.ps1
↓
X
📄 activate
↓
X
📄 activate.csh
↓
X
📄 activate.fish
↓
X
📄 alembic
↓
X
📄 cagefs_enter_site.py
↓
X
📄 cagefsctl_user.py
↓
X
📄 chardetect
↓
X
📄 cl_sysctl
↓
X
📄 clcpapi
↓
X
📄 coverage
↓
X
📄 coverage-3.11
↓
X
📄 coverage3
↓
X
📄 cpanel-dbmapping
↓
X
📄 crontab-user-wrapper.py
↓
X
📄 da_suid_caller.py
↓
X
📄 detect-requirements
↓
X
📄 dodgy
↓
X
📄 epylint
↓
X
📄 f2py
↓
X
📄 f2py3
↓
X
📄 f2py3.11
↓
X
📄 flake8
↓
X
📄 futurize
↓
X
📄 get_gprof
↓
X
📄 get_objgraph
↓
X
📄 isort
↓
X
📄 isort-identify-imports
↓
X
📄 jsonschema
↓
X
📄 lvestats_config_reader.py
↓
X
📄 mako-render
↓
X
📄 normalizer
↓
X
📄 pasteurize
↓
X
📄 pip
↓
X
📄 pip3
↓
X
📄 pip3.11
↓
X
📄 plesk_suid_caller.py
↓
X
📄 prospector
↓
X
📄 py.test
↓
X
📄 pycodestyle
↓
X
📄 pydocstyle
↓
X
📄 pyflakes
↓
X
📄 pylint
↓
X
📄 pylint-config
↓
X
📄 pyreverse
↓
X
📄 pysemver
↓
X
📄 pytest
↓
X
📄 python
↓
X
📄 python3
↓
X
📄 python3.11
↓
X
📄 raven
↓
X
📄 symilar
↓
X
📄 tap
↓
X
📄 tappy
↓
X
📄 undill
↓
X
📄 virtualenv
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: cl_sysctl
#!/opt/cloudlinux/venv/bin/python3 -bb # coding: utf-8 # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import fcntl import sys import time import os from argparse import ArgumentParser from clcommon.sysctl import SysCtlConf, SysCtlMigrate, SYSCTL_CL_CONF_FILE, SYSCTL_FILE SELF_LOCK_FILE = '/var/log/cl_sysctl.lock' def create_parser(): config_help = 'Path to sysctl config file. It\'s %(default)s by default' config_path = SYSCTL_CL_CONF_FILE parser = ArgumentParser(description='Utility for working with sysctl configs. INTERNAL USAGE ONLY!') subparsers = parser.add_subparsers(dest='command') subparser_set = subparsers.add_parser(name='set', help='Set or add the the sysctl parameter to the sysctl config') subparser_set.add_argument('-P', '--parameter', action='store', required=True, help='Name of the sysctl parameter') subparser_set.add_argument('-V', '--value', action='store', required=True, help='Value of the sysctl parameter') subparser_set.add_argument('-C', '--config', action='store', help=config_help, default=config_path) subparser_get = subparsers.add_parser(name='get', help='Get the sysctl parameter') subparser_get.add_argument('-P', '--parameter', action='store', required=True, help='Name of the sysctl parameter') subparser_get.add_argument('-C', '--config', action='store', help=config_help, default=config_path) subparser_remove = subparsers.add_parser(name='remove', help='Remove the sysctl parameter from the sysctl config') subparser_remove.add_argument('-P', '--parameter', action='store', required=True, help='Name of the sysctl parameter') subparser_remove.add_argument('-C', '--config', action='store', help=config_help, default=config_path) subparsers_migrate = subparsers.add_parser(name='migrate', help='Migrate sysctl param from {} to {}'.format( SYSCTL_FILE, SYSCTL_CL_CONF_FILE, )) subparsers_migrate.add_argument('-P', '--parameter', action='store', required=True, help='Name of the sysctl parameter') subparsers_migrate.add_argument('-dV', '--default-value', action='store', help='Default value of sysctl parameter if it is absent in source file') return parser def _parse_args(argv): parser = create_parser() params = parser.parse_args(argv) return params def main_(args): params = _parse_args(args) command = params.command if command == 'set': config_file = params.config sysctl = SysCtlConf(config_file=config_file) sysctl.set(name=params.parameter, value=params.value) elif command == 'get': config_file = params.config sysctl = SysCtlConf(config_file=config_file) value = sysctl.get(name=params.parameter) print(value) elif command == 'remove': config_file = params.config sysctl = SysCtlConf(config_file=config_file) sysctl.remove(name=params.parameter) elif command == 'migrate': sysctl_migrate = SysCtlMigrate() sysctl_migrate.migrate( param_name=params.parameter, default_value=params.default_value, ) def main(): with open(SELF_LOCK_FILE, 'w') as lock_file: lock_file_is_locked = True for _ in range(20): try: fcntl.flock(lock_file, fcntl.LOCK_EX | fcntl.LOCK_NB) lock_file_is_locked = False break except IOError: print('Another app is currently holding the cl_sysctl lock; waiting for it to exit.') time.sleep(5) if lock_file_is_locked: print('Another app is still holding the cl_sysctl lock after 20 attempts. Please, try again later.') exit(1) else: main_(sys.argv[1:]) try: os.remove(SELF_LOCK_FILE) except (IOError, OSError): pass if __name__ == '__main__': main()
SIMPAN PERUBAHAN