Как да използвате 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. Ако обаче случайно бъде премахнат от системата, можете да го инсталирате, както следва:



$sudoподходящИнсталирай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 от директорията Home в директорията ~/Documents, командата ще бъде:

$rsync/У дома/вярвам/file2.txt/У дома/вярвам/file3.txt/У дома/вярвам/Документи

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

$rsync/У дома/вярвам/ *.zip ~/Документи

Копирайте директории локално

Ако искате да копирате директория с нейната поддиректория и цялото съдържание от едно място на друго във вашата система, можете да направите това, като въведете rsync последвано от директорията източник и местоназначение.

Например, за да копирате примерната директория в test/ директория в домашната директория, командата ще бъде:

$rsync-на /У дома/вярвам/проба/У дома/вярвам/тест

Забележка: Посочването / след директорията източник копира само съдържанието на директорията. Ако не посочим /след директорията източник, директорията източник също ще бъде копирана в директорията дестинация.

Подобно на следния изход, можете да видите, че нашата извадка от директорията източник също се копира в директорията дестинация (тъй като сме използвали sample вместо sample/ като директория източник).

Rsync поддържа постепенно прехвърляне, както можете да видите в горния изход, че прехвърля само новите или актуализираните файлове.

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

Докато копираме, можем също да посочим максималния размер на файловете, които могат да бъдат копирани с опцията –max-size. Например, за да копирате файловете не по -големи от 2000k от ~/Downloads в директорията ~/Documents, командата ще бъде:

$rsync-да се -максимален размер= 2000 хиляди/У дома/вярвам/Изтегляния/ * /У дома/вярвам/Документи

Тази команда ще копира всички файлове от директорията ~/Downloads в ~/Documents, с изключение на тези, по -големи от 2000k.

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

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

$rsync-да се -мин. размер= 5M/У дома/вярвам/Изтегляния/ /У дома/вярвам/Документи

Тази команда ще копира всички файлове от ~/Downloads в директорията ~/Documents, с изключение на тези, по -малки от 5M.

Изключване на файлове

Докато копирате файлове от една директория в друга, можете да изключите някои файлове, като използвате опцията —exclude, последвана от името на файла или разширението на типа на файла.

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

$rsync-да се --изключете='*.zip' /У дома/вярвам/Изтегляния/ /У дома/вярвам/Документи

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

С Rsync можете да копирате един файл, множество файлове и директории в отдалечена система. За да копирате файлове и директории от разстояние, ще ви трябва:

  • Rsync е инсталиран както на локална, така и на отдалечена система
  • SSH достъп до отдалечената система
  • Парола за отдалечен потребител

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

$sshremote_user@remote_ip


Общият синтаксис за копиране на файлове и директории в отдалечена система с помощта на rsync:

$rsync[опция] [източник] [отдалечен потребител@remoteip: дестинация]

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

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

По същия начин, за да копирате директорията ~/Downloads/files в локална система с нейната поддиректория и цялото съдържание в директорията ~/Downloads/sample в отдалечената система:

$rsync-rv~/Изтегляния/файлове umra@192.168.72.164:~/Изтегляния/проби

Можете също да копирате файловете и директориите от отдалечената машина на вашата локална машина. Например, за да копирате файл2.txt от отдалечената система на работния плот на локалната система:

$rsync-vУмара@192.168.72.164:~/Изтегляния/file2.txt ~/работен плот/

По същия начин, за да копирате директория от отдалечената система в локалната система

$rsync-rvУмара@192.168.72.164:~/Изтегляния/проба ~/работен плот/тест

Можете също да използвате всички опции като –max-size, –min-size, –exclude и други, докато копирате файлове в/от отдалечената система.

Rsync е чудесен инструмент за копиране на файлове от източник до местоназначение, локално или отдалечено. Той включва голям набор от опции, които ви дават гъвкавост и контрол при прехвърляне на файлове към/от отдалечената система.