我正在使用netcat监听TCP端口,我每5分钟收到一行逗号分隔的数据并将其写入文本文件。这是我正在运行的命令:
nc -dl 12.34.56.78 1234 > path/to/my/file & echo $!
当通过命令行运行此命令时,数据将保存到文件中,一切正常。
但是,我创建了一个小脚本,在进程因任何原因停止的情况下恢复netcat监听器(使用与上面相同的命令)。该脚本通过cron作业执行。发生这种情况时,数据仍然会写入文件,但它总是由一串“^ @”字符加上前缀,每个字符的长度都会增加(每5分钟一次)。
非常感谢任何有关这种情况发生以及如何阻止它的见解!
太
答案 0 :(得分:1)
在cron下运行时,环境可能不同。
尝试验证确切的路径
/usr/bin/nc -dl 12.34.56.78 1234 > /absolute/path/to/my/file & echo $!
另请注意,有两个“竞争”流行版本的netcat:
命令行选项略有不同
另外,考虑让事情成为循环:
#!/bin/sh
exec < /dev/null > /dev/null
while true
do
nc -dl 12.34.56.78 1234
done