- 1. Как да използвате rsync
- 2. Как да инсталирате rsync
- 3. Копирайте файлове и копирайте директории с rsync
- 4. Копирайте или синхронизирайте отдалечени папки rsync или отдалечена директория
- 5. Rsync SSH как да се използва
- 6. Rsync показване на хода на прехвърляне на файл или директория
- 7. Включете или изключете rsync директории
- 8. Rsync изтриване на файлове и директории
- 9. Rsync Limit размер на файла
- 10. Rsync изтрийте изходните файлове, ако прехвърлянето беше успешно
- 11. Стартирайте rsync, без да засягате файловете
- 12. Ограничете честотната лента на rsync
- 13. Архивиране с Rsync
- 14. Други параметри на Rsync
Използването на команди в Linux е повече от естествено, тъй като те са сърцето на Linux в продължение на много години, затова трябва да сме наясно с начина, по който използваме тези команди, тъй като, както и някои са практични за основни задачи, други могат да бъдат опасни, ако не ги управляваме правилно. Една от най -функционалните команди на Linux е протоколът rsync, който Solvetic ще ви обясни подробно в целия урок. Нека първо да видим какво е rsync.
Понастоящем поддържането на инфраструктура от всякакъв размер без резервно копие може да се счита за лудост, дискът може да се провали по всяко време и можете да загубите толкова ценна информация, колкото счетоводството на компанията. В тази публикация ще говорим за това как да използваме Rsync, един от най -добрите инструменти за архивиране на * nix системи. Ще видим от най -основните до по -напреднали примери със скриптове и примери, които можете да приложите във вашата работна среда. Това ще бъде ръководство, за да знаете как да използвате rysnc.
Необходимостта от същата информация на различни места става все по -силна, защото нашето работно пространство е променливо и искаме инструментите ни да са винаги с нас или дори като резервни мерки.
Какво е rsync?Това е инструмент с отворен код за прехвърляне на файлове и директории между едно и друго място. Неговите предимства се основават главно на компресирането на информацията, която трябва да бъде изпратена, позволява прехвърлянето да се осъществи чрез SSH канал и прехвърля само файловете и части от файлове, които са били променени, вместо да прехвърля целия файл отново, нещо подобно на това, което се случва при прехвърляне на разликите във файл под контрола на версиите на Git.
Командата rsync (Remote Sync) е команда, разработена за копиране и синхронизиране на файлове и директории, отдалечено или локално в Linux или UNIX системи.
С тази команда можем да правим копия от:
- Локално
- Използване на отдалечена обвивка
- Чрез отдалечен демон на rsync
Rsync използваСред различните приложения за rsync са следните:
- Автоматично архивиране на отдалечени сървъри или дискове.
- Отдалечена синхронизация на файлове и директории.
- Общ пренос на файлове.
Предимства на Rsync
- Той е по -бърз от scp (Secure Copy), тъй като rsync използва протокол за качване, който позволява прехвърляне само на разликата между файловете, като за първи път прехвърля целия файл за втори път само промените, които може да съществуват.
- Той е предназначен за отдалечено архивиране.
- Поддържа копиране на всички разрешения за файлове, например собственик, меки групи и твърда връзка.
- Използвайте по -малка честотна лента, като използвате компресия, докато изпращате файлове.
Rsync има функция за делта трансфер, която позволява намаляване на количеството данни, които се изпращат през мрежата, като позволява да се изпращат само разликите между изходните файлове и съществуващите файлове в отдалечената дестинация, затова rsync е идеален за архивиране и дублиране.
Rsync действа в процеса на търсене на файлове, които да бъдат прехвърлени, използвайки алгоритъм lqquick checkqq, който отговаря за търсенето на файлове, които са претърпели някаква модификация.
Функции на RsyncНякои от основните му характеристики са:
- Интегрира функции за изключване на опции, подобни на GNU tar
- Той има поддръжка за копиране на Linux връзки, устройства, собственици, групи и разрешения
- Добавете режим за изключване на CVS, който позволява да се игнорират същите файлове, които CVS би игнорирал в своята функция
- Не изисква привилегии на суперпотребител (root)
- Можем да използваме отдалечена обвивка като ssh или rsh
- Осигурява конвейер за прехвърляне на файлове за минимизиране на разходите за латентност на мрежата
- Поддържа удостоверени или анонимни демони на rsync
- Той е по -бърз от scp
Ще видим как да използваме rsync и rsync параметри, за да можем да изпълняваме задачи като rsync копиране само на нови файлове или rsync изтриване на целеви файлове.
1. Как да използвате rsync
Синтаксисът за използване на тази команда е следният:
дестинация на ресурса на опциите за rsyncRsync променливиИзползвайки този синтаксис, можем да добавим някои променливи като:
- -v: подробен режим.
- -r: Тази опция копира данните рекурсивно, без да оставя времеви маркировки и разрешение по време на процеса.
- -a: файлов режим, който позволява рекурсивно копиране на файлове и запазва символични връзки, разрешения за файлове, собственост на потребители и групи и часови марки.
- -z: Тази опция компресира данните във файла.
- -h: четим от човека режим, изходни числа в четим от човека формат.
Сега нека видим няколко примера за това как да използваме тази команда. В края на урока Solvetic ще ви даде други параметри за използване на rsync в Linux.
2. Как да инсталирате rsync
Етап 1
В повечето съвременни системи rsync е инсталиран по подразбиране, но ако не е, можем да изпълним следното:
yum install rsync (Red Hat - CentOS - Fedora) apt -get install rsync (Debian - Ubuntu)
Увеличете
Стъпка 2
Във всеки случай трябва да потвърдим инсталирането на rsync, в някои системи като Ubuntu 20 той вече идва по подразбиране:
3. Копирайте файлове и копирайте директории с rsync
Първото използване на rsync е да копирате или синхронизирате файл или директория локално. Нека да видим как да копирате rsync файлове, да копирате директории с rsync и да синхронизирате две директории с rsync.
Етап 1
За целта ще изпълним следното
rsync -zvh "файл" "дестинация"
Стъпка 2
Там можем да видим подробности като:
- Изпратени данни
- Количество получени данни
- Скорост на трансфер
- Общ размер
Стъпка 3
Ако случаят е да копирате директория локално, ще изпълним следното:
rsync -zvh "директория" "дестинация"
4. Копирайте или синхронизирайте отдалечени папки rsync или отдалечена директория
Етап 1
Можем да копираме или синхронизираме файлове локално на отдалечен компютър, за това ще използваме следния синтаксис:
rsync -avz файл / [email protected]: / destination /
Стъпка 2
Всеки път, когато използваме отдалечения IP, трябва да въведем основната парола на споменатия отдалечен компютър. Сега, ако ще копираме отдалечена директория на нашия локален сървър, ще използваме следния синтаксис:
rsync -azvh [email protected]: / destination / директория /
5. Rsync SSH как да се използва
SSH (Secure Shell) е допълнителен механизъм за защита за пренос на данни, което се постига, тъй като SSH използва защитена връзка с високо стандартизирано криптиране.
Етап 1
Ако ще копираме локален файл на отдалечен компютър със SSH, трябва да използваме опцията "-e" с името на протокола, който искате да използвате:
rsync -avzhe ssh [email protected]: / destination / директория
Стъпка 2
За да копирате локален файл на отдалечен сървър, ще използваме следния синтаксис:
rsync -avzhe ssh "файл" [email protected]: / destination /
Стъпка 3
Можем да потвърдим в отдалечената директория, че файлът или директорията са копирани:
Увеличете
6. Rsync показване на хода на прехвърляне на файл или директория
Това е метод за по -добро управление на трансфера, това се постига с параметъра -progress:
rsync -avzhe ssh --progress / source [email protected]: / destination
7. Включете или изключете rsync директории
Опциите -include и -exclude са опции, които ни позволяват да включваме или изключваме файлове, също така ни позволяват да посочим файловете или директориите, които да включим в синхронизирането, или да изключим файлове и папки, които не трябва да се прехвърлят.
Използването му е както следва:
rsync -avze ssh --включва "Писмо *" -изключва " *" [email protected]: / destination
8. Rsync изтриване на файлове и директории
В случай, че файл или директория не е в източника, но вече е наличен в местоназначението, можем да изтрием този файл или директория по време на процеса на синхронизация, за това можем да използваме -delete, за да изтрием елементите, които не са в целевия компютър, ще изпълним следното:
rsync -avz --delete [email protected]: / destination
9. Rsync Limit размер на файла
С параметъра -max -size можем да посочим кой е максималният размер на обектите за прехвърляне с rsync, това помага да се контролира отдалеченото пространство:
rsync -avzhe ssh --max -size = '300k' / source / [email protected]: / destination
10. Rsync изтрийте изходните файлове, ако прехвърлянето беше успешно
С променливата -remove-source-files е възможно файловете, които са били синхронизирани в източника, да бъдат елиминирани само ако целият процес е бил правилен, за това ще използваме следното. Виждаме, че изходният файл е изтрит.
rsync --remove-source-files -zvh "файл" / дестинация /
11. Стартирайте rsync, без да засягате файловете
Това е идеален вариант за хора, които не знаят напълно силата на rsync, тъй като показва какво ще прави командата, но не влияе върху произхода, това се постига например с параметъра -dry -run. Можем да видим, че файлът все още е там.
rsync --dry-run --remove-source-files -zvh "файл" / дестинация /
12. Ограничете честотната лента на rsync
С параметъра -bwlimit ще бъде възможно да се определи коя скорост на мрежата rsync трябва да използва за задачи за синхронизация, това се постига по следния начин:
rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination
13. Архивиране с Rsync
Понякога трябва да архивираме определена информация, преди да направим промени и в случай на грешка при възстановяване от Backup, ще започнем с лабораторно архивиране от една папка в друга. По този начин ще създадем резервно копие с rsync по пълен и безопасен начин.
Етап 1
Започваме, като проверяваме дали rsync е инсталиран.
[потребител @ Solvetic ~] $ който rsync / usr / bin / rsyncСтъпка 2
Ще създадем 2 папки за източника и местоназначението на файловете.
mkdir {backup1, backup2}Стъпка 3
Създаваме няколко файла в папката backup1, в този случай размерът на файловете няма значение.
[потребител @ Solvetic ~] $ touch backup1 / файл {1… 75}Стъпка 4
Директорията трябва да съдържа 75 файла. Правим резервно копие.
[потребител @ Solvetic ~] $ ls бекъп1 / файл1 файл14 файл19 файл23 файл28 файл32 файл37 файл41 файл46 файл50 файл50 файл55 файл6 файл64 файл69 файл73 файл10 файл15 файл2 файл24 файл29 файл33 файл38 файл38 файл42 файл47 файл51 файл50 файл60 файл65 файл7 файл74 файл11 файл16 файл20 файл25 файл25 файл3 файл34 файл39 файл43 файл48 файл52 файл57 файл61 файл66 файл66 файл70 файл75 файл12 файл17 файл21 файл21 файл26 файл30 файл35 файл4 файл44 файл49 файл49 файл53 файл58 файл62 файл67 файл67 файл71 файл8 файл13 файл18 файл22 файл27 файл31 файл36 файл40 файл40 файл45 файл5 файл54 файл59 файл63 файл68 файл72 файл9Стъпка 5
Използваме за архивиране на файловете в backup2. Източникът трябва да завърши на / в противен случай би копирал папката си, а не съдържанието.
rsync -r backup1 / backup2Стъпка 6
Ако влезем в backup2, можем да видим 75 -те файла, които дори можем да проверим, че те са 2 идентични директории, използващи diff.
[потребител @ Solvetic ~] $ diff backup1 backup2Стъпка 7
В случай на създаване на софтуерна връзка от файл в директория 1
ln -s файл30 файл100Стъпка 8
Използването на rsync с -r няма да синхронизира softlink в този случай, който използваме. Ако погледнем този път, ще имаме синхронизиране на софтуерната връзка.
rsync -a backup1 / backup2ЗабележкаАко не сме сигурни какво ще поддържаме, можем да използваме симулация с -n и заедно с -v може да бъде много полезно.
[потребител @ Solvetic ~] $ rsync -anv backup1 / backup2 изпращане на допълнителен списък с файлове изпратен 606 байта получени 12 байта 1236.00 байта / сек общ размер е 6 ускоряване е 0,01 (DRY RUN)
14. Други параметри на Rsync
Както споменахме, това са някои от допълнителните параметри, които да се използват с rsync в Linux:
Параметри на Rsync
- -t, --times: запазване на промените във времето
- -g, --group: запазване на групи
- -o, --owner: запазете собственика на обекта
- -B, --block-size = SIZE: форсира фиксиран размер на блока с контролна сума
- T, --temp-dir = DIR: тази стойност създава временни файлове в директорията DIR
- z, --compress: компресирайте файловите данни по време на прехвърлянето
- -4, --ipv4: използвайте само IPv4
- -6, --ipv6: използвайте само IPv6
Има много повече променливи, но те са повече от достатъчни, за да извлечете максимума от rsync в Linux. Видяхме как да използваме rsync с най-полезните опции, заедно с инструменти като cron и bash скриптове, python ще имаме всичко необходимо, за да правим резервни копия, без да имаме нужда от инструменти на трети страни.