Fortify中文网站 > 热门推荐 > Fortify ScanCentral怎么提交扫描 Fortify ScanCentral任务排队太久怎么办
教程中心分类
Fortify ScanCentral怎么提交扫描 Fortify ScanCentral任务排队太久怎么办
发布时间:2026/06/29 18:49:45

  Fortify ScanCentral通常指Fortify ScanCentral SAST,用来把本地构建机上的扫描任务提交到Controller,再由Sensor去执行分析。它和单机版SCA不太一样,问题不只出在命令本身,还可能出在Controller、Sensor、任务池、SSC上传权限这些地方。Fortify ScanCentral怎么提交扫描,Fortify ScanCentral任务排队太久怎么办,可以按“先提交成功,再看任务状态,再处理排队原因”这个顺序排查。

 

  一、Fortify ScanCentral怎么提交扫描

 

  提交扫描前,先确认项目是要做“远程翻译+远程扫描”,还是“本地翻译+远程扫描”。前者把源码和依赖打包交给Sensor处理,后者先在本机用SCA完成翻译,再把构建会话提交到ScanCentral执行扫描。

  1、远程翻译并扫描

 

  进入【项目根目录】后,执行ScanCentral的start命令提交任务。

 

  常见命令可以写成:

 

  scancentral -sscurl -ssctoken start

 

  start命令可以用于远程扫描,也可以用于远程翻译加扫描;如果项目里有pom.xml、build.gradle、.sln等文件,ScanCentral会尝试自动识别构建工具,例如Maven、Gradle、MSBuild或dotnet。

 

  如果不想让它自动判断,可以显式指定:

 

  scancentral -sscurl -ssctoken start -bt mvn

 

  遇到非默认构建文件,可以加-bf;构建过程需要额外参数,可以加-bc。比如Maven或Gradle项目,不建议什么都不配就直接提交,脚本最好贴近真实构建命令,否则依赖、生成代码、编译参数都可能不完整。-bt支持dotnet、gradle、msbuild、mvn和none,-bc用于给Maven、Gradle、dotnet、MSBuild传构建参数。

 

  2、提交后上传到SSC

 

  如果扫描结果要直接上传到Fortify Software Security Center,需要加【-upload】并指定应用版本。

 

  常见写法是:

 

  scancentral -sscurl -ssctoken start -upload -application "AppName" -version "1.0"

 

  也可以用版本ID:

 

  scancentral -sscurl -ssctoken start -upload -versionid

 

  上传到SSC时,应用名和版本名是区分大小写的;-upload表示扫描完成后上传结果,-application、-version和-versionid用于指定SSC里的应用版本。

 

  3、本地翻译后远程扫描

 

  如果项目不适合远程翻译,或者Sensor上不方便准备完整构建环境,可以先在本机翻译,再提交远程扫描。

 

  大致流程是:

 

sourceanalyzer -b MyBuildId -clean

sourceanalyzer -b MyBuildId <原来的构建或翻译命令>

scancentral -sscurl -ssctoken start -b MyBuildId -scan

  如果还要上传到SSC,可以写成:

 

scancentral -sscurl -ssctoken start -upload -versionid -b MyBuildId -scan

 

  -b用于指定已经翻译好的build ID,-scan表示后面的参数进入SCA扫描阶段;官方示例里也给出了本地翻译、远程扫描并上传到SSC的写法。

 

  二、Fortify ScanCentral任务排队太久怎么办

 

  任务排队太久,不要只看页面上“Pending”或“Queued”几个字。要先确认任务卡在什么状态,再判断是没有Sensor接任务、Sensor太忙、任务池不匹配,还是前面堆了太多重复扫描。

  1、先查任务状态

 

  拿到提交后返回的job token,执行

 

  命令查看状态。

 

 scancentral -url status -token

 

  状态里,PENDING表示Controller已经接收扫描任务,QUEUED表示任务已经分配给Sensor,RUNNING才是正在运行;所以长时间停在PENDING和长时间停在QUEUED,排查方向并不一样。

 

  如果一直是PENDING,优先看Controller能不能找到可用Sensor,任务池是否匹配,Sensor是否被禁用或正在维护。如果已经是QUEUED,更像是Sensor接到了任务但还没真正跑起来,可能前面有大任务、Sensor资源不足,或者同一个池里的任务过多。

 

  2、检查Sensor和任务池

 

  进入【SSC】里的ScanCentral SAST页面,查看Controller、Sensor、Scan Requests和Sensor Pools。

 

  SSC集成后,可以查看Controller和Sensor信息、查看扫描请求详情、导出结果和日志,也可以创建和管理Sensor Pools,并对扫描请求进行优先级调整或取消。

 

  如果不同项目都挤在默认池里,排队会很明显。可以给大项目、高内存项目、普通项目拆不同Sensor Pool,再提交时指定池:

 

  scancentral -sscurl -ssctoken start -pool

 

  -pool可以指定具体Sensor Pool,支持UUID或池名称。

 

  OpenText

 

  3、清理没必要的重复任务

 

  CI频繁触发时,很容易同一个分支、同一个应用版本反复提交扫描。前面任务还没跑完,后面任务又进来了,队列自然越来越长。

 

  如果确认某个任务已经没意义,可以取消:

 

scancentral -url cancel -token

 

  ScanCentral支持通过命令取消扫描,也可以在SSC里的ScanCentral SAST视图中取消请求。

 

  另外,Controller默认可以用replace_duplicate_scans处理上传到同一应用版本的重复待处理任务,目的就是减少CI里堆积的无效重复扫描;如果某个发布扫描不能被替换,再用--disallow-replacement单独保护。

 

  三、提交脚本怎样写得更稳

 

  ScanCentral排队问题,有一部分是资源不够,有一部分其实是提交脚本太粗。脚本越粗,打包越大、依赖越乱、扫描时间越长,最后就会拖慢整个队列。

  1、控制扫描范围

 

  提交时可以用【-include】和【-exclude】控制文件范围。

 

  比如排除测试代码:

 

  scancentral -sscurl -ssctoken start -exclude "src/test/**/*"

 

  也可以只扫描指定目录:

 

  scancentral -sscurl -ssctoken start -include ./dist/**/*.*

 

  -exclude用于排除文件或目录,-include用于只纳入指定路径;Windows多路径常用分号分隔,Linux多路径常用冒号分隔。

 

  2、保存日志和任务包

 

  提交命令里可以加【-log】、【-slog】、【-j】、【-diag】。

 

  -log用于保存本地日志,-slog配合-block可以保存Sensor日志,-j可以保存提交到ScanCentral的任务包,-diag可以生成包含客户端、Sensor和SAST调试信息的诊断包。

 

  排队太久时,这些文件很有用。比如任务包特别大,就说明打包范围可能失控;Sensor日志长时间没有推进,就要看Sensor机器资源、授权、环境和前置任务。

 

  3、不要让单个任务长期占住Sensor

 

  大项目可以拆模块扫,不要什么都塞到一个任务里。必要时可以给任务设置扫描超时时间:

 

scancentral -sscurl -ssctoken start -sto 180

 

  -sto用于指定Sensor处理某个任务的最大分钟数,而且优先级高于Controller配置文件里的scan_timeout。

 

  这个参数不是越小越好,也不是随便加。它适合处理“单个异常任务长期占用Sensor”的情况。正常的大型项目,还是应该通过拆模块、排除无关目录、补全构建参数来减少扫描时间。

 

  总结

 

  Fortify ScanCentral怎么提交扫描,先分清远程翻译扫描和本地翻译远程扫描,再按项目类型补好-bt、-bf、-bc、-upload、应用版本和token。Fortify ScanCentral任务排队太久怎么办,不要马上重提任务,先用status看清楚是PENDING、QUEUED还是RUNNING,再检查Sensor状态、Sensor Pool、重复任务和扫描范围。真正稳定的ScanCentral流程,不是靠反复点“重新扫描”,而是把提交脚本、任务池和队列管理一起理顺。

135 2431 0251