2016-12-29 7 views
0

Программа моей компании генерирует множество данных со многими различными типами файлов. Один из них, тип файла .log использует много места, и поскольку мне не нужны файлы журналов, я хотел бы удалить их, как только программа их создаст. К сожалению, я не могу отключить возможность создания журнала, так как программа просто не предлагает такой вариант. Интересно: работает find с опцией -delete в опционной схеме while true, или есть ли лучший/рекомендуемый вариант?Удалите файлы определенного типа файлов, как только появится файл

while true 
do 
    find -type f -name "*.log" -delete 
done 

ответ

2

Вы можете использовать incrond демон для прослушивания изменения файловой системы и удалить файл, когда он появляется или просто использовать хроны для удаления * .log файлов в каждой минуте, как более простым решение.

1

Если у вас есть inotify-tools (которые должны быть частью любого дистрибутива Linux) установлен, этот сценарий будет блочным ждать событий создания файлов и удалить соответствующие файлы:

inotifywait -e create --monitor --format "%w%f" ${YOUR_LOG_DIR} | egrep -- line-buffered "\.log$" \ 
     | while read -r file; do 
      rm -v $file; 
      done 
+0

ли работа также для файлов журналов хранится в разных подкаталогах главного каталога журнала? – burtek

+1

Да, существует опция '--recursive' для' inotifywait': https://linux.die.net/man/1/inotifywait –