Автоматическое резервное копирование файлов на USB-носители при подключении |

Автоматическое резервное копирование файлов на USB-носители при подключении

Мануал

Резервное копирование – последняя защита от потери данных, предлагающая средства для восстановления исходных данных.

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

Очень просто (и не менее важно) автоматически создавать резервные копии важных файлов, не задумываясь об этом.

В этой статье мы узнаем, как автоматически создавать резервные копии данных на съемный носитель после подключения к вашей машине Linux.

Мы проверим это на практике с внешним диском.

Это основное руководство, чтобы вы начали использовать udev для реальных решений.

Для целей этой статьи нам нужна современная система Linux с:

  • systemd службы
  • Диспетчер устройств udev
  • Средство резервного копирования rsync

Как настроить правила Udev для съемных носителей

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

Мы можем использовать эту функцию для выполнения сценария резервного копирования после добавления съемного носителя в запущенную систему.

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

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

Для целей тестирования мы будем использовать внешний жесткий диск 1 ТБ, как показано на рисунке.

$ lsusb

Из вывода вышеприведенной команды идентификатор поставщика устройств – 125f, который мы укажем в правилах udev, как описано ниже.

Сначала удалите подключенный носитель из системы и создайте новый файл правил udev с именем 10.autobackup.rules в каталоге /etc/udev/rules.d/.

10 в имени файла определяет порядок выполнения правил.

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

$ sudo vim /etc/udev/rules.d/10.autobackup.rules

Затем добавьте в него следующее правило:

SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/backup.sh"

Давайте кратко объясним вышеприведенное правило:

  • «==»: является оператором сравнения для равенства.
  • «+ =»: является оператором для добавления значения к ключу, содержащему список записей.
  • SUBSYSTEM: соответствует подсистеме устройства события.
  • ACTION: соответствует названию действия события.
  • ATTRS {idVendor}: соответствует значениям атрибута sysfs устройства события, который является идентификатором поставщика устройства.
  • RUN: указывает программу или скрипт для выполнения как часть обработки событий.

Создание скрипта автоматической резервной копии

Теперь создайте скрипт автоматической резервной копии, который будет автоматически создавать резервные копии файлов на съемный USB при подключении к системе.

$ sudo vim /bin/autobackup.sh 

Теперь скопируйте и вставьте следующий скрипт, обязательно замените значения BACKUP_SOURCE, BACKUP_DEVICE и MOUNT_POINT в скрипте.

#!/usr/bin/bash
BACKUP_SOURCE="/home/admin/important"
BACKUP_DEVICE="/dev/external1"
MOUNT_POINT="/mnt/external"


#check if mount point directory exists, if not create it
if [ ! -d “MOUNT_POINT” ] ; then 
	/bin/mkdir  “$MOUNT_POINT”; 
fi

/bin/mount  -t  auto  “$BACKUP_DEVICE”  “$MOUNT_POINT”

#run a differential backup of files
/usr/bin/rsync -auz  "$MOUNT_LOC" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE"
exit

Затем сделайте исполняемым файл скрипта следующей командой:

$ sudo chmod +x /bin/autobackup.sh

Затем перезагрузите правила udev, используя следующую команду.

$ udevadm control --reload

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

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

Для получения дополнительной информации см. Страницы руководства udev, mount и rsync.

$ man udev
$ man mount 
$ man rsync

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий