Как использовать rsync для копирования файлов

How Use Rsync Copy Files



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

В этой статье мы объясним, как использовать rsync для копирования файлов, с некоторыми практическими примерами. Мы также объясним использование rsync для копирования одного файла, нескольких файлов и каталога как в локальные, так и в удаленные системы. Мы расскажем, как использовать Rsync для:







  • Скопируйте файл / каталог в локальной системе
  • Скопируйте файл / каталог из локальной в удаленную систему
  • Скопируйте файл / каталог из удаленной системы в локальную

Мы объяснили команды и процедуры, упомянутые в этой статье, на Ubuntu 20.04 LTS. Вам понадобится терминал командной строки для копирования файлов с помощью rsync. Чтобы открыть приложение Терминала из командной строки, используйте сочетание клавиш Ctrl + Alt + T.



Установка Rsync

Rsync предустановлен в Ubuntu 20.04 LTS. Однако, если он случайно удален из системы, вы можете установить его следующим образом:



$судоподходящийустановитьrsync

Вот некоторые из часто используемых параметров, которые можно использовать с rsync:





–A: режим архива
–V: показывает подробную информацию о процессе копирования.
–P: показывает индикатор выполнения
–R: рекурсивное копирование данных
–Z: сжимает данные
–Q: подавить вывод

Копировать файлы и каталоги локально

Общий синтаксис rsync:



$rsync[вариант] [источник] [место назначения]

Копировать один файл локально

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

Например, чтобы скопировать один файл file1.txt из текущего местоположения, то есть домашнего каталога, в каталог ~ / Documents, команда будет выглядеть так:

$rsync/дом/полагать/file1.txt/дом/полагать/Документы

Примечание. Вместо /home/tin/file1.txt мы также можем ввести file1, поскольку в настоящее время мы работаем в домашнем каталоге. Кроме того, мы можем использовать ~ / Documents вместо того, чтобы указывать полный путь как / home / tin / Documents.

Копировать несколько файлов локально

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

Например, чтобы скопировать файлы file2.txt и file3.txt из домашнего каталога в каталог ~ / Documents, команда будет выглядеть так:

$rsync/дом/полагать/file2.txt/дом/полагать/file3.txt/дом/полагать/Документы

Чтобы скопировать все файлы с одинаковым расширением, вы можете использовать символ звездочки (*) вместо индивидуального указания имен файлов. Например, чтобы скопировать все файлы из домашнего каталога с расширением .zip в каталог ~ / Documents, мы будем использовать:

$rsync/дом/полагать/ *.zip ~/Документы

Копировать каталоги локально

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

Например, чтобы скопировать образец каталога в каталог test / в домашнем каталоге, команда будет выглядеть так:

$rsync-из /дом/полагать/образец/дом/полагать/тестовое задание

Примечание. Указание / после исходного каталога копирует только содержимое каталога. Если мы не укажем / после исходного каталога, исходный каталог также будет скопирован в целевой каталог.

Как и в следующем выводе, вы можете видеть, что наш образец исходного каталога также копируется в целевой каталог (поскольку мы использовали sample вместо sample / в качестве исходного каталога).

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

Копировать файлы на основе максимального размера

Во время копирования мы также можем указать максимальный размер файлов, которые могут быть скопированы с параметром –max-size. Например, чтобы скопировать файлы размером не более 2000 КБ из каталога ~ / Downloads в каталог ~ / Documents, используйте следующую команду:

$rsync --макс-размер= 2000 тыс./дом/полагать/Загрузки/ * /дом/полагать/Документы

Эта команда скопирует все файлы из ~ / Downloads в каталог ~ / Documents, кроме файлов размером более 2000 КБ.

Копировать файлы на основе минимального размера

Точно так же мы также можем указать минимальный размер файлов, которые могут быть скопированы с параметром –min-size. Например, чтобы скопировать файлы размером не менее 5M из ~ / Downloads в каталог ~ / Documents, команда будет выглядеть так:

$rsync --min-size= 5 млн/дом/полагать/Загрузки/ /дом/полагать/Документы

Эта команда скопирует все файлы из ~ / Downloads в каталог ~ / Documents, кроме файлов размером менее 5M.

Исключить файлы

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

Например, чтобы исключить все файлы .zip при копировании файлов из ~ / Downloads в каталог ~ / Documents, команда будет выглядеть так:

$rsync --исключатьзнак равно'* .zip' /дом/полагать/Загрузки/ /дом/полагать/Документы

Копировать файлы и каталоги удаленно

С помощью Rsync вы можете скопировать один файл, несколько файлов и каталогов в удаленную систему. Для удаленного копирования файлов и каталогов вам потребуются:

  • Rsync установлен как в локальной, так и в удаленной системе
  • SSH-доступ к удаленной системе
  • Пароль удаленного пользователя

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

$sshудаленный_пользователь@remote_ip


Общий синтаксис для копирования файлов и каталогов в удаленную систему с помощью rsync:

$rsync[вариант] [источник] [удаленный пользователь@remoteip: пункт назначения]

Например, чтобы скопировать один файл file.txt из ~ / Downloads в каталог удаленной системы ~ / Documents, команда будет выглядеть так:

$rsync-v~/Загрузки/file1.txt умара@192.168.72.164:~/Документы

Аналогичным образом, чтобы скопировать каталог ~ / Downloads / files в локальной системе с его подкаталогом и всем содержимым в каталог ~ / Downloads / samples в удаленной системе:

$rsync-rv~/Загрузки/файлы умра@192.168.72.164:~/Загрузки/образцы

Вы также можете скопировать файлы и каталоги с удаленного компьютера на локальный. Например, чтобы скопировать файл file2.txt из удаленной системы на рабочий стол локальной системы:

$rsync-vУмара@192.168.72.164:~/Загрузки/file2.txt ~/Рабочий стол/

Аналогичным образом, чтобы скопировать каталог из удаленной системы в локальную систему

$rsync-rvУмара@192.168.72.164:~/Загрузки/образец ~/Рабочий стол/тестовое задание

Вы также можете использовать все параметры, такие как –max-size, –min-size, –exclude и другие, при копировании файлов в / из удаленной системы.

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