Работа с командата rsync в Linux: Основни принципи и функционалности

Работа с rsync

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

Какво е rsync?

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

Rsync ( Remote Sync ) е най-често използваната команда за копиране и синхронизиране на файлове и директории от разстояние и локално в Linux/Unix системи.

Инсталация на rsync

Преди да започнем да работим с rsync, трябва да се уверим, че той е инсталиран на системата. За повечето Linux дистрибуции rsync е наличен в пакетните репозитории и може да бъде инсталиран с помощта на управляващата система на пакетите (например apt за Debian и Ubuntu или yum за CentOS и Fedora).

Просто изпълнете следната команда:

sudo apt update
sudo apt install rsync

Предимства на командата Rsync

Ефективно прехвърляне на файлове

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

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

rsync поддържа както локално, така и отдалечено прехвърляне на файлове през SSH, което позволява синхронизиране между локални и отдалечени системи или дублиращи директории на множество машини.

Инкрементални архиви

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

Запазва разрешенията за файлове

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

Контрол на честотната лента

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

По-бързо

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

Основни принципи за използване на rsync

Има основно два начина, по които rsync може да копира/синхронизира данни:

Копиране/синхронизиране към/от друг хост през всяка отдалечена обвивка като ssh , rsh .

Копиране/синхронизиране чрез демон rsync с помощта на TCP.

Синтаксисът на Rsync в най-основната си форма изглежда така:

rsync options SOURCE DESTINATION

rsync: Командата rsync.

options: Опционални параметри, които определят поведението на rsync. Тук можете да използвате различни опции, като -a, -v, -z, –delete и други.

SOURCE: Това е указанието за източник на данните, които искате да копирате или синхронизирате. Може да бъде локална директория или път до файл или отдалечен хост, указан посредством SSH.

DESTINATION: Това е опционално и указва мястото, където искате да се копирате или синхронизирате данните. Може да бъде локална директория или път до файл или отдалечен хост, указан посредством SSH.

① Пример:

Копиране на съдържанието от отдалечен сървър на локалната директория:

rsync -e root@10.10.10.10:/root/test /home/fedia/Плот/test/

Тази команда се използва за копиране на съдържанието на директорията /root/test от отдалечен сървър с IP адрес 10.10.10.10, на локалната директория /home/fedia/Плот/test/ на машина, където се изпълнява командата.

Разяснение на опциите и аргументите:

rsync: Командата за копиране и синхронизиране на данни.

-e: Тази опция се използва за посочване на метода за връзка с отдалечения сървър. В този случай, root@10.10.10.10 указва, че ще се свържем със сървъра като потребител root през SSH протокола.

root@10.110.110.110:/root/test: Това е източникът на данните, който ще бъде копиран. Тук се използва root потребителят на отдалечения сървър, за да има достъп до /root/test, която е директория на сървъра.

/home/fedia/Плот/test/: Това е дестинацията, където данните от /root/test на отдалечения сървър ще бъдат копирани. В този случай, данните ще бъдат копирани в директорията /home/fedia/Плот/test/ на локалната машина.

② Пример:

Копиране на съдържанието от локалната директория на отдалечен сървър:

rsync -e ssh Плот/yt.png root@10.10.10.81:/root/test/

Тази команда се използва за копиране на файла yt.png от локалната директория "Плот/" към директорията "/root/test/" на отдалечения сървър с IP адрес 10.10.10.81

Разяснение на опциите и аргументите:

rsync: Командата за копиране и синхронизиране на данни.

-e: Обяснението на тези опции е описано по горе.

Плот/yt.png: Това е локалният източник на данните, който ще бъде копиран на отдалечения сървър. В този случай, копираме само един файл – yt.png от директорията "Плот/".

root@10.10.10.81:/root/test/: Това е отдалечената дестинация, където файлът yt.png ще бъде копиран. В този случай, файлът ще бъде копиран в директорията "/root/test/" на отдалечения сървър с IP адрес 10.10.10.81.

Копиране/синхронизиране на файлове локално

rsync -av /home/fedia/Свалени/78016.jpg /home/fedia/Плот/

Обяснение на опциите и аргументите:

-av: Опциите -a и -v, които определят режима на работа на rsync. Опция -a представлява опция за архивиране и копиране със запазване на пермисиите и други атрибути на файловете, а -v показва подробния прогрес на копирането.

/home/fedia/Свалени/78016.jpg: Това е локалният източник на данните – пътят до файла "78016.jpg" в директорията "/home/fedia/Свалени/".

/home/fedia/Плот/: Това е дестинацията, където файлът "78016.jpg" ще бъде копиран. В този случай, файлът ще бъде копиран в директорията "/home/fedia/Плот/" на същата машина.

Тази команда ще копира файла "78016.jpg" от локалната директория "/home/fedia/Свалени/" в директорията "/home/fedia/Плот/" на същата машина. Така ще имате копие на файла в новата директория "/home/fedia/Плот/".

Друг пример:

rsync -av 78016.jpg text/

Обяснение на опциите и аргументите:

-av: Опциите -a и -v, които определят режима на работа на rsync. Опция -a представлява опция за архивиране и копиране със запазване на пермисиите и други атрибути на файловете, а -v показва подробния прогрес на копирането.

78016.jpg: Това е локалният източник на данните – файла "78016.jpg" в текущата работна директория.

text/: Това е дестинацията, където файла "78016.jpg" ще бъде копиран. В този случай, файлът ще бъде копиран в директорията "text/" в текущата работна директория.

Тази команда ще копира файла "78016.jpg" от текущата работна директория в директорията "text/" в същата работна директория.

Струва си да се спомене, че rsync дава различно третиране на изходните директории с наклонена черта в края ( /). Ако изходната директория има наклонена черта в края, командата ще копира само съдържанието на директорията в целевата директория. Когато крайната наклонена черта е пропусната, rsync копира изходната директория в целевата директория.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: