Отслеживание всех изменений файлов на хосте unix

Попробуйте этот tar -cf file.tar X. txt Y.txt Z.txt Это создаст file.tar, вы можете запустить следующую команду, чтобы увидеть вывод

vim file.tar

например:

tar -cf file .tar X.txt Y.txt Z.txt

    vim file.tar
    " tar.vim version v29
    " Browsing tarfile /root/file.tar
    " Select a file with cursor and press ENTER  
    X.txt   
    Y.txt 
    Z.txt  

Показан выход из моей системы, означает, что он работает для меня.

0
01.04.2019, 22:34
1 ответ

Поскольку fswatch не может правильно обрабатывать количество операций, когда указан корневой каталог, можно использовать inotifywait (https://linux.die.net/man/1/inotifywait).

Ожидание изменений в файлах с помощью inotify. Можно использовать следующую команду:

sudo inotifywait -m -r --exclude "(/tmp.*|/var/cache.*|/dev/pts/|/var/log.*)"  -e MOVED_TO -e CREATE -e CLOSE_WRITE -e DELETE -e MODIFY -o /tmp/my_tracked_install_files /

Где

  • -m :Использует режим мониторинга
  • -r :рекурсивный путь
  • --exclude использует регулярное выражение, чтобы не отслеживать события в некоторых каталогах (каталоги temp, log и /dev/pts из-за количества ненужных изменений в этих каталогах)
  • -e ПЕРЕМЕЩЕНО _В, СОЗДАТЬ, ЗАКРЫТЬ _ЗАПИСАТЬ, УДАЛИТЬ и ИЗМЕНИТЬ :Единственные интересующие нас события (inotifywait захватывает все виды событий файловой системы, включая листинг)
  • -o :выходной файл

Обратите внимание, что inotifywait не захватывает файлы nfs, записанные с других хостов.

Очень вероятно, что вам придется увеличить количество inotifywatches (, как описано в(https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux)

cat /proc/sys/fs/inotify/max_user_watches # default is 8192
sudo sysctl fs.inotify.max_user_watches=1048576 # increase to 1048576
2
28.01.2020, 03:54

Теги

Похожие вопросы