Здравствуйте!
Я ищу программу (ы), которые позволяют отслеживать изменившиеся (в том числе добавленные и удалённые) файлы после каких-либо изменений в системе. Синхронизировать систему с каким-либо образцом не нужно, про существование rsync я знаю. Интересует именно информация о произошедших изменениях в читаемом виде.
Пока что самый лобовой вариант, пришедший в голову - это сделать что-то типа ls -lR > treeNNN.txt
до и после изменений, а потом на полученные файлы натравить diff.
У этого способа несколько недостатков вижу я, все они не фатальны, но малоприятны.
Во-первых, если после изменений файл поменял содержимое, а размер и дата останутся прежними, это не отследится. Ну это не очень принципиально, подобная ситуация, в основном характерна для действий всякой малвари, а меня больше интересует контроль за «добропорядочными» изменениями. К тому же, чтобы этот недостаток преодолеть, надо считать контрольные суммы, а это потребует сильно больших ресурсов. В крайнем случае можно, наверное, наколбасить баш-скрипт с find и md5sum вместо ls, да.
Во-вторых, если в каталоге с изменениями много файлов, одного diff для анализа будет маловато, чтобы понять, какие файлы изменились и где, придётся сличать diff-файлы и сами слепки. Да, diff позволяет задать, сколько строк до и после отличия показывать, и чтобы имя каталога гарантированно попало в вывод, можно задать число побольше. Но тогда и мусору в самом выводе будет намного больше. :(
В третьих, эта методика статична: если я уже после первичного анализа сначала сравнил слепки с учётом времени изменения файлов, а потом захотел повторить анализ, но уже игнорируя это время, diff уже не поможет, надо писать свой анализатор.
Может, есть какие-то готовые инструменты отслеживания/анализа? Желательно, естественно, опенсорсные и умеющие запускаться на любом гнулинуксе.