Executable

是否可以顯示上次執行執行檔的時間?

  • January 18, 2022

請注意,FS 是使用relatime選項安裝的(因此未顯示最近的上次訪問時間)。

有沒有辦法查看最後一次執行執行檔(ELF 64 位 LSB 執行檔)的時間?

使用根訪問。這個想法是複雜的生產應用程序可以執行目前存在於兩個不同位置的相同 exec(待安裝)。我只想確保從現在開始只執行其中一個,而不會中斷任何事情(例如,不能暫時刪除一個;99% 確定只使用其中一個,但需要 100% 確定)。

據我記得,relatime每 24 小時更新一次訪問時間,或者如果舊的 atime 早於或等於 mtime。這會讓您知道該程序是否已經一整天未使用;或者,如果您不想等待,請執行touch programfile,然後查看 atime 是否已更改。

Plaintouch會設置 atime == mtime,但如果它是 <= mtime,atime 會更新,所以沒關係。您也可以在touch -a -d 1999-12-31不修改 mtime 的情況下更改 atime。

像這樣:

$ cp /bin/ls .
$ touch ./ls
$ stat ./ls
...
Access: 2022-01-07 13:07:16.640132600 +0200
Modify: 2022-01-07 13:07:16.640132600 +0200
Change: 2022-01-07 13:07:16.640132600 +0200
Birth: -
$ ./ls &gt; /dev/null
$ stat ./ls
...
Access: 2022-01-07 13:07:57.175525517 +0200
Modify: 2022-01-07 13:07:16.640132600 +0200
Change: 2022-01-07 13:07:16.640132600 +0200
Birth: -

訪問時間戳在程序執行時更新。

當然,如果文件只是被讀取,atime 也會改變。像這樣讀取二進製文件可能並不常見,但是例如備份工具可以做到這一點。這將使 atime 對此毫無用處。

但是如果atime沒有改變,那麼文件既沒有被讀取也沒有被執行,所以它可以用來證明否定的情況。

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