![tftpd-hpa --verbosity 选项如何工作?](https://linux22.com/image/165854/tftpd-hpa%20--verbosity%20%E9%80%89%E9%A1%B9%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我正在尝试使用 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 的值都没有额外效果。