diff --git "a/Docs/OSAPIChecker\344\275\277\347\224\250\350\257\264\346\230\216.MD" "b/Docs/OSAPIChecker\344\275\277\347\224\250\350\257\264\346\230\216.MD" index 941f7e96679f4beea6bd18d3e4fbc9a3ebca25ce..bd97824f17089d99d3fc5222a6604028289ece55 100644 --- "a/Docs/OSAPIChecker\344\275\277\347\224\250\350\257\264\346\230\216.MD" +++ "b/Docs/OSAPIChecker\344\275\277\347\224\250\350\257\264\346\230\216.MD" @@ -3,61 +3,81 @@ OSAPIChecker是测试工具的主程序,将各个子模块进行汇总处理。 ## 环境要求 -python 3.7+ -golang 1.13+ + +python 3.7+ +golang 1.13+ python3-reportlab -## 使用方法 + +## 使用方法 + 1. 进入OSChecker主目录 -./OSAPIChecker.py + +  ./OSAPIChecker.py 2. 常用参数 -usage: OSChecker [-h] [-c CHANNEL] [-s STRATEGY] [-l LEVEL] [-t OSTYPE] [-p PKGMNGR] [-o ORGANIZE] [-R] - -optional arguments: - -h, --help show this help message and exit - -c CHANNEL, --channel CHANNEL - Choice OSAPIChecker channels: - libchecker,cmdchecker,fschecker,servicechecker,all - -s STRATEGY, --strategy STRATEGY - Choice OSAPIChecker strategy: basic,expansion,with- - expand - -l LEVEL, --level LEVEL - Choice OSAPIChecker level like: l1,l2,l3,l1l2,l1l2l3 - -t OSTYPE, --ostype OSTYPE - OSType of current OS: desktop, server - -p PKGMNGR, --pkgmngr PKGMNGR - Package Manager of current OS: apt-deb, yum-rpm - -o ORGANIZE, --organize ORGANIZE - Choice Organize - -R, --reports Generate Reports - -参数解析: --h, --help: - 显示帮助信息 --c CHANNEL, --channel CHANNEL: - 选择要测试子模块(libchecker,cmdchecker,fschecker,servicechecker) - 默认是all--全部测试 --s STRATEGY, --strategy STRATEGY: - 选择libchecker测试的库的类型(basic、expansion、with-expand) - 其中,with-expand是(basic+expansion) - 默认是basic --l LEVEL, --level LEVEL: - 选择libchecker测试的级别(l1、l2、l3或者是三者组合) - 默认是l1l2 --t OSTYPE, --ostype OSTYPE: - 选择libchecker测试的OS类型(desktop、server) - 默认是desktop --p PKGMNGR, --pkgmngr PKGMNGR: - 选择libchecker测试的软件包类别(apt-deb、yum-rpm) - 默认是apt-deb --o ORGANIZE, --organize ORGANIZE - 送测单位名称 - 默认是空 --R, --reports - 生成报告(默认不生成报告) - - -3. 注意 -1) 在进行测试时,请根据需要填写必要的参数信息 -2) 当前除libchecker外,其他子模块使用的默认配置,当前主程序不做单独配置处理(部分工具存在参数冲突), 若有需要, 请单独运行子模块程序 + +  usage: OSChecker [-h] [-c CHANNEL] [-s STRATEGY] [-l LEVEL] [-t OSTYPE] [-p PKGMNGR] [-o ORGANIZE] [-R] + +  optional arguments: +   -h, --help +     show this help message and exit + +   -c CHANNEL, --channel CHANNEL +     Choice OSAPIChecker channels: +      libchecker,cmdchecker,fschecker,servicechecker,all + +   -s STRATEGY, --strategy STRATEGY +     Choice OSAPIChecker strategy: basic,expansion,with-expand + +   -l LEVEL, --level LEVEL +     Choice OSAPIChecker level like: l1,l2,l3,l1l2,l1l2l3 + +   -t OSTYPE, --ostype OSTYPE +     OSType of current OS: desktop, server + +   -p PKGMNGR, --pkgmngr PKGMNGR +     Package Manager of current OS: apt-deb, yum-rpm + +   -o ORGANIZE, --organize ORGANIZE +     Choice Organize + +   -R, --reports +     Generate Reports + +  参数解析: + +   -h, --help: +     显示帮助信息 + +   -c CHANNEL, --channel CHANNEL: +     选择要测试子模块(libchecker,cmdchecker,fschecker,servicechecker) +     默认是all--全部测试 + +   -s STRATEGY, --strategy STRATEGY: +     选择libchecker测试的库的类型(basic、expansion、with-expand) +     其中,with-expand是(basic+expansion) +     默认是basic + +   -l LEVEL, --level LEVEL: +     选择libchecker测试的级别(l1、l2、l3或者是三者组合) +     默认是l1l2 + +   -t OSTYPE, --ostype OSTYPE: +     选择libchecker测试的OS类型(desktop、server) +     默认是desktop + +   -p PKGMNGR, --pkgmngr PKGMNGR: +     选择libchecker测试的软件包类别(apt-deb、yum-rpm) +     默认是apt-deb + +   -o ORGANIZE, --organize ORGANIZE +     送测单位名称,默认是空 + +   -R, --reports +     生成报告,默认不生成报告 + +3. 注意 + 1) 在进行测试时,请根据需要填写必要的参数信息 + 2) 当前除libchecker外,其他子模块使用的默认配置,当前主程序不做单独配置处理(部分工具存在参数冲突), 若有需要, 请单独运行子模块程序 + diff --git a/README.md b/README.md index 4b32768816030501acde4e579014902ab2306668..d4f03afdc02a5ad0085ae72fe57cc8873953b39e 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,382 @@ -# OSAPIChecker -#### 介绍 -Operating system API compliance check tool. -#### 软件架构 -软件架构说明 +# OSAPIChecker +## 介绍 -#### 安装教程 +Operating system API compliance check tool. ----操作系统API符合性检查工具。 -1. xxxx -2. xxxx -3. xxxx +## 软件架构 -#### 使用说明 +支持全架构 -0. OSAPIChecker -![alpha](Docs/01-GUIs/alpha-01.png) +## 安装教程 -1. LibChecker +可以直接下载运行。 - 1. 基本用法 +运行程序前,需要确定系统中有以下软件: - ```shell - # 1. /etc/apt/source.list 下打开 deb-src. - # 2. 执行 sudo apt update. - # 3. (OSAPIChecker)/$: ./OSAPIChecker.py --channel=libchecker [--strategy=base --level=l1l2] - # 4. LibChecker 执行的日志位于: (OSAPIChecker)/Logs 下, 输出结果存放于: (OSAPIChecker)/Outputs 下. - ``` - 2. 典型示例 - ```shell - # 1. (OSAPIChecker)/$: ./OSAPIChecker.py --channel=libchecker --strategy=base --level=l1l2 --ostype=desktop --pkgmngr=apt-deb --organize=统信软件 - # 2. (OSAPIChecker)/$: ./OSAPIChecker.py --channel=libchecker --strategy=base --level=l1l2 --ostype=server --pkgmngr=yum-rpm --organize=统信软件 - ``` +python 3.7+ +golang 1.13+ +python3-reportlab(或者使用pip安装reportlab) +当系统使用的是RPM软件包格式时,需要安装rpmdevtools。 -2. FsChecker +## 使用说明 - 1. 桌面版的使用 +程序包含1个主程序:OSAPIChecker,4个子程序:LibChecker、CmdChecker、FsChecker与ServiceChecker,以及一个PDF生成工具。使用方法如下: - ```shell - # 对 U 系列 - # 1. /etc/apt/source.list 下打开 deb-src. - # 2. 执行 sudo apt update. - # 3. (OSAPIChecker)/$: ./OSAPIChecker.py --channel=fschecker - ``` +### 1. 运行前环境准备: -3. CmdChecker +1.1 检测的系统使用的软件包格式为deb,需要开启源码源:/etc/apt/source.list 下打开 deb-src,并更新: - 1. 桌面版的使用 +``` +sudo apt update +``` - ```shell - # 对 U 系列 - # 1. /etc/apt/source.list 下打开 deb-src. - # 2. 执行 sudo apt update. - # 3. (OSAPIChecker)/$: ./OSAPIChecker.py --channel=cmdchecker - ``` +### 2. OSAPIChecker 主程序 - +OSAPIChecker是测试工具的主程序,将各个子模块进行汇总处理,并生成报告。 -#### 参与贡献 +#### 2.1 运行方式 -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +下载代码后,进入OSAPIChecker主目录,直接运行主程序: +``` +cd OSAPIChecker +./OSAPIChecker.py +``` -#### 特技 +运行说明: + +直接运行主程序,会使用默认的方式进行检测,默认参数如下(详细信息参见[1.2 参数解析]): + +``` +--channel=all --strategy=basic --level=l1l2 --ostype=desktop --pkgmngr=apt-deb +``` + +#### 2.2 参数解析 + +``` +./OSChecker.py [-h] [-c CHANNEL] [-s STRATEGY] [-l LEVEL] [-t OSTYPE] [-p PKGMNGR] [-o ORGANIZE] [-R] +``` + +解析: + + -h, --help: +  显示帮助信息 + + -c CHANNEL, --channel CHANNEL: +  选择要测试子模块(libchecker,cmdchecker,fschecker,servicechecker) +  默认是all:全部测试,依次调用4个子程序(Libchecker、CmdChecker、FsChecker与ServiceChecker) + + -s STRATEGY, --strategy STRATEGY: +  选择libchecker测试的库的类型(basic、expansion、with-expand) +  其中,with-expand是(basic+expansion) +  默认是basic + + -l LEVEL, --level LEVEL: +  选择libchecker测试的级别(l1、l2、l3或者是三者组合) +  默认是l1l2 + + -t OSTYPE, --ostype OSTYPE: +  选择libchecker测试的OS类型(desktop、server) +  默认是desktop + + -p PKGMNGR, --pkgmngr PKGMNGR: +  选择libchecker测试的软件包类别(apt-deb、yum-rpm) +  默认是apt-deb + + -o ORGANIZE, --organize ORGANIZE +  送测单位名称,默认是空 + + -R, --reports +  生成报告,默认不生成报告 + + + +### 3. LibChecker子程序 + +LibChecker是测试工具的中检测当前操作系统环境包含的动态库是否符合标准的工具。 + +#### 3.1 运行方式 + +运行子程序有两种方式,可以使用主程序单独调用,也可以单独运行子程序: + +方式一:主程序调用子程序 + +``` +./OSChecker.py --channel=libchecker +``` + +方式二:单独运行子程序 + +``` +python3 LibChecker/lib_checker.py +``` + +运行说明: + +上述两种运行方式都是使用默认的方式进行检测,默认参数如下(详细信息参见[3.2 参数解析]): + +``` +--strategy=basic --level=l1l2 --ostype=desktop --pkgmngr=apt-deb +``` + + + +#### 3.2 参数解析 + +``` +python3 LibChecker/lib_checker.py [-h] [-s STRATEGY] [-l LEVEL] [-t OSTYPE] [-p PKGMNGR] [-o ORGANIZE] [-j JSON] [-T TIMETMP] +``` + + 解析: + + -h, --help: +  显示帮助信息 + + -s STRATEGY, --strategy STRATEGY: +  选择测试的库的类型(basic、expansion、with-expand) +  其中,with-expand是(basic+expansion) +  默认是basic + + -l LEVEL, --level LEVEL: +  选择测试的级别(l1、l2、l3或者是三者组合) +  默认是l1l2 + + -t OSTYPE, --ostype OSTYPE: +  选择测试的OS类型(desktop、server) +  默认是desktop + + -p PKGMNGR, --pkgmngr PKGMNGR: +  选择测试的软件包类别(apt-deb、yum-rpm) +  默认是apt-deb + + -o ORGANIZE, --organize ORGANIZE +  送测单位名称,默认是空 + + -T TIMETMP, --timetmp TIMETMP +  测试时间,默认会自动获取当前时间,也可以自己指定时间信息。 + +注:使用主程序单独调用子程序时,使用的参数与子程序基本一致,除了“-T TIMETMP”, 主程序中自己会获取当前的时间,并传入子程序中,不需要单独输入“-T TIMETMP”参数。 + +#### 3.3 日志 + +LibChecker 执行的日志位于: OSAPIChecker/Logs 下, 输出结果存放于: OSAPIChecker/Outputs 下. + +### 4. CmdChecker + +CmdChecker是一款检查操作系统内置命令是否符合标准的快捷工具 + +#### 4.1 运行方式 + +运行子程序有两种方式,可以使用主程序单独调用,也可以单独运行子程序: + +方式一:主程序调用子程序 + +``` +./OSChecker.py --channel=cmdchecker +``` + +方式二:单独运行子程序 + +``` +python3 CmdChecker/cmd_checker.py +``` + +运行说明: + +上述两种运行方式都是使用默认的json文件进行检测 + +#### 4.2 参数解析 + +``` +usage: cmd_checker.py [-h] [-V] [-L cmd_list.json] [-P config.json] [-T filetime] +``` + + 解析: + + -h, --help: +  显示帮助信息 + + -V, --version: +  显示当前程序版本信息 + + -L cmd_list.json, --list cmd_list.json: +  cmd_list的json文件 +  默认使用程序自带的json文件 + + -P config.json, --path config.json : +  cmd可能存在的路径配置文件 +  默认使用程序自带的json文件 + + -T filetime, --timestamp : +  filetime 文件时间戳 +  默认会自动获取当前时间,也可以自己指定时间信息。 + +注:使用主程序单独调用子程序时,使用的是默认的参数,不对此子程序做参数解析。 + +#### 4.3 日志 + +CmdChecker 输出结果存放于: OSAPIChecker/Outputs 下. + +### 5. FsChecker + +FsChecker是款检查操作系统文件系统是否符合标准的快捷工具 + +#### 5.1 运行方式 + +运行子程序有两种方式,可以使用主程序单独调用,也可以单独运行子程序: + +方式一:主程序调用子程序 + +``` +./OSChecker.py --channel=fschecker +``` + +方式二:单独运行子程序 + +``` +python3 FsChecker/fs_checker.py +``` + +运行说明: + +上述两种运行方式都是使用默认的json文件进行检测 + +#### 5.2 参数解析 + +``` +usage: fs_checker.py [-h] [-V] [-L fs_list.json] [-T filetime] +``` + + 解析: + + -h, --help: +  显示帮助信息 + + -V, --version: +  显示当前程序版本信息 + + -L fs_list.json, --list fs_list.json: +  fs_list的json文件 +  默认使用程序自带的json文件 + + -T filetime, --timestamp : +  filetime 文件时间戳 +  默认会自动获取当前时间,也可以自己指定时间信息。 + +注:使用主程序单独调用子程序时,使用的是默认的参数,不对此子程序做参数解析。 + +#### 5.3 日志 + +CmdChecker 输出结果存放于: OSAPIChecker/Outputs 下. + +### 6. ServiceChecker + +ServiceChecker 是一款检查操作系统管理软件systemd是否符合标准的快捷工具 + +#### 6.1 运行方式 + +运行子程序有两种方式,可以使用主程序单独调用,也可以单独运行子程序(注:子程序需要root权限): + +方式一:主程序调用子程序 + +``` +sudo ./OSChecker.py --channel=servicechecker +``` + +方式二:单独运行子程序 + +``` +sudo python3 ServiceChecker/service_checker.py +``` + +运行说明: + +此项子程序无特殊配置项,故直接运行即可。 + +#### 6.2 日志 + +ServiceChecker 执行的日志位于: OSAPIChecker/Logs 下,输出结果存放于: OSAPIChecker/Outputs 下. + +### 7. PDF生成工具 + +GenReport里存放的是json结果转pdf工具 + +#### 7.1 运行方式 + +``` +cd GenReport +./pdf.py +``` + +运行说明: + +基本用法,直接执行使用默认路径生成pdf。 + +#### 7.2 参数解析 + +``` +usage: pdf.py [-h] [-r RESULT] [-e ENV] [-l LIB] [-f FS] [-c CMD] [-s SERVER] +``` + +参数解析: +  + -h, --help +  显示帮助信息 + + -r RESULT, --result RESULT +  指定pdf生成结果路径 + + -e ENV, --env ENV +  指定环境检测结果路径 + + -l LIB, --lib LIB +  指定运行库检查结果文件路径 +  + -f FS, --fs FS +  指定文件系统层次结构检查结果文件路径 + + -c CMD, --cmd CMD +  指定常用命令检查结果文件路径 + + -s SERVER, --server SERVER +  指定服务检查结果文件路径 + +####  7.3 日志 + +ServiceChecker 执行的日志位于: OSAPIChecker/Logs 下,输出结果存放于: OSAPIChecker/Outputs 下. + + + +## 常用举例说明 + +1、当我们想要检测桌面、DEB格式软件包、basic类型、L1L2级别的libchecker,以及其他三项子项目并需要生成检测报告时,可以运行以下命令: + +``` +./OSAPIChecker.py -R +或者 +./OSAPIChecker.py --channel=all --strategy=basic --level=l1l2 --ostype=desktop --pkgmngr=apt-deb -R +``` + +以上两条命令输出结果一致。 + +2、当我们需要检测服务器、RPM格式软件包、basic类型、L1L2级别的libchecker,以及其他三项子项目并需要生成检测报告时,可以运行以下命令: + +``` +./OSAPIChecker.py --channel=all --strategy=basic --level=l1l2 --ostype=server --pkgmngr=yum-rpm -R +``` + +3、当我们需要检测服务器、RPM格式软件包、basic+expansion类型、L1L2级别的libchecker,可以运行以下命令: + +``` +./OSAPIChecker.py --channel=libchecker --strategy=with-expand --level=l1l2 --ostype=server --pkgmngr=yum-rpm +``` + +4、当我们需要检测服务器、RPM格式软件包、expansion类型、L1L2级别的libchecker,并单独生成报告时,可以运行以下命令: + +``` +./OSAPIChecker.py --channel=libchecker --strategy=expansion --level=l1l2 --ostype=server --pkgmngr=yum-rpm -R +``` -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)