Linux
如何在 Linux 上訪問已刪除的打開文件(正在執行的 crontab 任務的輸出)?
我有一個每小時一小時的 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
如何訪問仍然打開的已刪除文件?
可以通過文件系統訪問該文件:您已經從輸出中
/proc
知道了PID和FD 。lsof
cat /proc/21742/fd/5