2010-12-09 73 views
0

我需要在linux中查找當前時刻由某個腳本編寫的文件。該腳本正在寫入一些日誌,txt和其他一些文件,並且我想要查找哪些文件完全相關。可能嗎?如何查找現在在linux上編寫的文件?

我試圖找到這樣做,首先通過創建特定的時間戳文件temp.cnewer:

touch temp.cnewer -t 201012091145 

,然後通過查找修改的所有文件被創建後:

find/-type f -newer temp.cnewer 

但它顯示了太多的結果。當我爲他們幾個檢查統計它表明,修改時間是在未來的時間(不知道它是如何發生的,系統時間是正確的):...

Access: 2010-12-09 18:09:14.214730466 +0000 
Modify: 2010-12-09 18:09:14.214730466 +0000 
Change: 2010-12-09 18:09:14.214730466 +0000 

有沒有其他的方式來選擇那些文件?

+0

到目前爲止,我使用以下解決方案:我創建2個文件與觸摸,創建時間間隔(例如6分鐘),並在此時間間隔我開始和停止該腳本:touch now.start -t 201012101022; touch now.end -t 201012101028。然後在10-22和10-28之間,我啓動並停止該腳本(它會創建所有日誌,打開和關閉必要的文件等),然後查找使用find /更新now.start -and -not -newer now.end – lugger1 2010-12-10 17:47:27

回答

2

它看起來像你的修改時間在UTC(時區+0000),這就是它看起來在未來的原因。我相信touch -t也使用UTC,這將解釋額外的結果。如果使用UTC設置temp.cnewer文件的修改時間,則原始方法可能會正常工作。

1

它仍然打開了該文件,你會發現腳本的PID,然後

ls -l命令的/ proc/PIDNUMBER/FD

4

根據多久的文件保持打開,lsof命令可能會做你想做的。另一種選擇是在strace下運行它並查找文件打開系統調用。

+0

事情是腳本本身寫入日誌,並且它開始寫入自己的日誌,我需要它們。 – lugger1 2010-12-09 20:16:14