Переносим файлы с сервера на сервер при помощи команды rsync

Создание бекапа при переносе не всегда возможно, например закончилась дисковая квота, либо архив будет огромен. Да и зачем так делать, если объем слишком велик, то на упаковку, передачу огромного архива и последующий его разворот уйдет значительное время.

  • rsync умеет копировать и синхронизировать файлы с локальной машины на удалённую — и наоборот;
  • поддерживает копирование ссылок, файлов устройств, данные о владельцах, группах и права доступа;
  • rsync работает быстрее, чем scp, потому что использует специальный протокол удалённого обновления, который позволяет передавать данные только об изменившихся файлах: первый раз копируется полное содержимое файла или директории, но при следующем копировании — rsync копирует только изменившиеся блоки данных;
  • rsync использует меньше пропускной способности канала передачи данных, т.к. использует компрессию и декомпрессию данных;

Синтаксис команды при переносе по ssh:

rsync -avzhP user@src_host:/src_path/src_path/. /dest_path/dest_path/
# забираем с src_host все файлы в локальную директорию dest_path

# или же

rsync -avzhP /src_path/src_path/. user@dest_host:/dest_path/dest_path/
# отправляем файлы из src_path на удаленный сервер dest_host в директорию dest_path

Я использую первый синтаксис, чтобы сразу продолжить работу на локальном сервере. При первом использовании меня поразила скорость передачи. Сайт весил немного, всего то 80МБ, но количество мелких файлов приличное. Залетело — глазом не моргнул, секунды 1.5 и я сразу вспомнил, как переносил это же при помощи Filezilla — прога рекурсивно добавляла в задания файлы и папки, и весьма нудно загружала даже такой объем, причем делать это приходилось дважды — сначала на локальный комп и затем на удаленный сервак. Не говоря уже об огромных сайтах — дело затягивалось на сутки и более… rsync гораздо быстрее! Те сайты, которые я когда-то переносил целый день, удалось перенести менее чем за час. Кроме того утилита умеет не только переносить файлы с сервера на сервер, а синхронизировать(из названия ясно) локальные файлы/директории и делать бекапы.

А ещё очень круто забирать с сервера себе на комп бекапы одной командой:

rsync -avzhP [email protected]:/backup/. /drives/d/backups/

В данном случае на винде директория расположена по пути D:/backups и качаю через терминал MobaXterm
Шикарно видно ход процесса: прогресс барчик, объем скачанного, процент скачанного, скорость, оставшееся время.

P.S. Подключение с не стандартным портом ssh:

rsync -avzhP -e 'ssh -p 2483' root@src_host:/src_path/src_path/. /dest_path/dest_path/

 

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *