Не варто легковажити безпекою ваших даних. Забезпечте їх збереження, створивши резервні копії за допомогою командного рядка Linux. Ми розглянемо використання команди rsync
, а також познайомимо вас із корисними графічними інтерфейсами для неї.
Існує безліч методів резервного копіювання, але ми хочемо представити вам надійний, гнучкий і перевірений спосіб захисту вашої інформації. Наш вибір – rsync
. Ця команда має ефективні алгоритми, які аналізують різниці між файлами у вихідній та цільовій директоріях. Завдяки цьому передаються лише зміни, а не цілі файли, що значно заощаджує час та трафік.
Ефективність rsync
у поєднанні з її довгим досвідом у копіюванні файлів та синхронізації каталогів (з 1990-х років) робить її ідеальним інструментом для резервного копіювання через командний рядок Linux.
Крім того, існують незалежні програми, які служать як інтерфейси для rsync
, надаючи графічні оболонки (GUI) для тих, хто віддає перевагу візуальним інструментам.
Чим простішим і швидшим є процес резервного копіювання, тим більша ймовірність того, що ви будете робити його регулярно.
Використання rsync
із зовнішнім жорстким диском
Щоб створити резервну копію даних на зовнішній диск, переконайтеся, що він підключений та змонтований. Якщо ви маєте доступ на запис до диска, то й rsync
також зможе туди записувати. У нашому прикладі, ми будемо використовувати зовнішній USB-диск з назвою SILVERXHD (скорочено від “Silver eXternal Hard Drive”), який автоматично змонтувала операційна система.
Вам потрібно дізнатися шлях до цього диска. У GNOME, відкрийте файловий менеджер Nautilus і знайдіть назву диска на бічній панелі.
Наведіть курсор миші на назву зовнішнього диска, і підказка покаже його шлях.
У цьому прикладі, підказка повідомляє, що точка монтування файлової системи зовнішнього диска – /media/dave/SILVERXHD
.
Якщо ваш файловий менеджер не показує підказку, перейдіть на зовнішній диск та відкрийте там вікно терміналу. Використайте команду pwd
, щоб вивести поточний шлях у термінал.
Копіювання вмісту каталогу
Щоб скопіювати вміст каталогу в місце призначення для резервної копії, використовуйте наступну команду:
Опція -r
(рекурсивна) змушує rsync
копіювати всі вкладені підкаталоги та їх вміст. Зверніть увагу на косу риску /
в кінці SILVERXHD/
.
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/
Файли будуть скопійовані, і ви повернетеся до командного рядка.
Перевіривши зовнішній диск, ви побачите, що каталоги, які були всередині папки “Documents”, скопійовано у корінь зовнішнього диска.
ls
Копіювання каталогу та його вмісту
Якщо ви хочете скопіювати всю папку “Documents” та її вміст на зовнішній диск, приберіть /
в кінці /home/dave/Documents
, ось так:
rsync -r /home/dave/Documents /media/dave/SILVERXHD/
Для чіткості, ми видалили раніше скопійовані папки із зовнішнього диска перед виконанням цієї команди.
Після завершення другого копіювання, на зовнішньому диску ви побачите папку “Documents”. Вміст цієї папки знаходиться всередині неї, а не в корені диска.
Копіювання у певний каталог
Для копіювання у певну папку на цільовому диску, додайте назву цієї папки до шляху. Наприклад, припустимо, ми хочемо скопіювати вміст /home/dave/Documents
у папку “backups” на зовнішньому диску.
Ми б використали таку команду:
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/
Перевіривши зовнішній диск, ми побачимо, що створено папку “backups”, а в ній знаходиться вміст каталогу /home/dave/Documents
.
ls
ls backups
Збереження прав власності та дозволів файлів
Використайте опцію -a
(архів), щоб зберегти такі атрибути файлів, як дати модифікації, права власності, дозволи доступу, а також копіювати символічні посилання та спеціальні блокові файли.
rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/
Використання докладного режиму
Опція -v
(докладний) змушує rsync
виводити на екран перелік файлів під час їх копіювання.
rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/
Після завершення копіювання, ви отримаєте підсумок.
Надіслано: кількість байтів, переданих на ціль.
Отримано: кількість байтів, отриманих на хості.
Байт/сек: ефективна швидкість передачі.
Загальний розмір: розмір даних, які були б передані, якби ви не використовували rsync
. Під час наступних запусків rsync
передаватиме лише відмінності. Ця цифра показує, скільки даних не потрібно передавати.
Прискорення: це співвідношення між кількістю даних, які потрібно передати, та загальним обсягом даних. Якщо rsync
потрібно скопіювати всі файли повністю (наприклад, при першому запуску), прискорення буде 1.0. При наступних запусках, rsync
оптимізує передачу, надсилаючи лише відмінності. Файли без змін ігноруються. Показник прискорення показує відношення між малою кількістю переданих даних до загального розміру файлів.
Використання параметра прогресу
Опція -P
(прогрес) змушує rsync
показувати звіт про хід копіювання кожного файлу.
rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/
Інформація виводиться між кожним скопійованим файлом.
Розмір байтів: дані, передані для поточного файлу.
Відсоток: відсоток переданого файлу.
B/s: швидкість передачі даних.
Залишився час: приблизний час, що залишився для передачі файлу.
xfr#: кількість файлів, переданих на даний момент.
to-chk: кількість файлів, що залишилися для перевірки та оптимізації.
Прискорення передачі
Для прискорення передачі, використовуйте опцію -z
(стиснення). Вона стискає файл під час передачі, але файл зберігається без стиснення на цільовому диску.
Опція стиснення не дасть великого ефекту при передачі малих файлів. Для колекцій великих файлів, вона може значно зменшити час передачі.
Тут ми також використовуємо опцію --partial
. rsync
видаляє частково передані файли, спричинені перебоями в мережі. --partial
змушує rsync
залишати їх. При повторному запуску rsync
не потрібно буде знову передавати ці частково передані файли.
Зауважте, що цю опцію варто використовувати обережно, якщо є ризик того, що хтось може сплутати частково передані файли з повністю переданими.
rsync -ravz --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/
У нашому прикладі, приріст продуктивності є незначним.
Коефіцієнт прискорення покращився, але лише на декілька сотих відсотка! У реальних умовах покращення швидкості можуть бути значно більшими.
Використання rsync
через мережу
Досі ми використовували зовнішній USB-диск. Щоб використовувати мережеве розташування як ціль для резервного копіювання, вкажіть шлях до цього розташування в командному рядку. У нас є мережеве сховище даних (NAS) у мережі, в якій проводиться це дослідження.
Ми можемо скористатися тим самим методом, як і раніше, щоб визначити шлях до NAS, навівши курсор миші на підключення до пристрою в Nautilus.
Немає спеціальних опцій для резервного копіювання через мережу, використовуються ті самі варіанти, що й раніше.
rsync -ravz --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/
Формат виводу не відрізняється.
Не дивно, що швидкість передачі значно зросла.
Якщо ми запустимо rsync
ще раз, ми побачимо, що немає файлів для передачі, оскільки не було змін, але все ще є невелика кількість байтів, переданих туди-назад. Це об’єм даних, необхідний для порівняння списку файлів на цілі з файлами на джерелі.
Коефіцієнт прискорення в цьому випадку значно вищий. На практиці ваші коефіцієнти продуктивності будуть десь між двома нашими штучними значеннями.
Використання rsync
через SSH
rsync
підтримує резервне копіювання через SSH-з’єднання. Потрібно вказати ім’я облікового запису користувача та розташування SSH в командному рядку. Тут ми використовуємо мережеву назву, але також можна використовувати IP-адресу.
Зверніть увагу на :
між деталями з’єднання SSH і початком шляху в мережі на віддаленій цільовій точці.
rsync -ravz --partial /home/dave/Documents/ [email protected]:/home/dave/Backups/
Система попросить ввести пароль облікового запису користувача на віддаленому комп’ютері. Це не ваш пароль на вихідному комп’ютері.
Резервне копіювання завершиться як зазвичай. Пропускна здатність не така висока, як у звичайному мережевому з’єднанні, через шифрування та дешифрування, які відбуваються у захищеному з’єднанні.
Автоматизація резервного копіювання
Можна легко автоматизувати резервне копіювання, додавши записи до вашого файлу crontab.
crontab -e
Налаштуємо автоматичне резервне копіювання, яке запускатиметься щодня о 04:30 (якщо комп’ютер увімкнений в цей час). Синтаксис команди rsync
залишається без змін.
Натисніть Ctrl+O, щоб записати зміни у файлі, а Ctrl+X, щоб закрити редактор nano.
Інтерфейс для rsync
Ті, хто не знайомий з командним рядком, можуть скористатися різними програмами з графічним інтерфейсом користувача (GUI) для rsync
. Двома хорошими прикладами є luckyBackup та Grsync. Обидві програми дозволяють вибирати різні опції rsync
через графічний інтерфейс.
Програма Grsync робить акцент на візуальній оболонці для rsync
, вона забезпечує легкий доступ до параметрів rsync
та додає лише обмежену кількість нових функцій.
Одне з вікон налаштувань Grsync.
Програма luckyBackup є набагато більшою, ніж проста оболонка для rsync
. Це програма резервного копіювання, яка використовує rsync
в фоновому режимі. Наприклад, luckyBackup може робити кілька “знімків” вашої резервної копії. Потім можна “відкотитися” до версій файлів з будь-якого з цих знімків.
Одне з вікон налаштувань luckyBackup.
Встановлення Grsync
Щоб встановити Grsync в Ubuntu, виконайте команду:
sudo apt-get install grsync
Щоб встановити Grsync у Fedora, виконайте команду:
sudo dnf install grsync
Щоб встановити Grsync у Manjaro, виконайте команду:
sudo pacman -Syu grsync
Встановлення luckyBackup
Щоб встановити luckyBackup в Ubuntu, виконайте команду:
sudo apt-get install luckybackup
Щоб встановити luckyBackup у Fedora, виконайте команду:
sudo dnf install luckybackup
У Manjaro вам потрібно встановити luckyBackup з Arch User Repository (AUR). Зробити це можна за допомогою менеджера пакунків pamac.
Не ризикуйте, робіть резервні копії регулярно
Резервне копіювання – це надзвичайно важливий процес. Робіть резервні копії часто, зберігайте їх у багатьох місцях та на різних носіях. Після налаштування rsync
, він допоможе вам в цьому.