- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Делаю регулярный бэкап при помощи Rsync. Общее количество файлов, которые синхронизирую, порядка миллиона. Естественно, все файлы не нужно ежедневно перекачивать, т. к. лишь несколько тысяч из них изменяются/появляются/удаляются.
Каждый раз, перед синхронизированием, Rsync, как известно, составляет список файлов для передачи. Из-за большого количества файлов, эта процедура, длится час-два, при том, что непосредственно передача файлов занимает считанные минуты.
Вопрос: Можно ли сделать так, чтобы сократить время подготовки Rsync к передаче файлов?
Спасибо!
Использовать теневое копирование вместо файлового
Делаю регулярный бэкап при помощи Rsync. Общее количество файлов, которые синхронизирую, порядка миллиона. Естественно, все файлы не нужно ежедневно перекачивать, т. к. лишь несколько тысяч из них изменяются/появляются/удаляются.
Каждый раз, перед синхронизированием, Rsync, как известно, составляет список файлов для передачи. Из-за большого количества файлов, эта процедура, длится час-два, при том, что непосредственно передача файлов занимает считанные минуты.
Вопрос: Можно ли сделать так, чтобы сократить время подготовки Rsync к передаче файлов?
Спасибо!
Можно заставить ядро Линукса (если, конечно, используется он) самого сообщать о том, какие файлы изменились и потом синхронизировать только их, вот пример решения: http://phpsuxx.blogspot.com/2010/01/2627.html (правда требует патча ядра, что далеко не всегда и не для всех приемлемо).
Использовать теневое копирование вместо файлового
Не просветите поподробнее?
Какие решения конкретно имеются в виду?
Спасибо всем откликнувшимся!
Pavel.Odintsov, да система Линукс. Интересное решение, но может быть, что-то подобное можно сделать без вмешательства в ядро? (не повлечёт ли это за собой новые проблемы?)
Как вариант: те директории, которые часто меняются, копировать rsync как и раньше, а изменения в остальных отслеживать с помощью inotify (если достаточно редко там файлы меняются).
Pilat, Увы, невозможно разделить на часто-изменяемые и остальные директории, т. к. заранее неизвестно, какие из файлов будут изменены.
Как вариант: те директории, которые часто меняются, копировать rsync как и раньше, а изменения в остальных отслеживать с помощью inotify (если достаточно редко там файлы меняются).
При большом числе контролируемых файлов / папок оно будет тормозить. Хотя, возможно, для случая ТС как раз подойдет.
Pavel.Odintsov добавил 07.03.2010 в 23:48
Спасибо всем откликнувшимся!
Pavel.Odintsov, да система Линукс. Интересное решение, но может быть, что-то подобное можно сделать без вмешательства в ядро? (не повлечёт ли это за собой новые проблемы?)
Проблем не повлечет, там очень аккуратный патч. Но решение все же очень специфичное и вряд ли Вам подойдет, для единичной задачи это все же пушкой по воробьям :)
Как предложили выше, альтернативный вариант уже встроен во все ядра и называется inotify. Беглый поиск оп репо Дебияна выдает ряд интересных решений:
iwatch - realtime filesystem monitoring program using inotify
python-pyinotify - Simple Linux inotify Python bindings
inotify-tools - command-line programs providing a simple interface to inotify
gamin - File and directory monitoring system
При большом числе контролируемых файлов / папок оно будет тормозить.
Для грубого подсчёта можно взять 2 - 10 тысяч изменённых/добавленных/удалённых файлов между синхронизациями. Это много для отслеживания таким способом?
Для грубого подсчёта можно взять 2 - 10 тысяч изменённых/добавленных/удалённых файлов между синхронизациями. Это много для отслеживания таким способом?
Не думаю, даже почти уверен, что работать будет отлично. В моих словах "много" было от нескольких миллионов и выше :) Хотя стоп, а общее число файлов какое? Тут нагрузку создает не число измененных файлов, а число контролируемых.
А вообще откуда взялось много изменяющихся файлов? Может, имеет смысл подсократить как-то?