Linux

如何在 Linux 上訪問已刪除的打開文件(正在執行的 crontab 任務的輸出)?

  • May 6, 2020

我有一個每小時一小時的 crontab 作業,每 10 分鐘執行一次mtr( traceroute) 輸出(這將持續一個多小時,然後再通過電子郵件發回給我),我想看看目前的進度。

在Linux上,我使用過lsof -n | fgrep cronlsof類似於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

如何訪問仍然打開的已刪除文件?

可以通過文件系統訪問該文件:您已經從輸出中/proc知道了PIDFD 。lsof

cat /proc/21742/fd/5

引用自:https://unix.stackexchange.com/questions/61820