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