tftpd-hpa --verbosity 选项如何工作?

tftpd-hpa --verbosity 选项如何工作?

我正在尝试使用 tftp-hpa 设置 TFTP 服务器,并根据联机帮助页我可以使用该--verbosity选项来获得更多输出。

不幸的是,我找不到任何解释我应该传递给这个选项的内容。我该如何使用它?

  • --verbosity loud
  • --verbosity 5
  • --verbosity 255
  • --verbosity DEBUG

这有记录在任何地方吗?到目前为止,我尝试过的任何操作都不会在标准输出上产生任何消息。

答案1

除此之外,我还发现 tftpd-hpa 只记录到 syslog,而不是 stdout/stderr,即使在前台模式下运行也是如此。这就是为什么无论我将详细标志设置为什么,我都没有看到任何输出。

由于我在 Docker 中运行它并希望日志转到 stdout/stderr 以便我可以使用命令查看它们docker logs,因此我还必须在 Docker 容器中运行 syslog 客户端来接收 tftpd-hpa 发送的消息。

网上找了个例子我借来的,它使用 syslog-ng 并将其配置为将所有内容写入标准输出。

运行后,出现以下日志:

$ docker logs abc123
Jul  3 09:37:57 vorticon syslog-ng[7]: syslog-ng starting up; version='3.30.1'
Jul  3 09:39:00 host in.tftpd[11]: remap: input: test2a.txt
Jul  3 09:39:00 host in.tftpd[11]: remap: rule 0: rewrite: 192.168.0.1/test2a.txt
Jul  3 09:39:00 host in.tftpd[11]: remap: done
Jul  3 09:39:00 host in.tftpd[11]: RRQ from 192.168.0.1 filename test2a.txt remapped to 192.168.0.1/test2a.txt
Jul  3 09:39:00 host in.tftpd[11]: sending NAK (1, File not found) to 192.168.0.1

答案2

--verbosity值采用整数值。与往常一样,最好的事实来源是代码本身,可以在以下位置找到:https://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git/tree/

tftpd.c这是解析参数的代码的相关部分--verbosity。它确认它采用整数值。还显示了-v和之间的关系--verbosity,如手册页中所述。

case 'v':
    verbosity++;
    break;
case OPT_VERBOSITY:
    verbosity = atoi(optarg);
    break;

没有指定最大详细级别是多少(因为这可能会随着源代码的不同版本而改变)。但搜索最新源码发现该verbosity值在0-4之间有效。任何高于 4 的值都没有额外效果。

相关内容