Як використовувати rsync для резервного копіювання ваших даних на Linux

Зміст:

Як використовувати rsync для резервного копіювання ваших даних на Linux
Як використовувати rsync для резервного копіювання ваших даних на Linux

Відео: Як використовувати rsync для резервного копіювання ваших даних на Linux

Відео: Як використовувати rsync для резервного копіювання ваших даних на Linux
Відео: Интернет работает, а браузер не грузит страницы. Не удается получить доступ к сайту - YouTube 2023, Грудень
Anonim
rsync - це протокол, побудований для Unix-подібних систем, що забезпечує неймовірну універсальність для резервного копіювання та синхронізації даних. Він може бути використаний локально для резервного копіювання файлів у різні каталоги або може бути налаштований для синхронізації через Інтернет для інших вузлів.
rsync - це протокол, побудований для Unix-подібних систем, що забезпечує неймовірну універсальність для резервного копіювання та синхронізації даних. Він може бути використаний локально для резервного копіювання файлів у різні каталоги або може бути налаштований для синхронізації через Інтернет для інших вузлів.

Він може використовуватися в системах Windows, але доступний лише через різні порти (наприклад, Cygwin), тому в цьому випадку ми будемо говорити про налаштування його на Linux. По-перше, нам потрібно встановити / оновити клієнт rsync. На дистрибутивах Red Hat командою є "yum install rsync", а на Debian це "sudo apt-get install rsync".

 Команда Red Hat / CentOS, після входу в систему як root (зауважте, що деякі недавні дистрибутиви Red Hat підтримують метод sudo).
Команда Red Hat / CentOS, після входу в систему як root (зауважте, що деякі недавні дистрибутиви Red Hat підтримують метод sudo).
 Команда Debian / Ubuntu.
Команда Debian / Ubuntu.

Використання rsync для локальних резервних копій

У першій частині цього підручника ми будемо створювати резервні копії файлів з Directory1 до Directory2. Обидва ці каталоги знаходяться на тому ж жорсткому диску, але це буде працювати однаково, якщо каталоги існували на двох різних дисках. Існує кілька різних способів подолання цього, залежно від того, які резервні копії потрібно налаштувати. Для більшості цілей буде достатньо наступного рядка коду:

$ rsync -av --delete /Directory1/ /Directory2/

Наведений вище код буде синхронізувати вміст Directory1 з Directory2 і не залишати відмінностей між двома. Якщо rsync знаходить, що Directory2 має файл, який Directory1 не має, він буде його видалити. Якщо rsync знаходить файл, який був змінений, створений або видалений в Directory1, він відображатиме ці самі зміни в Directory2.

Є багато різних перемикачів, які ви можете використовувати для rsync, щоб персоналізувати його відповідно до ваших конкретних потреб. Ось що говорить вищезазначений код rsync щодо резервних копій:

1. -a = рекурсивний (рекурсивно в каталоги), посилання (копіювати символічні посилання як символьні посилання), perms (збереження дозволів), час (зберегти модифікацію), групу (зберегти групу), власника (зберігати власника), зберігати файли пристрою та зберігати спеціальні файли. 2. -v = докладний. Причина, я думаю, дуже важлива, тому ви можете бачити, як саме резервне копіювання rsync. Подумайте про це. Що робити, якщо ваш жорсткий диск стає поганим і починає видаляти файли без вашого відома, тоді ви запускаєте свій скрипт rsync і виштовхує ці зміни до ваших резервних копій, тим самим видаляючи всі екземпляри файлів, які ви не хотіли отримувати позбутися? 3. -delete = Це повідомляє rsync, щоб видалити будь-які файли, що містяться в Directory2, які не входять в Directory1. Якщо ви вирішите скористатися цією можливістю, я рекомендую також використовувати більш докладні параметри з причин, зазначених вище.

Використовуючи скрипт вище, ось висновок, створений за допомогою rsync для резервного копіювання Directory1 на Directory2. Зауважте, що без активного перемикача ви не отримаєте таку докладну інформацію.

Наведене вище знімок показує, що File1.txt та File2.jpg були виявлені як нові або іншим чином змінені з існуючих в Directory2 копій, і тому вони були резервні копії. Підказка Noob: Зверніть увагу на кінцеві косу риси в кінці каталогів у моїй команді rsync - це необхідно, обов'язково пам'ятайте їх.
Наведене вище знімок показує, що File1.txt та File2.jpg були виявлені як нові або іншим чином змінені з існуючих в Directory2 копій, і тому вони були резервні копії. Підказка Noob: Зверніть увагу на кінцеві косу риси в кінці каталогів у моїй команді rsync - це необхідно, обов'язково пам'ятайте їх.

Ми підемо на кілька інших зручних перемикачів до кінця цього підручника, але просто пам'ятайте, що для перегляду повного списку ви можете ввести "man rsync" і переглянути повний перелік використовуваних комутаторів.

Це стосується обкладинки, що стосується локальних резервних копій. Як ви можете сказати, rsync дуже простий у використанні. Він стає трохи складнішим, коли використовується для синхронізації даних із зовнішнім хостом через Інтернет, але ми покажемо вам простий, швидкий та безпечний спосіб це зробити.

Використання rsync для зовнішніх резервних копій

rsync може бути налаштований декількома способами для зовнішнього резервного копіювання, але ми проведемо найбільш практичний (також найпростіший і безпечний) спосіб туннелювання rsync через SSH. Більшість серверів і навіть багато клієнтів вже мають SSH, і його можна використовувати для резервних копій rsync. Ми покажемо вам процес отримання однієї машини Linux для резервного копіювання іншої локальної мережі. Процес буде точно таким же, якби один хост опинився в Інтернеті деінде, просто зверніть увагу на те, що порт 22 (або будь-який порт, у якому ви встановили SSH), повинні бути переслані на будь-яке мережеве обладнання на стороні сервера речей.

На сервері (комп'ютері, який буде отримувати резервні копії) переконайтеся, що SSH та rsync встановлені.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Все, що потрібно зробити, крім встановлення SSH та rsync на сервері, це налаштування репозиторіїв на сервері, де ви хотіли б резервувати файли, і переконайтеся, що SSH заблоковано. Переконайтеся, що користувачеві, який ви плануєте використовувати, є складний пароль, і може також бути корисним змінити порт, який SSH слухає (за замовчуванням це 22).

Ми будемо виконувати ту саму команду, яку ми зробили для використання rsync на локальному комп'ютері, але включимо необхідні додатки для туннелювання rsync через SSH на сервер у моїй локальній мережі. Для користувача "geek", який підключається до "192.168.235.137" та використовує ті ж самі перемикачі, як вище (-av -delete), ми виконаємо наступне:

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

Якщо у вас SSH прослуховування на деякому порту, крім 22, вам потрібно буде вказати номер порту, наприклад, у цьому прикладі, де я використовую порт 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Як видно з наведеного вище знімка екрана, вивід, наданий при резервному копіюванні через мережу, майже так само, як при резервному копіюванні локально, єдине, що змінюється, - це команда, яку ви використовуєте. Зверніть увагу також, що він пропонує пароль.Це для аутентифікації за допомогою SSH. Ви можете налаштувати RSA-ключі, щоб пропустити цей процес, що також спростить автоматизацію rsync.
Як видно з наведеного вище знімка екрана, вивід, наданий при резервному копіюванні через мережу, майже так само, як при резервному копіюванні локально, єдине, що змінюється, - це команда, яку ви використовуєте. Зверніть увагу також, що він пропонує пароль.Це для аутентифікації за допомогою SSH. Ви можете налаштувати RSA-ключі, щоб пропустити цей процес, що також спростить автоматизацію rsync.

Автоматизація резервних копій rsync

Cron можна використовувати в Linux для автоматизації виконання команд, таких як rsync. Використовуючи Cron, ми можемо використовувати нашу систему Linux для нічних резервних копій, однак часто ви хочете, щоб вони запускалися.

Щоб відредагувати файл таблиці cron для користувача, в який ви ввійшли як, запустіть:

$ crontab -e

Для того, щоб відредагувати цей файл, вам знадобиться знати ві. Введіть "I" для вставки, а потім почніть редагувати файл таблиці cron.

Cron використовує такий синтаксис: хвилина години, години дня, дня місяця, місяця року, дня тижня, команди.

Спочатку це може трохи заплутатися, тому дозвольте мені навести приклад. Наступна команда запускає команду rsync кожен вечір о 10:00:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Перший "0" вказує хвилину години, а "22" вказує 10 вечора. Оскільки ми хочемо, щоб ця команда запускалася щодня, ми залишмо решту полів із зірочками, а потім вставте команду rsync.

Після завершення налаштування Cron, натисніть клавішу Escape, а потім введіть ": wq" (без лапок) і натисніть клавішу Enter. Це дозволить зберегти ваші зміни в vi.

Cron може отримати набагато більш глибокий, ніж це, але продовжувати про це буде поза межами цього посібника. Більшість людей просто хочуть простий щотижневий або щоденний резервний копіювання, і що ми показали, ви можете легко це зробити. Для отримання додаткової інформації про Cron, будь ласка, перегляньте сторінки, присвячені користувачеві.

Інші корисні функції

Ще одна корисна річ, яку ви можете зробити, це зробити резервне копіювання у файлі zip. Вам потрібно буде вказати, де ви хотіли б розмістити файл zip, а потім rsync цього каталогу у ваш каталог резервної копії. Наприклад:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Вищезазначена команда приймає файли з Directory1, поміщає їх у /ZippedFiles/archive.zip, а потім передає rsyncи цього каталогу до Directory2. Спочатку ви можете подумати, що цей метод виявиться неефективним для великих резервних копій, враховуючи, що файл zip буде мінятися щоразу, коли в файл буде зроблено найменшу зміну. Однак rsync передає тільки змінені дані, так що якщо ваш zip-файл становить 10 Гб, а потім ви додаєте текстовий файл до Directory1, rsync дізнається, що це все, що ви додали (хоча це і є в ZIP-файлі), і передавати лише кілька кілобайт змінених даних.
Вищезазначена команда приймає файли з Directory1, поміщає їх у /ZippedFiles/archive.zip, а потім передає rsyncи цього каталогу до Directory2. Спочатку ви можете подумати, що цей метод виявиться неефективним для великих резервних копій, враховуючи, що файл zip буде мінятися щоразу, коли в файл буде зроблено найменшу зміну. Однак rsync передає тільки змінені дані, так що якщо ваш zip-файл становить 10 Гб, а потім ви додаєте текстовий файл до Directory1, rsync дізнається, що це все, що ви додали (хоча це і є в ZIP-файлі), і передавати лише кілька кілобайт змінених даних.

Існує декілька способів шифрування резервних копій rsync. Найпростіший спосіб - встановити шифрування на сам жорсткий диск (той, на який резервні копії ваших файлів). Інший спосіб - шифрувати ваші файли, перш ніж надсилати їх на віддалений сервер (або інший жорсткий диск, незалежно від того, що ви робите для резервного копіювання). Ми розглянемо ці методи в наступних статтях.

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

Рекомендований: