Как стать автором
Обновить

Архивация пользовательских файлов с Raspberry Pi на Яндекс Диск

Уважаемые господа,

В данный момент я изучаю возможности замечательной платы Raspberry Pi и как настоящий администратор столкнулся с проблемой бэкапов.
Причем с полными бэкапами, в отличие от Windows тут проблем нет, так как вся система записана на SD карточке, вставил ее в карт ридер и с помощью Win32DiskImager записал образ в файл. Но каждый день это делать очень не хочется, в связи с необходимостью включать компьютер, и достаточно продолжительным временем, которое занимает копирование даже 6GB карточки.

Так что задачей является сохранение файлов из пользовательского каталога в конце работы.

Прочитав на этом сайте статью «davfs2 и encfs на box.com» я решил сделать все по-современному через «облако».
Для разнообразия будем подключаться к «Яндекс диску». На котором и зарегистрируем почтовый ящик, для примера robots@yandex.ru, и подключим «Яндекс диск». Максимум 10GB в бесплатном варианте, но для наших целей более чем достаточно.

1. Настраиваем Raspbian wheezy


Не забываем обновиться
$ sudo apt-get update
$ sudo apt-get upgrade

Устанавливаем пакет поддержки davfs2
$ sudo apt-get install davfs2

Даем права пользователю pi
$ sudo usermod -a -G davfs2 pi

Создаем точку монтирования диска в домашнем каталоге
$ mkdir /home/pi/yandex.disk

Запишем логин и пароль в файл /etc/davfs2/secrets, где robots – имя почтового ящика, а password пароль для него
$ sudo echo "https://webdav.yandex.ru robots password" >> /etc/davfs2/secrets

И наконец пропишем наш новый диск в fstab
$ sudo nano /etc/fstab

Добавляем строку
https://webdav.yandex.ru /home/pi/yandex.disk  davfs  rw,noexec,auto,user,async,_netdev,uid=pi,gid=pi  0  0

Большинство описаний подключения дисков забывают параметр _netdev который напоминает системе, что это сетевой диск и не стоит его подключать до подключения Wi-fi или Ethernet. В данной строке пользователь pi основной пользователь под которым я работаю, что спасает от вы зова chown -R pi /home/pi/yandex.disk для раздачи прав.
Перегружаемся и если мы все сделали правильно радуемся подключенному сетевому диску.

2. Настраиваем сохранение данных

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

В отличие от автора статьи «davfs2 и encfs на box.com» я не буду устанавливать шифрованную систему, ограничусь шифрованными архивами. Проведя исследования средств шифрования доступных для Raspberry Pi я выбрал самый простой в реализации 7-zip. Данный продукт обеспечивает шифрование AES-256, что достаточно для домашнего использования.

Устанавливаем пакет 7-zip
$ sudo apt-get install p7zip-full

И создаем файл full.backup.sh для автоматического создания архива
# BackUp library to network
# Удаляем архив в пользовательском каталоге
rm project.arhieve.7z
# Архивируем нужные каталоги с шифрацией, <password> пароль на архив, если оставить только параметр –p то пароль будет запрошен при старте скрипта. Каталоги projects и Arduino содержат файлы которые мне нужно сохранить.
7z a -t7z -mhe=on –p<password> project.arhieve.7z /home/pi/projects /home/pi/Arduino 
# Удаляем бэкапный архив 
rm /home/pi/yandex.disk/Backup/project.arhieve.back
# Переименовываем архив на облаке в файл *.back
mv /home/pi/yandex.disk/Backup/project.arhieve.7z /home/pi/yandex.disk/Backup/project.arhieve.back
# Переносим новый архив на облако
cp project.arhieve.7z /home/pi/yandex.disk/Backup/project.arhieve.7z

Создаем на Яндекс диске каталог Backup для записи архивов. Даем права на запуск и тестируем.
После второго запуска скрипта /home/pi/yandex.disk/Backup/ должна содержать две последние версии архива.

Данный скрипт я вызываю руками по мере надобности. Но можно наверное и автоматизировать этот процесс, например при выходе из X. И на всякий случай напомню, что формат 7z не сохраняет права на файлы и не может служить средством для восстановления системных файлов!

Готов выслушать исправления и замечания. Заранее спасибо.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.