Terminal Tuts

Топ 20 примера за Rsync в Linux

Топ 20 примера за Rsync в Linux

Командата Rsync (отдалечена синхронизация) е помощна програма за Linux / Unix, използвана за синхронизиране и копиране на файлове и директории локално или отдалечено. Повечето отрепки на Linux използват Rsync за отразяване, архивиране или мигриране на данни между папки, дискове и мрежи. Една забележителна характеристика на командата Rsync е, че тя използва алгоритъма за прехвърляне на делта.”

Алгоритъмът Delta Transfer работи, като актуализира директорията на дестинацията със съдържанието на дестинацията източник. Ако в директорията източник е създадена промяна или нов файл, само конкретната промяна ще бъде копирана в директорията на местоназначението, когато стартирате командата Rsync. За да синхронизира файлове и директории между локалната и отдалечената машина, Rsync използва SSH.

Инсталиране на Rsync в Linux

Командата Rsync е предварително инсталирана в повечето операционни системи Linux. Това обаче може да не е така при някои минимални инсталации. Можете да инсталирате Rsync, като изпълните командите по-долу в терминал.

На CentOS & RHEL

yum инсталирате rsync -y

На Ubuntu и други дистрибуции на Debian

sudo apt install rsync -y

Rsync Основен синтаксис

rsync опции източник дестинация

Някои от стандартните опции / параметри, използвани с командата Rsync:

-v: -вербозен подробен изход
-r: копира данни рекурсивно
-z: компресиране на файлове
-h: Дава изход във формат, четим от човека
-a: архивни файлове и директория при синхронизиране
-progress Показва напредъка на изпълняваните в момента задачи на Rsync.

Можете да видите всички опции, налични за командата Rsync, като използвате опцията “-help”.

$ rsync --помощ

Rsync помощна команда

Топ 20 примера за Rsync в Linux

Имайки предвид тази подробна информация, нека започнем с 20 полезни команди за пример на Rsync, които можете да използвате с Linux системи. Нашата избрана операционна система е Ubuntu 20.04 LTS; синтаксисът обаче трябва да работи и за други дистрибуции на Linux с инсталиран Rsync.

1. Копирайте / синхронизирайте файлове локално с опция -v (подробно)

Това е най-основната команда за Rsync, дори за начинаещ. В този пример ще копираме файлове между 'Оригинален'директория на работния плот към'Архивиране'директория в' / etc.папка. Ще включим опцията -v (Многословен), за да може rsync да предостави информация за това, което се случва.

rsync -v оригинал /

rsync -v (подробна) команда

Едно нещо, което трябва да се отбележи при Rsync е, че ако директорията на местоназначението не съществува, тя автоматично ще я създаде. Нека видим примера по-долу, където искаме да копираме файлове в директорията “Фос”, Което не съществува.

Създайте директория с Rsync

2. Синхронизиране / копиране на файлове и директории рекурсивно с опция -r

В горната команда, ако в 'Оригинален, тя ще бъде пропусната. Това е илюстрирано на изображението по-долу.

Основна команда Rsync

За да преодолеете това, използвайте опцията -r (рекурсивна).

Синхронизирайте файлове рекурсивно с -r

3. Синхронизиране / копиране на файлове между локалната машина и отдалечената машина

Преди да изпълните тази задача, има няколко параметъра, които трябва да знаете за отдалечения сървър / машина: IP-адресът, потребителското име и потребителската парола.

Основният синтаксис, който ще използваме, е:

rsync [опции] [файлове] [отдалечено потребителско име] @ [ip-адрес]: / [дестинация]

Нека копираме файлове от нашата 'Оригинален'директория на работния плот към отдалечен сървър.

Синхронизирайте / копирайте файлове от разстояние с Rsync

4. Синхронизирайте / копирайте файлове и директории от отдалечен сървър на вашия локален компютър

Подобно на предишната команда, ще трябва да знаем IP адреса на отдалечения сървър. В този пример ще синхронизираме файлове в 'Архивиранев домашната директория на сървъра към нашия локален компютър.

rsync -rv tuts @ 192.168.1.64: / home / tuts / Backup / home / tuts / Desktop / Original

Синхронизиране-Копиране на файл от отдалечен сървър на локална машина

5. Използвайте Rsync през SSH с опцията -e

За да гарантираме сигурността на файловете и папките, ще използваме протокола Rsync over Secure Shell (SSH). Освен това, когато предоставя корен / потребителска парола - SSH ще предостави услуги за криптиране, като гарантира, че те са в безопасност.

За да използваме SSH, ще добавим опцията -e, която определя протокола, който искаме да използваме.

 rsync -vre ssh Оригинал / * tuts @ 192.168.1.64: / дома / Tuts

Използвайте Rsync през SSH

6. Покажете напредъка с командата Rsync

В ситуации, когато копирате множество файлове или огромен файл, знаейки, че напредъкът ще бъде ефективен. За щастие rsync разполага с тази опция --напредъкопция.

sudo rsync -rv --progress Original / * / etc / Foss

Показване на напредъка с Rsync

7. Използвайте Rsync с опцията '-include'

Има ситуации, при които искате да синхронизирате само определени файлове. С командата Rsync причинявате '-включва'опция за изпълнение на задачата. В този пример ще синхронизираме само файлове, започващи с буквата „I“.

sudo rsync -vr --включете "I *" Оригинал / / etc / Backup /

Използвайте опцията -include с Rsync

8. Използвайте Rsync с опцията '-exclude', за да игнорирате определени файлове

С Rsync '-изключете, можете да изключите файлове, които не искате да синхронизирате / копирате. В този пример искаме да игнорираме всички файлове, започващи с буквата „I“.

sudo rsync -vr --exclude 'I *' Original / / etc / Backup /

Използвайте Rsync с опцията '-exclude'

Като алтернатива можете да използвате и двете опции в една команда. Вижте примера по-долу.

sudo rsync -vr --exclude '*' --include 'I *' Original / / etc / Backup /

Изключваме всички файлове освен тези, които започват с буквата „I.'

Използвайте опциите -include и -exclude

9. Използвайте Rsync с командата -delete

Има ситуации, в които в целевата директория има файлове, но не и в папката източник. За синхронизация най-добре би било първо да премахнете такива файлове от целевата директория. За щастие, Rsync идва с-Изтрийопция, която прави това автоматично.

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

rsync -vr --delete / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Архивиране

Използвайте Rsync с опцията за изтриване

10. Задайте максималния размер на файловете за прехвърляне с Rsync

Ако се занимавате с място за съхранение или честотна лента за отдалечена синхронизация на файлове, трябва да използвате опцията '-max-size' с командата Rsync. Тази опция ви позволява да зададете максималния размер на файл, който може да бъде копиран.

Например, '-max-size = 100k'ще прехвърля само данни, равни или по-малки от 100 килобайта.

rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Архивиране

Задайте максимален размер с командата Rsync

11. Автоматично изтриване на изходни файлове след успешно прехвърляне

Вземете ситуация, в която имате отдалечен сървър за архивиране и директория за архивиране на вашия компютър. Архивирате данни в папката за архивиране на вашия компютър, преди да ги синхронизирате с Backup-сървъра. След всяка синхронизация ще трябва да изтриете данните в директорията за архивиране.

За щастие можете да направите това автоматично с '--remove-source-filesопция.

Изтрийте изходните файлове след успешно прехвърляне

Изпълнявайки команда 'ls' в папката източник, ние потвърждаваме, че файловете наистина са изтрити.

12. Извършете бягане на сухо с Rsync

За начинаещи, които не са сигурни с командата Rsync, можете да объркате съдържанието на вашата дестинация на местоназначение и отмяната може да бъде толкова досадна. С-суха тренировка'опцията, командата Rsync ще ви даде изход за това, което ще бъде изпълнено, но няма да го направи.

Следователно, можете да разгледате този изход, ако това, което очаквате, преди да премахнете "-суха тренировкаопция.

rsync -vr --dry-run Оригинал / * tuts @ 192.168.1.64: / home / tuts / Архивиране

Извършете сухо бягане с Rsync

13. Задайте ограничение на честотната лента, необходимо за прехвърляне на файлове.

Ако сте в споделена мрежа или изпълнявате няколко програми, които се нуждаят от интернет връзка, би било ефективно да зададете ограничение на честотната лента, необходимо за синхронизиране / копиране на файлове от разстояние. Можем да направим това с Rsync '-bwlimitопция.

Тази скорост се изчислява в килобайта. Следователно, когато-bwlimit = 1000'означава, че само 1000Kb могат да бъдат прехвърлени в секунда.

rsync -vr --bwlimit = 1000 Оригинал / * tuts @ 192.168.1.64: / home / tuts / Архивиране

Задайте ограничение на честотната лента, необходимо за прехвърляне на файлове

14. Синхронизирайте всички файлове с Rsync

По подразбиране Rsync синхронизира само модифицираните блокове и байтове. Следователно, ако сте синхронизирали текстов файл преди и по-късно сте добавили някои текстове към изходния файл, когато синхронизирате, само вмъкнатият текст ще бъде копиран. Ако искате да синхронизирате целия файл отново, ще трябва да използвате опцията '-W'.

rsync -vrW Original / * tuts @ 192.168.1.64: / home / tuts / Архивиране

Синхронизирайте цял файл с Rsync

15. Не синхронизирайте / копирайте модифицирани файлове в целевата директория

Има ситуации, при които сте направили модификации на файлове, намиращи се в целевата папка. Ако изпълните команда Rsync, тези модификации ще бъдат заменени от тези в изходния файл. За да избегнете такива, използвайте опцията '-u'.

rsync -vu Оригинал / * tuts @ 192.168.1.64: / home / tuts / Архивиране

Използвайте опцията 'u', за да избегнете модифициране на файлове в папката Destination

16. Използвайте опцията Rsync с -i, за да видите разликата във файловете между източника и местоназначението

Ако искате да знаете какви нови промени ще бъдат направени в директорията на местоназначението, използвайте опцията '-i', която ще покаже разликата във файловете между директорията източник и цел.

rsync -avzi Оригинал / Архивиране /

Използвайте опцията -i, за да видите разликата във файловете

Оформете изхода в изображението по-горе и ние виждаме файл, наречен 'здравей.пи не присъства в директорията на местоназначението. Нека разгледаме някои от тези параметри.

d: показва промяна в целевия файл
f: представлява файл
t: показва промяна във времевите марки
s: показва промяна в размера на файла

17. Използвайте Rsync, за да копирате само структурата на директория

Можете да използвате Rsync, за да синхронизирате само структурата на директориите, ако не се интересувате от файловете. Ще трябва да използваме параметрите -f ”+ * /” -f ”- *” преди директорията източник.

rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /

Използвайте Rsync, за да копирате структура на директория

18. Добавяне на печат за дата към име на директория

Ако искате да проследите кога са извършени прехвърляния, без да се отварят свойствата на директорията, можете лесно да добавите дата към името на директорията. Това ще добави клеймо за дата към всички синхронизации, които правите с Rsync.

За целта ще добавим $ (дата + \\% Y - \\% m - \\% d) към директорията на местоназначението.

sudo rsync -rv Оригинал / / etc / $ (дата + \\% Y - \\% m - \\% d)

Добавете печат за дата в директория

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

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

rsync -v Оригинал / heloo.py Архивиране /

Синхронизирайте един файл локално

20. Копиране на множество файлове от разстояние

За да копирате няколко файла едновременно, ще трябва да предоставите пътя към всички тях. Този метод е ефективен само за малък брой файлове.

rsync -vr / home / tuts / Desktop / Original / heloo.py / home / tuts / Desktop / Backup / index.html tuts @ 192.168.1.64: / home / tuts / Архивиране

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

Това е всичко за топ 20 полезни примера за Rsync, които ще ви позволят да синхронизирате файлове и директории както локално, така и отдалечено. Чувствайте се свободни да оставите вашите отзиви и коментари по-долу.

Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...
Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...
Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...