【发布时间】:2021-05-20 11:19:58
【问题描述】:
我有一个 24 X 7 运行的 Perl 守护进程,它正在运行类似这样的东西
my_program.pl > /logs/user/data.out
my_program.pl只有在应用程序出错时才会写入data.out文件,否则不会写入。
现在我是一个应用程序,它进行清理并检查文件是否在 /logs/user/ 下 2 天前它会删除文件并且在删除时没有任何错误。
但是这样做的结果是文件被删除并处于打开状态,这导致服务器上的磁盘空间问题。
现在我要做的是检查我的清理程序,如果文件已打开,请不要删除它,但我无法将其识别为清理应用程序,我只有文件名和路径。
我尝试了以下链接中给出的建议,但没有任何帮助。
How do you check if a file is open using Perl? How can I check if a filehandle is open in Perl?
您能否建议我们如何在 Perl 中处理这种情况
【问题讨论】:
-
您的意思是要在输出文件上运行
lsof? -
我也厌倦了使用它,但我没有得到结果
标签: perl