---
title: 扫描规则文件使用示例
description: "系统迁移在进行台账信息和成分信息收集时，支持通过配置扫描规则，识别新增软件。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/systemmigration/KunpengDevKitCli_0103.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/systemmigration/KunpengDevKitCli_0103.html
indexId: f3861c371101121f58825c9f29477717d2e3055baf578a8b07137c16c12d77c681
---
# 扫描规则文件使用示例

系统迁移在进行台账信息和成分信息收集时，支持通过配置扫描规则，识别新增软件。

#### 扫描规则文件使用示例

默认扫描规则配置文件位于二进制目录下“sys-mig/resources/sysmig_disk_scan_classifier.json”。

1. 以默认扫描规则进行系统迁移应用信息收集，以台账信息收集为例。
  1 devkit sys-mig -c stmt -d /usr/local -o /home/report

  返回信息如下：

```
[2025-02-12 09:17:01,498] [INFO] Start to execute the command: ./devkit sys-mig -c stmt -cf /usr/local/devkit/sys-mig/resources/sysmig_default.conf -d /usr/local -o /home/report -t /usr/local/devkit/sys-mig/template/stmt_template_default.csv -l 1
[2025-02-12 09:17:01,498] [INFO] Creating file indexing...
[2025-02-12 09:17:15,893] [INFO] Parsing...
[2025-02-12 09:17:15,893] [INFO] Start scanning stmt information.
[2025-02-12 09:17:15,894] [INFO] Middleware binary start analysis.
[2025-02-12 09:17:15,894] [INFO] Start scanning middleware binary file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java.
[2025-02-12 09:17:15,896] [WARNING] The file /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java cannot be executed or no permission to execute the filepath file.
[2025-02-12 09:17:15,896] [INFO] Start scanning middleware binary file: /usr/local/nginx/sbin/nginx.
[2025-02-12 09:17:16,009] [INFO] Start scanning middleware binary file: /usr/local/src/redis-stable/src/redis-server.
[2025-02-12 09:17:16,921] [INFO] Start scanning middleware binary file: /usr/local/bin/redis-server.
[2025-02-12 09:17:19,230] [INFO] Middleware binary end of analysis.
[2025-02-12 09:17:19,230] [INFO] Middleware package start analysis.
[2025-02-12 09:17:19,230] [INFO] Start scanning middleware package file: /usr/local/tomcat/apache-tomcat-8.5.100/lib/catalina.jar.
[2025-02-12 09:17:19,296] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/tools/lib/kafka-clients-2.8.2.jar.
[2025-02-12 09:17:19,342] [INFO] Start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-5.1.8/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar.
[2025-02-12 09:17:19,353] [INFO] Start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-output-kafka-5.1.7/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar.
[2025-02-12 09:17:19,363] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/hdfs/lib/zookeeper-3.8.3.jar.
[2025-02-12 09:17:19,379] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/common/lib/zookeeper-3.8.3.jar.
[2025-02-12 09:17:19,395] [INFO] Start scanning middleware package file: /usr/local/hbase/lib/zookeeper-3.4.10.jar.
[2025-02-12 09:17:19,580] [INFO] Start scanning middleware package file: /usr/local/zookeeper-3.4.6/zookeeper-3.4.6.jar.
[2025-02-12 09:17:20,721] [INFO] Start scanning middleware package file: /usr/local/zookeeper-3.4.6/dist-maven/zookeeper-3.4.6.jar.
[2025-02-12 09:17:20,765] [INFO] Middleware package end of analysis.
Csv report is created successfully.
The file is located in /home/report/sys-mig_xx.xx.xx.xx_20250212091701/stmt.csv
[2025-02-12 09:17:20,783] [INFO]
Scanning information successfully completed.
```


2. 查看扫描报告，软件Logstash未被识别。
3. 进入二进制目录，配置扫描规则文件。
```
vi sys-mig/resources/sysmig_disk_scan_classifier.json
```

新增如下加粗内容：

```
{
"linux_binary_classifiers": [
{
"cli_category": "MIDDLEWARE",
"category": 3,
"file_glob": "**/logstash-core/lib/logstash/version.rb",
"version_pattern": "(?m)(?P<version>[0-9]+\\.[0-9]+\\.[0-9]+)",
"package": "logstash",
"supplier": "Elastic",
"type": "BINARY",
"metadata_type": "MIDDLEWARE_WEB_OTHER",
"company_type": "开源",
"relative_directory_hierarchy": "../../../../"
},
{
"cli_category": "RUNTIME_JAVA",
"category": 3,
"file_glob": "**/java",
"version_pattern": "(?m)(\\x00java\\x00|\\x00|\\x00-Djava.class.path=%s)(?P<release>[0-9]+[.0-9]*(\\x00)+)?(?P<version>\\d+(\\.\\d)+[^\\x00]+)(\\x00openjdk)?(\\x00java)?\\x00",
"version_file": "../release",
"package": "JDK",
"supplier": "JDK",
"type": "BINARY",
"metadata_type": "JAVA_RUNTIME_BINARY",
"company_type": "开源",
"relative_directory_hierarchy": "../"
},
],
"middleware_jar_classifiers": [
{
"cli_category": "MIDDLEWARE",
"category": 3,
"file_glob": "**/weblogic.jar",
"version_pattern": "(?m)Implementation-Version: (?P<version>[0-9]+[.0-9]*)",
"version_file": "MANIFEST.MF",
"package": "WebLogic",
"supplier": "Oracle Corporation",
"type": "BINARY",
"metadata_type": "MIDDLEWARE_WEB_WEBLOGIC",
"company_type": "商业",
"relative_directory_hierarchy": "../../../../../"
},
],
"win_binary_classifiers": [
{
"cli_category": "RUNTIME_JAVA",
"category": 3,
"classify": "java_jdk_binary",
"file_glob": "**/java.exe",
"version_pattern": "(?m)\\x00openjdk\\x00java\\x00(?P<release>[0-9]+[.0-9]*)\\x00(?P<version>[0-9]+[^\\x00]+)\\x00",
"package": "JDK",
"supplier": "JDK",
"type": "BINARY",
"metadata_type": "JAVA_RUNTIME_BINARY_OPENJDK",
"company_type": "开源",
"relative_directory_hierarchy": "../"
},
]
}
```

包含以下类型，参数说明表1所示：

  - linux_binary_classifiers：Linux系统下，特征文件为二进制文件、文本文件等，非压缩文件的软件。
  - middleware_jar_classifiers：Linux系统下，特征文件为JAR包形式，需要解压的软件。
  - win_binary_classifiers：Windows系统下，特征文件为二进制文件、文本文件等，非压缩文件的软件。

**表1 配置规则说明**

| 参数 | 参数选项 | 是否必填 | 类型 | 说明 |
| --- | --- | --- | --- | --- |
| cli\_category | APP\_JAVA/RUNTIME\_JAVA/MIDDLEWARE/DATABASE/HARDWARE/OS | 是 | string | 软件类别，在命令行报告中展示。 APP\_JAVA：Java应用。 RUNTIME\_JAVA：JDK。 MIDDLEWARE：中间件。 DATABASE：数据库。 HARDWARE：硬件。 OS：操作系统。 |
| category | 1/2/3/4 | 是 | int | 软件类别，用于Web端源成分采集功能。 1：操作系统。 2：数据库。 3：中间件。 4：Java应用。 |
| use\_file\_regex | true/false | 否 | boolean | 特征文件是否使用正则匹配，默认为false。 若为false：则file\_glob需要以\*\*/开头，然后填写具体文件路径。 若为true：则file\_glob需要配置对应的正则表达式。 |
| file\_glob | \- | 是 | string | 特征文件，用于标识软件和匹配软件版本。 例如：\*\*/nginx 说明： 版本匹配优先级从高到低为：file\_glob、version\_file。 |
| version\_pattern | \- | 是 | string | 版本。正则表达式，对特征文件进行正则匹配，若无可填空字符串。 |
| version\_file | \- | 否 | string | 版本文件名，用于匹配版本，middleware\_jar\_classifiers归类下必填。文件中包含该款软件的版本信息。 |
| package | \- | 是 | string | 软件官方名称，例如：Nginx。 |
| supplier | \- | 是 | string | 软件厂商名，例如：Nginx, Inc。 |
| type | BINARY | 是 | string | 软件类型，需要配置为BINARY。 |
| metadata\_type | DATABASE\_OTHER/MIDDLEWARE\_WEB\_OTHER | 是 | string | 软件归类。 数据库填写为DATABASE\_OTHER。 中间件填写为MIDDLEWARE\_WEB\_OTHER。 |
| company\_type | 自有/开源/商业/\-\- | 是 | string | 是否开源。 |
| relative\_directory\_hierarchy | \- | 是 | string | 安装目录。通过file\_glob找到的特征文件的相对路径。 例如：安装目录为特征文件上层目录，则填写../。 |


4. 重新执行台账信息收集。
  1 devkit sys-mig -c stmt -d /usr/local -o /home/report

  返回信息如下：

```
[2025-02-12 09:20:56,705] [INFO] Start to execute the command: ./devkit sys-mig -c stmt -cf /usr/local/devkit/sys-mig/resources/sysmig_default.conf -d /usr/local -o /home/report -t /usr/local/devkit/sys-mig/template/stmt_template_default.csv -l 1
[2025-02-12 09:20:56,705] [INFO] Creating file indexing...
[2025-02-12 09:21:10,633] [INFO] Parsing...
[2025-02-12 09:21:10,633] [INFO] Start scanning stmt information.
[2025-02-12 09:21:10,633] [INFO] Middleware binary start analysis.
[2025-02-12 09:21:10,634] [INFO] Start scanning middleware binary file: /usr/local/logstash-5.5.0/logstash-core/lib/logstash/version.rb.
[2025-02-12 09:21:11,748] [INFO] Start scanning middleware binary file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java.
[2025-02-12 09:21:11,748] [WARNING] The file /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/java cannot be executed or no permission to execute the filepath file.
[2025-02-12 09:21:11,748] [INFO] Start scanning middleware binary file: /usr/local/nginx/sbin/nginx.
[2025-02-12 09:21:11,795] [INFO] Start scanning middleware binary file: /usr/local/src/redis-stable/src/redis-server.
[2025-02-12 09:21:12,558] [INFO] Start scanning middleware binary file: /usr/local/bin/redis-server.
[2025-02-12 09:21:14,373] [INFO] Middleware binary end of analysis.
[2025-02-12 09:21:14,374] [INFO] Middleware package start analysis.
[2025-02-12 09:21:14,374] [INFO] Start scanning middleware package file: /usr/local/tomcat/apache-tomcat-8.5.100/lib/catalina.jar.
[2025-02-12 09:21:14,405] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/tools/lib/kafka-clients-2.8.2.jar.
[2025-02-12 09:21:14,438] [INFO] Start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-input-kafka-5.1.8/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar.
[2025-02-12 09:21:14,448] [INFO] Start scanning middleware package file: /usr/local/logstash-5.5.0/vendor/bundle/jruby/1.9/gems/logstash-output-kafka-5.1.7/vendor/jar-dependencies/runtime-jars/kafka-clients-0.10.0.1.jar.
[2025-02-12 09:21:14,456] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/hdfs/lib/zookeeper-3.8.3.jar.
[2025-02-12 09:21:14,471] [INFO] Start scanning middleware package file: /usr/local/hadoop-3.4.0/share/hadoop/common/lib/zookeeper-3.8.3.jar.
[2025-02-12 09:21:14,485] [INFO] Start scanning middleware package file: /usr/local/hbase/lib/zookeeper-3.4.10.jar.
[2025-02-12 09:21:14,663] [INFO] Start scanning middleware package file: /usr/local/zookeeper-3.4.6/zookeeper-3.4.6.jar.
[2025-02-12 09:21:15,765] [INFO] Start scanning middleware package file: /usr/local/zookeeper-3.4.6/dist-maven/zookeeper-3.4.6.jar.
[2025-02-12 09:21:15,804] [INFO] Middleware package end of analysis.
Csv report is created successfully.
The file is located in /home/report/sys-mig_xx.xx.xx.xx_20250212092056/stmt.csv
[2025-02-12 09:21:15,820] [INFO]
Scanning information successfully completed.
```


5. 查看扫描报告，可看到扫描报告中存在Logstash。
