我有一个每小时运行一小时的 crontab 作业,每 10 分钟运行一些mtr
( traceroute
) 输出(在通过电子邮件发回给我之前,这将持续一个多小时),我想查看到目前为止的当前进度。
在Linux上,我使用过lsof -n | fgrep cron
(lsof
类似于BSD的fstat
),似乎我可能找到了该文件,但它被注释为已删除(临时文件的标准做法是打开后立即删除):
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
...
cron 21742 root 5u REG 202,0 7255 66310 /tmp/tmpfSuELzy (deleted)
并且不能再通过其先前的名称进行访问:
# stat /tmp/tmpfSuELzy
stat: cannot stat `/tmp/tmpfSuELzy': No such file or directory
如何访问已删除但仍打开的文件?
答案1
该文件可以通过/proc
文件系统访问:您已经知道PID和FD从lsof
输出。
cat /proc/21742/fd/5