Как создавать резервные копии файлов и папок в Debian

В мире информационных технологий важно сохранить копию своих данных, чтобы использовать их при необходимости в случае сбоя диска или удаления по ошибке. Поэтому регулярное создание резервных копий в конце дня является хорошей практикой ответственного пользователя компьютера.

Для копирования больших данных обычно используется команда 'rsync'. Однако команда 'cp' также используется при копировании небольшого количества каталогов и файлов на локальной машине.

Необходимые условия

Для работы этого учебника вам необходимо иметь следующее: Две машины Debian с правами root

Резервное копирование каталогов с помощью команды cp

Первая команда, которую мы рассмотрим, - это 'cp'. Она используется для копирования небольшого количества файлов и папок на локальной машине. Поэтому она практически не используется в промышленности.

Синтаксис команды 'cp' следующий.

Для понимания, мы собираемся скопировать файлы с ~/Desktop/index.jpg в /data/backup/ . Выполните следующую команду в терминале.

  • a: Используется для сохранения атрибутов каталога, таких как режим файла, право собственности, метки времени и т.д.
  • r: Используется для рекурсивного копирования каталогов, которые находятся внутри основного каталога.
  • v: Используется для подробного вывода.

Если вы хотите скопировать все файлы, каталоги и подкаталоги в другой каталог, вы можете использовать подстановочный знак *. Например, следующая команда скопирует все данные из существующего каталога Desktop/log/ в Karim/logro/.

Ниже приведен пример вывода.

Использование подстановочного знака в команде копирования

Резервное копирование каталогов с помощью rysnc

Как мы уже говорили, самой распространенной командой для резервного копирования файлов и папок является команда 'rsync'. Поэтому давайте обсудим, что это такое и как она используется.

Что такое rsync?

Rsync расшифровывается как remote sync и была написана Эндрю Триджеллом и Полом Макеррасом 19 июня 1996 года. Это эффективная команда для синхронизации и передачи файлов между локальными и сетевыми машинами. Она доступна по умолчанию в большинстве систем. Однако вы можете установить ее с помощью следующих простых команд, если она недоступна (Выполняйте команды с правами root).

Перед синхронизацией данных вам также необходимо установить клиент и сервер ssh на обеих сетевых машинах. Выполните следующие команды с правами root на обеих машинах Debian.

Резервное копирование каталогов на локальной машине

Основной синтаксис при синхронизации файлов на локальной машине следующий.

Если вы хотите сохранить метаданные, такие как право собственности, разрешения, дата создания и т.д. Вы должны использовать опцию -a. Если вы хотите рекурсивно копировать каталоги внутри каталога, используйте опцию -r.

Аналогично, если вы хотите видеть прогресс в процессе синхронизации, используйте опцию -v. Команды должны выглядеть следующим образом,

Предположим, мы хотим синхронизировать файлы и папки, расположенные по адресу Desktop/log с Karim/logro, команда должна выглядеть следующим образом.

Использование команды rsync для резервного копирования файлов

Давайте обсудим еще один пример и скажем, что у нас есть папка data-1, расположенная на жестком диске 1 (/media/hdd1/data-1), и вы хотите синхронизировать ее со вторым жестким диском по адресу /media/hdd2/. Полная команда должна выглядеть следующим образом.

Команда при выполнении создаст каталог data-1 на втором жестком диске и скопирует все его содержимое по пути назначения /media/hdd2/.

Резервное копирование файлов и каталогов по сети

При передаче данных по сети синтаксис немного отличается. Если вы хотите синхронизировать локальный каталог с удаленным каталогом, команда должна выглядеть следующим образом.

Предположим, у меня есть тестовая папка, расположенная на моей локальной машине по адресу /home/karim/testfolder, и я хочу синхронизировать ее по адресу /home/karim. Удаленный пользователь - 'user', а IP-адрес машины - 10.1.1.2. Выполните следующую команду в терминале.

После выполнения этой команды вам будет предложено ввести пароль удаленной машины.

Если вы хотите синхронизировать удаленный каталог с локальным, команда должна выглядеть следующим образом.

Предположим, у нас есть удаленная папка 'testfolder', расположенная по адресу /home/user/, и я хочу синхронизировать ее с локальной машиной по адресу /home/user/. IP-адрес удаленной машины - 10.1.1.2, а имя пользователя - user.

Выполните следующую команду в терминале.

Как автоматизировать резервное копирование

Удобнее всего автоматизировать резервное копирование, чтобы системным инженерам не нужно было беспокоиться о ручном выполнении команд и создании резервных копий каждый день.

В Linux существует известный инструмент под названием 'crontab', который используется для автоматизации процесса резервного копирования. Мы можем запланировать выполнение всех вышеперечисленных команд ежедневно, еженедельно или ежемесячно. Если вы не установили crontab в своем дистрибутиве Linux, выполните следующие команды в терминале с привилегиями sudo.

После установки crontab выполните следующую команду в терминале, чтобы открыть редактор crontab.

Примерный вывод должен выглядеть следующим образом.

Настройка резервного cronjob

В crontab есть следующие пять полей,

m h dm m dw команда

  • m: указывает минуту (0-59)
  • h: указывает час (0-23)
  • dm: указывает день месяца (1-31)
  • m: указывает месяц (1-12)
  • dw: указывает день недели (0-6, где 0 - воскресенье).

Возьмем предыдущий пример синхронизации каталога с одного диска на другой и скажем, что мы хотим делать это каждый день в 12 часов дня, задание cron должно быть следующим.

Предположим, вы хотите делать резервную копию каждый месяц в воскресенье в 12 часов дня, задание cron должно быть написано следующим образом.

Заключение

Вы прочитали, как мы можем создавать резервные копии с помощью чрезвычайно мощной команды 'rysnc'. В завершение статьи мы создали 'crontab'. 'rsync' и 'crontab' также являются полезной комбинацией.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий