관리-도구
편집 파일: cloudlinux-edition-watcher
#!/opt/cloudlinux/venv/bin/python3 -bb # coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2020 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENCE.TXT # """ Detects edition change and performs predefined actions. """ import sys import argparse import logging from clcommon.lib.cledition import CLEditions from clsentry import init_sentry_client from clconfigure.watcher import ( PKG_VERSION_TINY, SENTRY_DSN, check, save_edition ) from clconfigure import setup_logger LOGS_PATH = '/var/log/cloudlinux/cloudlinux-edition-watcher.log' if __name__ == "__main__": init_sentry_client('cloudlinux-edition-watcher', PKG_VERSION_TINY, SENTRY_DSN, custom_length=7000) # Make sure we log to stderr - this script can be run manually, not just from cron watcher_logger = logging.getLogger(None) watcher_logger.addHandler(logging.StreamHandler(sys.stderr)) # setup_logger sets INFO level and formatter for root logger stderr stream handlers, # so we don't need to assign those here setup_logger(None, LOGS_PATH) parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest='action') subparsers.add_parser('save') check_subparser = subparsers.add_parser('check') check_subparser.add_argument('--pre', action='store_true', default=False) check_subparser.add_argument('--edition', required=False, default=None) args = parser.parse_args() logging.debug('Executing with arguments "%s"', str(args)) if args.action == 'save': save_edition() elif args.action == 'check': new_edition = args.edition or CLEditions.get_cl_edition(skip_marker_check=True) if new_edition is None: logging.error("error: could not determine the current CloudLinux edition") logging.error( "Please, check the machine's registration state using rhn_check and force " "a re-registration if necessary. Contact CloudLinux support if the problem persists." ) exit(1) check(new_edition, is_pre_check=args.pre) else: parser.print_help() exit(1)