backup_control
Одним из решений для создания резервных копий (бэкапов) является программа Exiland Backup. Программа создана для Windows, но успешно работает в GNU/Linux с использованием Wine.
Простейшим типом резервного копирования является синхронизация: при добавлении, изменении, или удалении файлов в исходном каталоге такие же изменения происходят в синхронизируемом каталоге.
Имеет смысл периодически проверять результат синхронизации, пробегая по файлам в исходном каталоге и его подкаталогах, отыскивая соответствующие файлы в конечном каталоге и его подкаталогах, вычислять для всех файлов контрольные суммы какой-либо хэш-функцией, и производить попарное сравнение.
Программа BackupControl, написанная на Python 3.9.13, запрашивает адреса исходного и конечного каталогов, производит рекурсивный обход файлов и подкаталогов в исходном и синхронизируемом с исходным каталогах, вычисляя для всех файлов контрольные суммы по алгоритму MD5, и выводя результат проверки в файл log.txt.
Сборка автономного файла для Windows (BackupControl.exe в каталоге builds) произведена PyInstaller 6.9.0 (файл main.spec прилагается, путь E:\BackupControl необходимо скорректировать на путь к каталогу проекта).