我最近一直在摆弄 cron,我想创建一个简单的 cronjob,每分钟向网站发送一个简单的 GET 请求。如果不是 cron.d 中出现一些奇怪的文件(看起来像一些 SSL 证书,但采用某种二进制格式(虽然我可以读取标头),但有些是正常的文本文件),一切都会有效。我尝试将文件和输出发送到/dev/null
但无济于事,文件不断出现。我每次使用curl
或时都会得到它们wget
。
有问题的文件具有以下名称:
010.000.000.050.33322-083.030.008.062.00080
010.000.000.050.33334-083.030.008.062.00080
083.030.008.062.00080-010.000.000.050.33324
083.030.008.062.00080-010.000.000.050.33336
010.000.000.050.33322-083.030.008.062.00080c1
010.000.000.050.33334-083.030.008.062.00080c1
083.030.008.062.00080-010.000.000.050.33324c1
083.030.008.062.00080-010.000.000.050.33336c1
083.030.008.062.00080-010.000.000.050.33324c2
083.030.008.062.00080-010.000.000.050.33336c2
...
还有更多这些,每次我调用wget
或时都会创建它们curl
,尽管将它们设置为/dev/null
通过 std::out 和 std::err 上的简单重定向以及 wget 重定向标志 ( -O
) 来将所有内容重定向到 null (我也设定了-q
)。我关闭了 cronjob crontab
,但在调用这两个程序后它们仍然出现。
我的问题:这些文件是什么,我可以以某种方式阻止它们出现吗?
答案1
好的,我知道了。
一个名为tcpflow
(在我的例子中用于监视 HTTP 流量)的程序正在创建这些文件。我一定是tcpflow
在我进去的时候跑了/etc/cron.d
,它开始做它的事情了。这也可以解释“奇怪”的文件名只是一组 IP 地址。
//from tcpflow man page
By default tcpflow stores all captured data in files that have names of the form:
192.168.101.102.02345-010.011.012.013.45103
...here the contents of the above file would be data transmitted from host 192.168.101.102 port 2345, to host 10.11.12.13 port 45103.
这可以解释为什么在 HTTP 和 HTTPS 上调用wget
/curl
会创建这些文件。我应该阅读手册:)
我最终杀死了tcpflow
进程(我同时运行了 3 个进程,这解释了分别用 c1 和 c2 标记的同一文件的 3 个副本)