Сегодняшняя статья посвящена тому, как настроить создание и отправку резервных копий в удаленное хранилище, в качестве которого я буду использовать Яндекс.Диск. Помимо повышенной надежности такой подход хорош еще и тем, что позволяет получать доступ к своим данным откуда угодно.
В процессе мы познакомимся с новыми типами юнитов systemd: .timer, .mount и .automount.
1. Установка WebDAV и подготовка папки для автомонтирования.
Для начала установим пакет davfs2:
В процессе разрешаем непривилегированным пользователям монтирование.
DAV или WebDAV представляет собой расширение протокола HTTP, позволяющее работать с удаленными файловыми системами. DAV имеет множество полезных функций и интересных способов применения, но углубляться в эту тему я не буду.
Поскольку для доступа к содержимому Яндекс.Диска нам небходимо пройти аутентификацию, добавим URL, логин и пароль от своей учетной записи в Яндексе в специальный файл, остальное WebDAV сделает за нас:
В конец открывшегося файла добавляем строку следующего содержания:
Если пароль содержит пробелы, символы решетки, двойных кавычек или обратный слеш (\), его необходимо заключить в двойные кавычки. Подробнее об этом можно прочитать в самом редактируемом файле.
Не только Яндекс.Диск поддерживает WebDAV. Вы можете использовать похожим образом многие другие хранилища, в том числе Dropbox.
Создадим папку, в которую будем монтировать нашу удаленную ФС и тут же передадим ее текущему пользователю:
Здесь и далее вместо переменной $USER можете использовать имя своего пользователя либо просто скопировать и ввести команды как есть. Во втором случае имя текущего пользователя будет подставлено автоматически.
На всякий случай проверим результат:
Если все прошло успешно, вы увидите, что папка создалась и принадлежит вашему пользователю.
2. Пишем юниты .mount и .automount.
Юниты .mount и .automount описывают точки монтирования, а также условия, при которых те должны быть смонтированы. Их название в обязательном порядке должно отражать путь к самой точке монтирования, причем символ «/» заменяется на «-», а другие специальные символы… словом, лучше используйте обычную латиницу в названиях. Так, например, для точки монтирования /media/valera/YaDisk нам понадобятся юниты c названиями media-valera-YaDisk.mount и media-valera-YaDisk.automount.
Создаем эти два файла там, где и положено находиться пользовательским юнитам в Ubuntu 16.04, открывая их любым удобным текстовым редактором:
В открывшееся окно редактора помещаем следующее:
Тем же способом открываем /etc/systemd/system/media-$USER-YaDisk.automount и добавляем в него строки, приведенные ниже:
Не забудьте оба раза сохранить содержимое, иначе файлы просто не будут созданы.
Чтобы не перезагружать систему, скажем systemd перечитать юниты:
Теперь активируем и добавляем в автозагрузку наш .automount юнит:
Юнит .mount включать и запускать нет необходимости.
3. Создаем скрипт, выполняющий резервное копирование и юниты .service и .timer, которые будут его запускать.
Откроем пока еще не существующий файл скрипта командой:
вставим следующий код в текстовый редактор и сохраним.
«/путь/к/папке» нужно заменить на настоящий путь к директории, резервные копии которой вы собираетесь создавать.
Создаем юнит yadisk_backup.service с таким содержимым:
и юнит yadisk_backup.timer:
Как вы уже знаете, поместить оба файла нужно в /etc/systemd/system. Перечитываем юниты, запускаем и включаем таймер:
Первая строка в разделе [Timer]
будет запускать таймер по прошествии суток с момента последней активации. Вторая строка запускает его через 60 секунд после загрузки.
Обратите внимание!
Юнит .timer управляет запуском юнита .service. Названия этих юнитов (части названия до точки) должны совпадать, иначе система просто не поймет, что именно должен запускать наш таймер. Если по каким-то причинам названия все же разные, полное имя файла .service можно задать и внутри таймера.
Бонус: доступ к Яндекс.Диску через файловый менеджер.
Во-первых, поздравляю тех, кто дочитал до этого места. Вы настоящие герои. Во-вторых, хочу обратить ваше внимание на полезный побочный эффект, возникающий в результате выполнения первых двух пунктов. Вот он:
Яндекс.Диск монтируется в отведенную ему директорию, после чего с ним можно работать через файловый менеджер так же, как вы делаете это с локальными папками. Удобнее, чем пользоваться веб-интерфейсом или различными утилитами, не правда ли?
Если резервное копирование вам не нужно, а требуется лишь удобный доступ к своему облачному хранилищу, достаточно будет выполнить первые два пункта статьи.
А вот и наши резервные копии:
До новых статей!