searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

OperationTools指令扩展工具

2023-11-28 03:05:29
10
0

一.项目介绍

本项目旨在提出一种通用框架,兼容Python,Shell两种编程语言,实现根据目录下遵循接口规范的的.py,.sh文件,自动生成调用指令和说明,实现较好的扩展性和兼容性,服务于系统优化和加固等应用方向。

二.软件架构

SOP tools主要分为四部分:

主程序用于调用各种语言优化加固代码,和生成代码运行指令。

pysrc主要包括python相关优化脚本。

shsrc主要包括shell相关优化脚本。

util主要包括框架运行所需要保障的功能函数。

 

三.Python类工具脚本

python实现的脚本,一律放到pysrc目录下面,该目录会自动动态编译,调用main.py时会自动生成对应的设置项。
实现python类脚本需要满足以下注意事项:
1.命名要求。py文件名即为main接口调用参数名,同时py文件类务必定义一个和文件名相同的类作为执行单元。所以,命名尽可能简洁且能够表述清楚对应模块功能。
2.执行类的要求。类名称同py文件名,__init__函数类务必包含self.description,用于main接口的描述字,run函数用于实现具体的功能运行。
3.模块存在3类,通常为do类。
4.参数传递,需在run内部定义好参数顺序,并添加参数*args,避免因过多输入导致问题,输入参数会自动实现类型转换,注意请勿使用数字作为纯字符串。

import os
from utils import basedemo
 
# 操作放在类中,demo
class demo(basedemo):
    # 初始化类,传入需要操作参数
    def __init__(self,*args):
        self.description ='测试脚本。'
        self.need_para=True
        self.input=args
 
    # 功能执行模块
    def run(self,cpu,mem,*args):
        for arg in args:
            print(12133,arg)
        print('执行测试成功。')

 

四.shell类工具脚本

shell实现的脚本直接放入shsrc目录下面,文件名即为调用名,会自动在main.py的help中生成项。需要注意以下两点:
1.shell脚本开头必须是以下内容(嵌套的if输出),echo输出的为该脚本的功能描述(除echo后字段,其他字段均不要修改),后续传参请勿使用description字段为参数,脚本功能描述请勿使用-*号作为描述内容。
2.脚本功能正常在涉及代码段后书写即可,传参按照正常shell脚本传参方式传递即可。
3.需要传参数的脚本,请在第二个传参脚本写-*PTrue,否其余情况则任务无需参数调用(必须以-*号开始),这会影响main.py调度脚本的创建。

无需传参数:

#!/bin/bash
if [ $# -eq 1 ]
then
    if [ $1 = description ]
    then
    echo "测试shell脚本"  #这里写脚本功能描述
    echo "-*PFalse"  #是否需要传入参数
    exit
    fi
fi

需传参数:

#!/bin/bash
if [ $# -eq 1 ]
then
    if [ $1 = description ]
    then
    echo "测试shell脚本"  #这里写脚本功能描述
    echo "-*PTrue"  #是否需要传入参数
    exit
    fi
fi
 
echo $1 $2
echo $3

五.基本功能

1.根据python脚本文件和shell脚本文件,生成调用指令。

python main.py --h

 

2.使用调用指令,调用特定的脚本和功能。

python main.py --demo 50,1
python main.py --demo 50,1 --demo1

或者

python main.py --test

亦或者

python main.py --limit_rsyslog_auditd

限制内存使用。

python main.py --limit_rsyslog_auditd --unlimit_rsyslog_audit

六.实现介绍。

核心实现main.py,函数入口也为main.py。

程序入口如下:

if __name__=='__main__':
    parser = argparse.ArgumentParser(description='系统运维加固框架')
    parser.add_argument('--mode', dest='mode', type=str,
                        help='设定工具运行模式:执行守护进程(demon),执行(do)和交互(interact)',
                        default='do')
    items = mapping_items()
    add_args(parser,items)
    config = parser.parse_args()
    run(items,config)

 parser解析器初始化——>mapping_item获取python,shell脚本(__pycache__文件删除)——>为脚本生成parser的config——>读取用户输入指令执行脚本

七.研发规划

python构建兼容python,shell的框架脚本。

设计python,shell两类代码接入规范。

支持三种模式运行:守护进程模式、命令执行模式和交互模式。

自动根据.py,.sh文件变化更新程序指令。

接入操作系统相关优化脚本和代码。

0条评论
作者已关闭评论
wukaishuns
7文章数
0粉丝数
wukaishuns
7 文章 | 0 粉丝
原创

OperationTools指令扩展工具

2023-11-28 03:05:29
10
0

一.项目介绍

本项目旨在提出一种通用框架,兼容Python,Shell两种编程语言,实现根据目录下遵循接口规范的的.py,.sh文件,自动生成调用指令和说明,实现较好的扩展性和兼容性,服务于系统优化和加固等应用方向。

二.软件架构

SOP tools主要分为四部分:

主程序用于调用各种语言优化加固代码,和生成代码运行指令。

pysrc主要包括python相关优化脚本。

shsrc主要包括shell相关优化脚本。

util主要包括框架运行所需要保障的功能函数。

 

三.Python类工具脚本

python实现的脚本,一律放到pysrc目录下面,该目录会自动动态编译,调用main.py时会自动生成对应的设置项。
实现python类脚本需要满足以下注意事项:
1.命名要求。py文件名即为main接口调用参数名,同时py文件类务必定义一个和文件名相同的类作为执行单元。所以,命名尽可能简洁且能够表述清楚对应模块功能。
2.执行类的要求。类名称同py文件名,__init__函数类务必包含self.description,用于main接口的描述字,run函数用于实现具体的功能运行。
3.模块存在3类,通常为do类。
4.参数传递,需在run内部定义好参数顺序,并添加参数*args,避免因过多输入导致问题,输入参数会自动实现类型转换,注意请勿使用数字作为纯字符串。

import os
from utils import basedemo
 
# 操作放在类中,demo
class demo(basedemo):
    # 初始化类,传入需要操作参数
    def __init__(self,*args):
        self.description ='测试脚本。'
        self.need_para=True
        self.input=args
 
    # 功能执行模块
    def run(self,cpu,mem,*args):
        for arg in args:
            print(12133,arg)
        print('执行测试成功。')

 

四.shell类工具脚本

shell实现的脚本直接放入shsrc目录下面,文件名即为调用名,会自动在main.py的help中生成项。需要注意以下两点:
1.shell脚本开头必须是以下内容(嵌套的if输出),echo输出的为该脚本的功能描述(除echo后字段,其他字段均不要修改),后续传参请勿使用description字段为参数,脚本功能描述请勿使用-*号作为描述内容。
2.脚本功能正常在涉及代码段后书写即可,传参按照正常shell脚本传参方式传递即可。
3.需要传参数的脚本,请在第二个传参脚本写-*PTrue,否其余情况则任务无需参数调用(必须以-*号开始),这会影响main.py调度脚本的创建。

无需传参数:

#!/bin/bash
if [ $# -eq 1 ]
then
    if [ $1 = description ]
    then
    echo "测试shell脚本"  #这里写脚本功能描述
    echo "-*PFalse"  #是否需要传入参数
    exit
    fi
fi

需传参数:

#!/bin/bash
if [ $# -eq 1 ]
then
    if [ $1 = description ]
    then
    echo "测试shell脚本"  #这里写脚本功能描述
    echo "-*PTrue"  #是否需要传入参数
    exit
    fi
fi
 
echo $1 $2
echo $3

五.基本功能

1.根据python脚本文件和shell脚本文件,生成调用指令。

python main.py --h

 

2.使用调用指令,调用特定的脚本和功能。

python main.py --demo 50,1
python main.py --demo 50,1 --demo1

或者

python main.py --test

亦或者

python main.py --limit_rsyslog_auditd

限制内存使用。

python main.py --limit_rsyslog_auditd --unlimit_rsyslog_audit

六.实现介绍。

核心实现main.py,函数入口也为main.py。

程序入口如下:

if __name__=='__main__':
    parser = argparse.ArgumentParser(description='系统运维加固框架')
    parser.add_argument('--mode', dest='mode', type=str,
                        help='设定工具运行模式:执行守护进程(demon),执行(do)和交互(interact)',
                        default='do')
    items = mapping_items()
    add_args(parser,items)
    config = parser.parse_args()
    run(items,config)

 parser解析器初始化——>mapping_item获取python,shell脚本(__pycache__文件删除)——>为脚本生成parser的config——>读取用户输入指令执行脚本

七.研发规划

python构建兼容python,shell的框架脚本。

设计python,shell两类代码接入规范。

支持三种模式运行:守护进程模式、命令执行模式和交互模式。

自动根据.py,.sh文件变化更新程序指令。

接入操作系统相关优化脚本和代码。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0