🐧 Как возобновить частично переданные файлы по SSH Используя Rsync — Information Security Squad
🐧 Как возобновить частично переданные файлы по SSH Используя Rsync

Представьте себе такой сценарий.

Вы копируете несколько больших файлов из одной системы в другую по SSH с помощью команды scp.

Внезапно отключается питание, сетевое соединение прерывается, и процесс копирования прерывается на полпути.

Что бы вы сделали?

Перезапустить процесс копирования, как только питание снова будет включено?

Да, это сработает.

Однако команда scp не имеет опции возобновления, поэтому она просто начнет копировать файлы с самого начала и перезапишет существующие файлы.

Это немного раздражает и отнимает много времени.

Здесь полезна утилита Rsync

! Мы можем легко возобновить частично перенесенные файлы через SSH, используя Rsync.

Это поможет вам возобновить прерванный процесс копирования или загрузки с того места, где вы его оставили.

Что такое Rsync?

Для тех, кому интересно, Rsync — это быстрая, универсальная утилита для копирования файлов, которую можно использовать для копирования и передачи файлов или папок в и из удаленных и локальных систем.

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

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

Rsync широко используется для резервного копирования и зеркалирования, а также как улучшенная команда копирования для повседневного использования.

Так же, как SCP, rsync также будет копировать файлы через SSH.

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

Возобновление передачи файлов по SSH

Обратите внимание, что утилита rsync должна быть установлена с обеих сторон (то есть удаленных и локальных систем) для возобновления частично переданных файлов.

Rsync доступен в официальных репозиториях большинства дистрибутивов Linux, поэтому вы можете установить его с помощью диспетчера пакетов по умолчанию.

В Arch Linux и его вариантах установите Rsync, используя команду:

$ sudo pacman -S rsync

На Debian, Ubuntu, Linux Mint:

$ sudo apt-get install rsync

На Fedora:

$ sudo dnf install rsync

На RHEL, CentOS:

$ sudo yum install rsync

На SUSE/openSUSE:

$ sudo zypper install rsync

Теперь давайте посмотрим на пример.

Я собираюсь скопировать Ubuntu 18.04 ISO из моей локальной системы в удаленную систему с помощью команды:

$ scp ubuntu.iso itsecforu@192.168.225.22:/home/itsecforu/

Где:

  • itsecforu — это имя пользователя моей удаленной системы
  • 192.168.225.22 — это IP-адрес удаленного компьютера.
  • /home/itsecforu/ — это удаленный пункт назначения.
Теперь я принудительно завершил процесс копирования, нажав CTRL + C.
Пример вывода:
itsecforu@192.168.43.2's password: 
ubuntu-16.04-desktop-amd64.iso 26% 372MB 26.2MB/s 00:39 ETA^c

Как вы видите в приведенном выше выводе, я прекратил процесс копирования, когда он достиг 33%.

Если я перезапущу приведенную выше команду, она просто перезапишет существующий файл.

Другими словами, процесс копирования не возобновится с того места, где я его остановил.

Чтобы возобновить процесс копирования для копирования частично переданного ISO-файла, используйте команду rsync, как показано ниже.
$ rsync -P -rsh=ssh ubuntu.iso itsecforu@192.168.225.22:/home/itsecforu/

Пример вывода:

itsecforu@192.168.225.22's password: 
sending incremental file list
ubuntu.iso
834.00M 100% 14.81MB/s 0:00:56 (xfr#1, to-chk=0/1)

Теперь процесс копирования возобновляется с того места, где мы остановились ранее.

Вы также можете использовать «–partial» вместо параметра «-P», как показано ниже.

$ rsync --partial -rsh=ssh ubuntu.iso itsecforu@192.168.225.22:/home/itsecforu/

Здесь параметр «–partial» или «-P» указывает команде rsync сохранить частично загруженный файл и возобновить процесс.

Проверьте, действительно ли файл скопирован или нет в удаленную систему, используя команду:

$ ssh itsecforu@192.168.225.22 ls -lh
itsecforu@192.168.225.22's password: 
total 835M
-rw-rw-r-- 1 sk sk 834M Jul 26 2019 ubuntu.iso
Как видно из вышеприведенного вывода, файл Ubuntu.iso копируется в удаленную систему, и его размер составляет 835 МБ.
В качестве альтернативы, мы также можем использовать следующие команды для возобновления частично переданных файлов по SSH.
$ rsync -avP ubuntu.iso itsecforu@192.168.225.22:/home/itsecforu/

или

$ rsync -av --partial ubuntu.iso itsecforu@192.168.225.22:/home/itsecforu/

Теперь вы знаете, как возобновить отмененные, прерванные и частично загруженные файлы с помощью команды rsync.

Как видите, это не так сложно.

Если rsync установлен в обеих системах, мы можем легко возобновить процесс копирования, как описано выше.

 

Добавить комментарий

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