В этой статье мы объясним, как использовать rsync для копирования файлов, с некоторыми практическими примерами. Мы также объясним использование rsync для копирования одного файла, нескольких файлов и каталога как в локальные, так и в удаленные системы. Мы расскажем, как использовать Rsync для:
- Скопируйте файл / каталог в локальной системе
- Скопируйте файл / каталог из локальной в удаленную систему
- Скопируйте файл / каталог из удаленной системы в локальную
Мы объяснили команды и процедуры, упомянутые в этой статье, на Ubuntu 20.04 LTS. Вам понадобится терминал командной строки для копирования файлов с помощью rsync. Чтобы открыть приложение Терминала в командной строке, используйте сочетание клавиш Ctrl + Alt + T.
Установка Rsync
Rsync предустановлен в Ubuntu 20.04 LTS. Однако, если он случайно удален из системы, вы можете установить его следующим образом:
$ sudo apt установить rsyncВот некоторые из часто используемых параметров, которые можно использовать с rsync:
-а: режим архива
-v: показывает детали процесса копирования
-p: показывает индикатор выполнения
-r: рекурсивно копирует данные
-z: сжимает данные
-q: подавить вывод
Копировать файлы и каталоги локально
Общий синтаксис rsync:
$ rsync [опция] [источник] [назначение]Копировать один файл локально
Если вы хотите скопировать файл из одного места в другое в вашей системе, вы можете сделать это, набрав rsync за которым следует имя исходного файла и целевой каталог.
Например, чтобы скопировать один файл «file1.txt »из текущего местоположения, то есть домашнего каталога, в каталог ~ / Documents, команда будет выглядеть так:
$ rsync / home / tin / file1.txt / home / tin / Документы
Примечание. Вместо «/ home / tin / file1».txt », мы также можем ввести« file1 », так как в настоящее время мы работаем в домашнем каталоге. Кроме того, мы можем использовать ~ / Documents вместо того, чтобы указывать полный путь как «/ home / tin / Documents».
Копировать несколько файлов локально
Если вы хотите скопировать несколько файлов одновременно из одного места в другое в вашей системе, вы можете сделать это, набрав rsync за которым следует имя исходных файлов и целевой каталог.
Например, чтобы скопировать файлы «file2.txt »и« file3.txt »из домашнего каталога в каталог ~ / Documents, команда будет выглядеть так:
$ rsync / home / tin / file2.txt / главная / олово / файл3.txt / home / tin / Документы
Чтобы скопировать все файлы с одинаковым расширением, вы можете использовать символ звездочки (*) вместо индивидуального указания имен файлов. Например, чтобы скопировать все файлы из домашнего каталога, заканчивающиеся на «.zip »в каталог ~ / Documents, мы будем использовать:
$ rsync / home / tin / *.zip ~ / ДокументыКопировать каталоги локально
Если вы хотите скопировать каталог с его подкаталогом и всем содержимым из одного места в другое в вашей системе, вы можете сделать это, набрав rsync за которым следует исходный и целевой каталог.
Например, чтобы скопировать каталог «sample» в каталог «test /» в домашнем каталоге, команда будет выглядеть так:
$ rsync -av / home / tin / sample / home / tin / testПримечание: указание «/» после исходного каталога копирует только содержимое каталога. Если мы не укажем «/» после исходного каталога, исходный каталог также будет скопирован в целевой каталог.
Как и в следующем выводе, вы можете видеть, что наш исходный каталог «sample» также копируется в целевой каталог (поскольку мы использовали «sample» вместо «sample /» в качестве исходного каталога).
Rsync поддерживает инкрементную передачу, как вы можете видеть в приведенном выше выводе, что он передает только файлы, которые являются новыми или обновленными.
Копировать файлы на основе максимального размера
Во время копирования мы также можем указать максимальный размер файлов, которые могут быть скопированы с помощью опции «-max-size». Например, чтобы скопировать файлы размером не более 2000 КБ из ~ / Downloads в каталог ~ / Documents, команда будет выглядеть так:
$ rsync -a --max-size = 2000k / home / tin / Downloads / * / home / tin / ДокументыЭта команда скопирует все файлы из ~ / Downloads в каталог ~ / Documents, кроме файлов размером более 2000 КБ.
Копировать файлы на основе минимального размера
Точно так же мы также можем указать минимальный размер файлов, которые могут быть скопированы с опцией «-min-size». Например, чтобы скопировать файлы размером не менее 5M из ~ / Downloads в каталог ~ / Documents, команда будет выглядеть так:
$ rsync -a --min-size = 5M / home / tin / Downloads / / home / tin / ДокументыЭта команда скопирует все файлы из ~ / Downloads в каталог ~ / Documents, кроме файлов размером менее 5M.
Исключить файлы
При копировании файлов из одного каталога в другой вы можете исключить некоторые файлы, используя параметр «-exclude», за которым следует имя файла или расширение типа файла.
Например, чтобы исключить все .zip файлы при копировании файлов из ~ / Downloads в каталог ~ / Documents, команда будет выглядеть так:
$ rsync -a --exclude = "*.zip »/ home / tin / Downloads / / home / tin / ДокументыКопировать файлы и каталоги удаленно
С помощью Rsync вы можете скопировать один файл, несколько файлов и каталогов в удаленную систему. Для удаленного копирования файлов и каталогов вам потребуются:
- Rsync установлен как в локальной, так и в удаленной системе
- SSH-доступ к удаленной системе
- Пароль удаленного пользователя
Перед копированием файлов с помощью rsync убедитесь, что вы можете получить доступ к удаленной системе через SSH:
$ ssh удаленный_пользователь @ удаленный_ип
Общий синтаксис для копирования файлов и каталогов в удаленную систему с помощью rsync:
Например, для копирования одного файла «файл.txt »из ~ / Downloads в каталог удаленной системы ~ / Documents, команда будет выглядеть так:
$ rsync -v ~ / Загрузки / файл1.txt umara @ 192.168.72.164: ~ / Документы
Аналогичным образом, чтобы скопировать каталог «~ / Downloads / files» в локальной системе с его подкаталогом и всем содержимым в каталог «~ / Downloads / samples» в удаленной системе:
$ rsync -rv ~ / Загрузки / файлы umara @ 192.168.72.164: ~ / Загрузки / образцы
Вы также можете скопировать файлы и каталоги с удаленного компьютера на локальный. Например, чтобы скопировать файл «file2.txt »из удаленной системы на рабочий стол локальной системы:
$ rsync -v умара @ 192.168.72.164: ~ / Загрузки / файл2.txt ~ / Рабочий стол /
Аналогичным образом, чтобы скопировать каталог из удаленной системы в локальную систему
$ rsync -rv umara @ 192.168.72.164: ~ / Загрузки / образец ~ / Рабочий стол / testВы также можете использовать все параметры, такие как -max-size, -min-size, -exclude и другие, при копировании файлов в / из удаленной системы.
Rsync - отличный инструмент для копирования файлов из источника в место назначения как локально, так и удаленно. Он включает в себя большой набор опций, которые обеспечивают гибкость и контроль при передаче файлов в / из удаленной системы.