Як створити резервну копію системи Linux

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

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

Коли ця ефективність поєднується з його непоганим послужним списком у виконанні копій файлів і синхронізації каталогів з середини 1990-х років, rsync є ідеальним кандидатом для створення резервних копій з командного рядка Linux.

Крім того, існують незалежні програми, які діють як інтерфейс для rsync. Вони надають графічні інтерфейси користувача (GUI) для rsync, які деяким людям може бути легше використовувати.

Чим простіше і швидше зробити резервну копію, тим більша ймовірність, що ви це зробите.

Використання rsync із зовнішнім жорстким диском

Щоб зробити резервну копію ваших даних на зовнішній жорсткий диск, жорсткий диск повинен бути змонтований і доступний для вас. Якщо ви можете писати до нього, то також може rsync. У цьому прикладі зовнішній жорсткий диск USB під назвою SILVERXHD (для «Silver eXternal Hard Drive») підключено до комп’ютера Linux. Він був автоматично змонтований операційною системою.

Вам потрібно буде знати шлях до диска. У GNOME відкрийте браузер файлів Nautilus і знайдіть назву диска на бічній панелі.

Наведіть вказівник миші на назву зовнішнього диска, і підказка покаже шлях до диска.

У цьому прикладі підказка повідомляє, що точка монтування файлової системи на зовнішньому диску — «/media/dave/SILVERXHD».

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

Копіювання вмісту з вихідного каталогу

Щоб використовувати rsync для копіювання вмісту каталогу до місця призначення резервної копії, скористайтеся такою командою.

  Як отримати моніторинг мережі в реальному часі в Linux за допомогою Netdata

Параметр -r (рекурсивний) змушує rsync копіювати всі вкладені підкаталоги та їх вміст. Зверніть увагу, що в кінці слова «SILVERXHD» є похила смуга «/», але на скріншоті вона перенесена до наступного рядка.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/

Відбувається копіювання файлу, і ви повертаєтеся до командного рядка.

Якщо ми подивимося на зовнішній USB-накопичувач, ми побачимо, що каталоги, які знаходяться в каталозі Documents, були скопійовані в корінь зовнішнього диска.

ls

Копіювання вихідного каталогу та його вмісту

Якщо ви хотіли, щоб каталог документів та його вміст було скопійовано на зовнішній диск, видаліть «/» з кінця «/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/

Перевіривши зовнішній диск, ми бачимо, що каталог резервних копій створено, а в цьому каталозі міститься вміст каталогу «/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 буде використано наступним чином, він оптимізує передачі. Він надсилає лише відмінності між файлами, а не цілі файли. Файли без змін ігноруватимуться. Показник прискорення представлятиме співвідношення між невеликою кількістю даних, яку необхідно було передати, до загального розміру файлів.

  Як використовувати та встановити Stremio на Linux

Використання параметра прогресу

Параметр -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 ще раз, ми побачимо, що немає файлів для передачі, оскільки не було змін, але все ще є деякі байти, передані назад і вперед. Це обсяг даних, який потрібно передати, щоб порівняти список файлів на цільовому місці зі списком файлів у джерелі.

  Як використовувати текстовий редактор Nano в Linux

Коефіцієнт прискорення в даному випадку на порядок кращий. На практиці ваші коефіцієнти продуктивності будуть десь між двома нашими псевдоштучними показаннями.

Використання 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 зосереджена на тому, щоб бути візуальною оболонкою для rync. Він забезпечує легкий доступ до параметрів rsync і додає лише обмежений набір нових функцій.

Одне з діалогових вікон налаштування Grsync,

Програма luckyBackup — це набагато більше, ніж проста обгортка для rsync. Це програма резервного копіювання, яка використовує rsync поза лаштунками. Наприклад, luckyBackup може зробити кілька «знімків» вашої резервної копії. Потім ви можете «відкотитися» до версій файлів на будь-якому зі знімків.

Одне з діалогових вікон налаштування luckyBackup.

Щоб встановити Grsync

Щоб встановити Grsync в Ubuntu, скористайтеся цією командою:

sudo apt-get install grsync

Щоб встановити Grsync у Fedora, скористайтеся цією командою:

sudo dnf install grsync

Щоб встановити Grsync в Manaro, скористайтеся цією командою:

sudo pacman -Syu grsync

Щоб встановити luckyBackup

Щоб встановити luckyBackup в Ubuntu, скористайтеся такою командою:

sudo apt-get install luckybackup

Щоб встановити luckyBackup у Fedora, скористайтеся такою командою:

sudo dnf install luckybackup

У Manjaro ви повинні встановити luckyBackup з Репозиторій користувачів Arch (AUR). Ви можете зробити це за допомогою менеджера пакетів pamac.

Не ризикуйте, часто створюйте резервні копії даних

Резервні копії є абсолютно життєво важливими. Часто створюйте резервні копії, створюйте резервні копії в багатьох місцях та на різних носіях. Після налаштування rsync зможе зробити все це за вас.