如果 inotifywait 不可用,如何監視到達的檔案?

如果 inotifywait 不可用,如何監視到達的檔案?

我有一個目錄,當其他機器透過 FTP 傳送檔案時,該目錄會被寫入。我想放置一些東西來通知檔案何時到達以及它們的檔案名稱是否包含特定的子字串(如“jpg”),將檔案移至其他目錄(僅在檔案完成到達之後,而不是之前)

我想把它安裝在許多不同類型的 Linux 機器上。其中一台機器裝有 Linux 核心 2.4.22。可能還有更老的。我還在檢查。

在舊機器上,我看到這個:inotifywait: command not found

我也看過這個:The inotify API is available in Linux 2.6.13 and later

和這個:bash: watch: command not found

POSIX sh 或 bash 或 C 中的想法可以運作。 Perl 和 Python 可能無法在所有我想要運行它的地方使用。我沒有安裝軟體包的權限。

答案1

我很久以前寫了這個 Perl 程序,如果你理解它,它可以幫助你入門。它使用了核心中的 inotify 功能。

http://www.win2ix.ca/2013/05/31/606/

您必須將程式碼從同步更改為執行您需要的任何操作,但基本上它都在那裡。

我知道你對 Perl 有疑問,但我想把這個給你以防萬一。

如果有幫助的話,這裡有一個關於如何使用 C 語言的演示

http://man7.org/tlpi/code/online/diff/inotify/demo_inotify.c.html

相關內容