天天看点

python接口部署堡垒机的登录,用于排查问题一、代码结构https://coding.jd.com/lmmlmm/lowwifitest/tree/master二、部署在容器上三、发布四、调用

堡垒机的登录,用于排查问题

登录已有的稳定的堡垒机

再输入遗下命令:

ssh [email protected]*****

一、代码结构https://coding.jd.com/lmmlmm/lowwifitest/tree/master

python接口部署堡垒机的登录,用于排查问题一、代码结构https://coding.jd.com/lmmlmm/lowwifitest/tree/master二、部署在容器上三、发布四、调用

Dockerfile文件

FROM is.jd.com/jdos_base/jd-centos7.2v190125-python3.7:latest
MAINTAINER cdrd-im-lmmlmm
ADD . /export/servers/
RUN chown -R admin:admin /export && \
#    chmod +x /export/servers/start.sh && \
   pip install --upgrade pip -i https://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple && \
   wget http://storage.jd.local/im-tools/gevent-1.4.0-cp37-cp37m-manylinux1_x86_64.whl && \
   wget http://storage.jd.local/im-tools/greenlet-0.4.15-cp37-cp37m-manylinux1_x86_64.whl && \
   pip install -U --force-reinstall --no-binary :all: greenlet-0.4.15-cp37-cp37m-manylinux1_x86_64.whl gevent-1.4.0-cp37-cp37m-manylinux1_x86_64.whl && \
   pip install -r /export/servers/requirements.txt -i https://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple && \

   mv /export /export_bak && \
   echo '4d65a6e1c91245c0af92d2ce0a5197d5' |passwd root --stdin
ENTRYPOINT /usr/sbin/sshd && cp -a /export_bak/* /export/ && source ~/.bashrc && su -c "nohup python3 /export/servers/run_server.py >/dev/null 2>&1 &" && sleep 9999999d




           

日志文件

import logging
import os
# from configgg.conf import LOG_PATH
# print(LOG_PATH)
# log_path = os.path.dirname(getcwd.get_cwd())
# print(log_path)
class Logger:
    def __init__(self, loggername,log_path="."):
        # 创建一个logger
        self.logger = logging.getLogger(loggername)
        self.logger.setLevel(logging.DEBUG)
        self.log_path=log_path

        # 创建一个handler,用于写入日志文件
        # log_path = os.path.dirname(getcwd.get_cwd())+"/logs/" # 指定文件输出路径,注意logs是个文件夹,一定要加上/,不然会导致输出路径错误,把logs变成文件名的一部分了
        #log_path = "./logs/"  # 指定文件输出路径,注意logs是个文件夹,一定要加上/,不然会导致输出路径错误,把logs变成文件名的一部分了
        logname = os.path.join(self.log_path,'lowwifitest.log')  # 指定输出的日志文件名
        fh = logging.FileHandler(logname, encoding='utf-8')  # 指定utf-8格式编码,避免输出的日志文本乱码
        fh.setLevel(logging.DEBUG)

        # 创建一个handler,用于将日志输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # 定义handler的输出格式
        formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)

        # 给logger添加handler
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

    def get_log(self) -> object:
        """定义一个函数,回调logger实例"""
        return self.logger


if __name__ == '__main__':
  #  t = Logger("hmk").get_log().debug("User %s is loging" % 'jeck')
    log=Logger("udp").get_log()
    log.info("xxx")
    log.debug("XXX")

           

在其他地方需要调用日志的话 需要

BASE_PATH = os.path.dirname(os.path.abspath(__file__))
print(BASE_PATH)
LOG_PATH = os.path.join(BASE_PATH, "log")
print(LOG_PATH)
log=Logger("run_server",LOG_PATH).get_log()
           

eg:

二、部署在容器上

python接口部署堡垒机的登录,用于排查问题一、代码结构https://coding.jd.com/lmmlmm/lowwifitest/tree/master二、部署在容器上三、发布四、调用

三、发布

四、调用

python接口部署堡垒机的登录,用于排查问题一、代码结构https://coding.jd.com/lmmlmm/lowwifitest/tree/master二、部署在容器上三、发布四、调用

继续阅读