Как rsync
знать, какие файлы изменены, а какие нет? Регистрирует ли он свои данные где-нибудь в файле?
Потому что я хочу делать инкрементные резервные копии, но сначала он перенесет все файлы.
Итак, мой главный вопрос: если я загружаю исходные файлы через FTP, а не через rsync
. Будет rsync
по-прежнему пропускает эти существующие файлы или загрузит все при первом запуске.
У Rsync есть несколько флагов, которые контролируют, на что он будет смотреть и что копировать в место назначения. Чаще всего используется флаг «-a», который является флагом «Архив», вероятно, это то, что вам нужно. запустите rsync с флагами «-av» и сделайте первый запуск с данными, для которых вы хотите создать резервную копию. В следующий раз, когда он запустится, он выполнит контрольную сумму блока для файла и скопирует только те части, которые были изменены в существующих файлах, скопирует новые файлы и удалит файлы, которых больше нет. Проверьте раздел параметров "-a" на:
http://linux.die.net/man/1/rsync
Первый запуск будет интенсивным для BandWidth, следующие запуски, скорее всего, будут интенсивно использовать процессор, но потребуют небольшой пропускной способности по сравнению с первоначальным запуском. Если только у вас не будет большой оттока вашего набора данных.
Rsync не волнует, как вы получили файлы в исходных или целевых каталогах, он только скопирует изменения между ними, если вы не добавите флаги, чтобы сделать что-то другое.
Если вы хотите регистрировать то, что было изменено, вы можете использовать опцию «--log-file». В общем, примерно так звучит то, что вы хотите:
rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups
rsync не делает «инкрементального», это больше похоже на «дифференциальный». это не переносится изменения (что предполагает наличие некоторой информации о предыдущем запуске), он передает различия (путем сравнения исходного файла с целевым)
упрощение процесса:
Может быть, я педантичен, но инкрементное резервное копирование означает, что сначала вам нужно создать полную резервную копию. Тогда у вас есть резервные копии файлов, измененных с момента создания этой резервной копии. Затем у вас есть еще одна резервная копия резервных копий, измененных с момента предыдущей, и т. Д. Таким образом, вам нужна полная резервная копия и все инкрементные резервные копии с момента ее создания.
Так, просто использование режима архива не является инкрементным резервным копированием. Я думаю, что разница важна, потому что это означает, что вы не можете вернуться во времени, чтобы получить файлы до того, как они изменились..
Если вы хотите сделать действительно инкрементное резервное копирование, вы можете использовать такие параметры, как --backup-dir
. Есть пример Вот.
rsync не регистрирует никаких данных, он проверяет временные метки изменения файла, а затем содержимое. Если вы сначала загрузите по ftp, все будет в порядке - rsync не будет повторно передавать все данные, но, вероятно, будет просматривать все содержимое и исправлять временные метки. но большого трансфера снова не будет.
Если на самом деле вопрос: «Я хочу делать инкрементные резервные копии через rsync», есть несколько доступных вариантов. Использую Дирвиш:
Восстановление легко, потому что оно дает вам снимки: он использует жесткие ссылки, чтобы предоставить вам полные снимки, при этом экономя место там, где файл идентичен. Внутри он использует параметр rsync --link-dest:
--link-dest=DIR hardlink to files in DIR when unchanged
Поскольку он использует rsync, он также экономит пропускную способность сети (и, следовательно, время), где изменения очень небольшие. Это также работает, если вы деготь и сначала сникернет локально созданный образ dirvish, если у вас много файлов и медленная ссылка.