Окт
11
2009

Пример использования rsync

Появилась сейчас необходимость сменить тарифный план на хостинге на более маленький. Места будет меньше, а следовательно надо сейчас почистить. Я там как-то насобрал кучу всяких бэкапов, которые надо бы вобще один раз на диск записать и можно везде удалять их. Вот и встал вопрос о том, как бы мне слить всё это счастье на комп аккуратно. И тут я вспомнил про rsync. Rsync как раз предназначена для синхронизации двух каталогов. Причём один из этих каталогов вполне может быть на удалённой машине(нужен ssh доступ). Раньше им никогда не пользовался, но просто слышал, что инструмент для таких целей. Немного почитав мануал, а затем погуглив я написал команду:

rsync -av mylogin@myhost.com:backups /home/yas/backups/hosting/

После этого мне было предложено ввести пароль к удалённому хосту и всёе. Бэкапы качаются. Вобщем я доволен ) Воспользоваться этой штукой конечно можно только в случае если у вас есть ssh доступ на хостинг.

Поясню про флаги (-avz), которые я использовал для rsync

  • a – режим архива. на самом деле это заменяет ряд других ключей (-rlptgoD):
    • r – синхронизировать рекурсивно. Т.е. синхронизировать не только файлы верхнего уровня, но и каталоги с файлами внутри
    • l – при синхронизации сохранять символические ссылки
    • p – сохранять права на файлы
    • t – сохранять время изменения
    • g – сохранять группу
    • o – сохранять владельца
    • D – сохранять файлы девайса и специальны файлы (я так понимаю, что это речь о сохранении скрытых файлов и файлов типа .listing)
  • v – показывать информацию о ходе синхронизации. Просто по умолчанию rsync запускается в фоновом режиме. А с этим флагом будет работать как обычная программа и выдавать название каждого синхронизируемого файла. Так же можно написать -vv, тогда информации будет выдано еще больше.
  • z – при копировании сжимает данные. Если синхронизируем архивы, то лучше наверное не использовать.

Про остальное множество возможных флагов вы можете прочитать в мануале по rsync.

tags: , ,
posted in linux by yas375

Follow comments via the RSS Feed | Оставить комментарий | Trackback URL

3 Comments to "Пример использования rsync"

  1. yas wrote:

    кстати есть один нюанс: у rsync ключ -a заменяет ряд ключей, среди которых и ключ -t, который приводит к тому, что файлы и папки сверяются по дате изменения. Т.е. если я на локальном сайте файлик какой-то поредактировал, сохранил, а затем убрал изменения и снорва сохранил, то при следующей синхронизации с удалённым сайтом rsync этот файл будет снова передавать. Это делает не очень удобным когда мы хотим следить за тем, что заливается на удалённый (я сперва всегда запускаю rsync с ключов –dry-run, что просто выводит что будет сделано). Поэтому лучше было бы сравнивать файла не по дате изменения, а по чексумме (checksum). Для этого используется ключ -c. Ну и плюс я еще несколько ключей убрал из тех, что включает -a. И сейчас для синхронизации использую: rsync -rlcpv mylogin@myhost.com:backups /home/yas/backups/hosting/

  2. rabbit wrote:

    yas,

    man rsync:

    –no-OPTION turn off an implied OPTION (e.g. –no-D)

    В твоем случае нужно добавить –no-t :)

  3. Saboteur wrote:

    >z – при копировании сжимает данные. Если синхронизируем архивы, то лучше наверное не
    использовать.

    Смысл имеет, так как rsync будет сжимать весь канал передачи, включая заголовки файлов. Например в случае большого количества маленьких архивов, разница при медленном коннекте может быть замента на глаз.

Leave Your Comment