Поиск по сайту:

Как создать резервную копию вашей системы Linux с помощью rsync


Не рискуйте потерей данных. Сделайте резервную копию ценных данных из командной строки 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 для копирования содержимого каталога в место назначения резервного копирования, используйте следующую команду.

Параметр -r (рекурсивный) заставляет rsync копировать все вложенные подкаталоги и их содержимое. Обратите внимание, что в конце слова «SILVERXHD» стоит косая черта «/», но на снимке экрана она перенесена на следующую строку.

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

Происходит копирование файла, и вы возвращаетесь в командную строку.

Если мы посмотрим на внешний USB-накопитель, мы увидим, что каталоги, находящиеся в каталоге «Документы», были скопированы в корень внешнего диска.

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

Использование опции «Прогресс»

Параметр -P (прогресс) заставляет rsync генерировать небольшой отчет о ходе выполнения после копирования каждого файла.

rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Предоставленную информацию можно увидеть между каждым скопированным файлом.

Предоставляемая информация:

  • Размер в байтах: данные, переданные для этого файла.
  • Процент: процент переданного файла.
  • Б/с: скорость передачи данных.
  • Осталось времени: расчетное время, оставшееся до передачи этого файла.
  • 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/ dave@sulaco.local:/home/dave/Backups/

Вам будет предложено ввести пароль учетной записи пользователя на удаленном компьютере. Это не ваш пароль на исходной машине.

Резервное копирование будет выполнено как обычно. Пропускная способность не такая высокая, как при обычном сетевом соединении, из-за шифрования и дешифрования, которые происходят в безопасном соединении оболочки.

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

Мы можем легко создавать автоматические резервные копии, добавляя записи в ваш файл crontab.

crontab -e

Мы настроим автоматическое резервное копирование каждый день в 04:30 (если, конечно, компьютер в это время включен). Синтаксис команды rsync совсем не изменился.

Ctrl+O запишет ваши изменения в файл, а Ctrl+X закроет редактор nano.

Добавление дружелюбного лица в Rsync

Люди, которые менее знакомы с командной строкой, могут использовать одну из нескольких программ, которые помещают графический пользовательский интерфейс (GUI) в rsync. Два хороших примера — luckyBackup и Grsync. Обе эти программы позволяют выбирать многие параметры rsync через пользовательский интерфейс.

Программа Grsync сосредоточена на том, чтобы быть визуальной оболочкой для rync. Он обеспечивает легкий доступ к параметрам rsync и добавляет лишь ограниченный набор новых функций.

Программа luckyBackup — это гораздо больше, чем просто оболочка для rsync. Это программа резервного копирования, которая использует rsync за кулисами. Например, luckyBackup может сделать несколько «моментальных снимков» вашей резервной копии. Затем вы можете «откатиться» к версиям файлов в любом из снимков.

Чтобы установить Грсинк

Чтобы установить Grsync в Ubuntu, используйте эту команду:

sudo apt-get install grsync

Чтобы установить Grsync в Fedora, используйте эту команду:

sudo dnf install grsync

Чтобы установить Grsync в Манаро, используйте эту команду:

sudo pacman -Syu grsync

Чтобы установить LuckyBackup

Чтобы установить luckyBackup в Ubuntu, используйте следующую команду:

sudo apt-get install luckybackup

Чтобы установить luckyBackup в Fedora, используйте следующую команду:

sudo dnf install luckybackup

В Manjaro необходимо установить luckyBackup из пользовательского репозитория Arch (AUR). Вы можете сделать это с помощью менеджера пакетов pamac.

Не рискуйте, чаще создавайте резервные копии данных

Резервные копии абсолютно необходимы. Часто создавайте резервные копии, выполняйте резервное копирование во множество мест и на разные носители. После настройки rsync может сделать все это за вас.

RELATED: Best Linux Laptops for Developers and Enthusiasts