2012-10-03 59 views
0

我需要在CentOS中編寫一個腳本,它將在後臺運行。 該腳本需要檢查文件名「status.txt」是否已經在/root/MyFile文件夾中創建。如果該文件已創建,則應通過腳本捕獲事件。如何在CentOS中創建/複製文件夾中的文件事件?

什麼代碼片段,我應該在我的劇本寫的,所以它得到事件的TXT文件的文件夾中創建了?

任何幫助,非常感謝。

回答

0

如果你的內核是2.6.13比新的,你可以使用inotify機制來實現自己的目標。安裝包inotify-tools和寫劇本,將監視您的文件,使用提供examples

1

最簡單的辦法:

while true; do 
do 
    [ -e "/root/MyFile/status.txt" ] && { echo file is created; break; } 
    sleep 1 
done 

而不是echo file is created你可以寫你要執行的命令。

您可以用inotify的相同:

inotifywait --format '%f' -m /root/MyFile 2> /dev/null | while read file 
do 
    [ "$file" = status.txt ] \ 
    && [ -e "/root/Myfile/$file" ] \ 
    && { echo file is created ; break; } 
done 

這是解決方案具有的優勢,你會得到的動作瞬間,因爲該文件將被創建。而在第一種情況下,你也會等待第二個。第二個好處是,你需要每秒輪詢文件系統。

但這種方法的缺點也:

  • 它只能在Linux上;
  • 你需要比較現代的內核;
  • 你需要安裝inotify-tools;
  • 如果您在創建status.txt之前創建了許多文件,則會進行許多其他比較操作。

恢復:

我想,你首先需要的解決方案。

相關問題