Как да архивирате вашата 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 за копиране на съдържанието на директория във вашата резервна дестинация, използвайте следната команда.

  Как да инсталирате OnlyOffice 6.3 на вашия компютър с Linux

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

  Как да хоствате сървър на Minecraft на 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 още веднъж, можем да видим, че няма файлове за прехвърляне, защото няма промени, но все още има някои байтове, прехвърлени напред-назад. Това е количеството данни, което трябва да се прехвърли, за да се сравни списъкът с файлове в целта със списъка с файлове в източника.

  5-те най-добри падащи терминални приложения за 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 ще затвори нано редактора.

Поставяне на приятелско лице на 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 може да направи всичко това вместо вас.