Позвольте мне объяснить древовидную структуру: у меня есть сетевой каталог, в который несколько раз в день новые .txt файлы копируются нашей базой данных. Эти файлы находятся в каталоге на основе имен пользователей. На локальном диске у меня та же структура (каталог, основанный на именах пользователей), и я должен быть обновлен последними файлами .txt. Это не процедура синхронизации: я копирую удаленный файл в локальный пункт назначения, и мне все равно, что будет с ним после этого, поэтому мне не нужно его синхронизировать. Однако мне нужно копировать ТОЛЬКО новые файлы, а не те, которые я уже скопировал. Это будет выглядеть примерно так:
Удаленный диск
/ mnt / remote / database
+ user1 /
+ user2 /
+ user3 /
+ user4 /
Локальный диск
/ var / database
+ user1 /
+ user2 /
+ user3 /
+ user4 /
Я играл с
find /mnt/remote/database/ -type f -mtime +1
и другие варианты, но это не очень хорошо работает.
Итак, сценарий, который я пытаюсь изобразить, следующий:
1 - проверить / mnt / remote / database рекурсивно для * .txt
2 - проверьте дату файлов, чтобы увидеть, являются ли они новыми (с тех пор, как я проверял в последний раз, возможно, сохраните текстовый файл с последней проверкой на нем в качестве ссылки?)
3 - если файл новый, скопируйте его в соответствующий пункт назначения в / var / database (поэтому /mnt/remote/database/user1/somefile.txt будет скопирован в / var / database / user1 /)
Я буду запускать скрипт через задание cron.
Я делаю это в C прямо сейчас, но ИТ-специалисты не очень хороши в отладке или написании C, и если им нужно добавить или исправить что-то, они могут лучше обрабатывать bash-скрипты, а я не очень хорош в этом.
Есть идеи?
спасибо!