Чем больше я использую, rsync
тем больше понимаю, что это швейцарский армейский нож для передачи файлов. Есть так много вариантов. Недавно я обнаружил, что вы можете пойти, --remove-source-files
и он будет удалять файл из источника, когда он будет скопирован, что делает его немного более подвижным, чем копирует программу. :)
Какие твои любимые маленькие советы и рекомендации по rsync?
--delete-before
например), используется старое поведение «сначала создать список», поскольку это требуется для правильной работы этих параметров - поэтому, если вы не видите этого поведения, проверьте, Известно, что другие варианты, которые вы используете, предотвращают это. Это может быть полезно, если вы используете rsync в интерактивном режиме для большого дерева и хотите принудительно запустить начальное сканирование, чтобы вывод был--progress
точным (т. Е. Число «сравниваемых объектов» никогда не увеличится, поскольку после начального сканирования новые объекты не будут найдены) ).Используется
--link-dest
для создания резервных копий на основе моментальных снимков с эффективным использованием пространства, в результате чего создается впечатление, что у вас есть несколько полных копий данных резервных копий (по одной на каждый прогон резервного копирования), но файлы, которые не меняются между прогонами, жестко связаны вместо создания новых копий, экономящих место.(на самом деле, я все еще использую
rysnc
-followed-by-cp -al
метод, который достигает того же самого, см. http://www.mikerubel.org/computers/rsync_snapshots/ для старых, но все еще очень хороших вариантов обоих методов и связанные с этим вопросы)Одним из основных недостатков этого метода является то, что если файл поврежден из-за ошибки диска, он также поврежден во всех снимках, которые ссылаются на этот файл, но у меня также есть автономные резервные копии, которые в достаточной степени защищают от этого. Еще одна вещь, на которую стоит обратить внимание, это то, что в вашей файловой системе достаточно инодов, или вы исчерпаете их до того, как на самом деле закончится место на диске (хотя у меня никогда не было проблем со значениями по умолчанию ext2 / 3).
Кроме того, никогда не забывайте, что очень полезно
--dry-run
для небольшой здоровой паранойи, особенно когда вы используете--delete*
варианты.источник
Если вам нужно обновить веб-сайт с помощью огромных файлов по медленной ссылке, вы можете перенести небольшие файлы следующим образом:
rsync -a --max-size = 100K / var / www / there: / var / www /
затем сделайте это для больших файлов:
rsync -a --min-size = 100K --bwlimit = 100 / var / www / there: / var / www /
В rsync есть много опций, которые удобны для веб-сайтов. К сожалению, у него нет встроенного способа обнаружения одновременных обновлений, поэтому вы должны добавить логику в сценарии cron, чтобы избежать наложения записей огромных файлов.
источник
Я использую опцию --existing при попытке синхронизировать небольшое подмножество файлов из одного каталога в другое место.
источник
--rsh
это мое.Я использовал его, чтобы изменить шифр в ssh на что-то более быстрое (
--rsh="ssh -c arcfour"
), а также настроить цепочкуssh
s (рекомендую использовать егоssh-agent
) для синхронизации файлов между хостами, которые не могут напрямую общаться. (rsync -av --rsh="ssh -TA userA@hostA ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/
).источник
Когда эта опция используется, rsync остановится через T минут и завершится. Я думаю, что эта опция полезна, когда rsyncing большое количество данных в ночное время (часы не заняты), а затем останавливается, когда пришло время для людей, чтобы начать использовать сеть, в течение дня (часы заняты).
Эта опция позволяет вам указать, в какое время остановить rsync.
Пакетный режим можно использовать для применения одного и того же набора обновлений ко многим идентичным системам.
источник
at
чтобы убить процесс?Если вам интересно, как далеко продвинулся медленно работающий rsync, и не использовал -v для просмотра списка файлов по мере их передачи, вы можете узнать, какие файлы были открыты:
в системе, которая имеет / proc
Например, rsync завис для меня только сейчас, хотя в удаленной системе оставалось достаточно места. Этот трюк помог мне найти неожиданно огромный файл, который я не запомнил, который не поместился бы на другом конце.
Это также дало мне немного более интересную информацию - другой конец, по-видимому, сдался, поскольку была также неработающая ссылка на сокет:
источник
--archive
является стандартным выбором (хотя не по умолчанию) для заданий, подобных резервному копированию, который обеспечивает копирование большинства метаданных из исходных файлов (разрешения, владение и т. д.).Однако, если вы не хотите использовать это, часто вы все равно захотите включить его
--times
, который будет копировать время модификации файлов. Это делает следующий rsync, который выполняется (предполагается, что вы делаете это многократно) намного быстрее, так как rsync сравнивает время модификации и пропускает файл, если он не изменился. Удивительно (по крайней мере для меня) эта опция не по умолчанию.источник
Тот, который я использую чаще всего, определенно
--exclude-from
позволяет вам указать файл, содержащий вещи, которые нужно исключить.Я также нахожу
--chmod
очень полезным, потому что это позволяет вам убедиться, что разрешения в конечном итоге в желаемом состоянии, даже если ваш источник испорчен.источник
--backup-dir =
date +%Y.%m.%d
--delete Мы удаляем, но делаем копию ... на всякий случайисточник
Мой есть
--inplace
. Прекрасно работает, когда на сервере для резервных копий работает ZFS или btrfs, и вы делаете собственные снимки.источник
Конечно, есть и то,
--delete
что удаляет вещи из цели, которые не могут быть найдены в источнике.источник
cwrsync - Rsync для Windows http://www.itefix.no/i2/node/10650
Эта версия включает в себя OpenSSH, поэтому вы можете передавать файлы по защищенному каналу.
источник
В случае перебоев
Для ограничения пропускной способности - хорошо для копирования больших файлов, каталогов
источник
bwlimit
? бит в секунду, байт в секунду?Если у вас есть rsync, настроенный как демон на сервере, вы можете просто просмотреть общие модули, как и любой другой каталог. Затем вы можете увидеть, какие пути доступны, а какие нет.
источник
когда я использую GlusterFs, мы имеем узкое место с T файлами нулевого размера, для синхронизации между разбитым кирпичом или репликой мы должны использовать,
--min-size=1
чтобы не синхронизировать пустой файл с разбитого сервераисточник