Проснись, самурай, время делать бэкапы баз данных! Но чтобы не разориться на платных сервисах, я покажу, как превратить Raspberry Pi Zero W за условные $10 в личную бэкап‑машину, которая будет заливать файлы в бесплатный Google Drive.
Вот что нам сегодня понадобится:
Идея в том, чтобы один раз потратиться на малинку и получить полностью автономный девайс, который можно врубить куда угодно — и он будет делать что‑нибудь полезное. Например, бэкапы базы данных.
Сначала скачай программу Etcher и образ Raspberry Pi OS lite без рабочего стола. Рабочие столы?! Там, куда мы направляемся, не нужны рабочие столы!
Я все это запускаю на macOS, но действия, описанные в этом руководстве, применимы и на других операционных системах.
Вставь microSD-карточку в компьютер, запусти Etcher и залей скачанный образ Raspberry Pi OS на карточку.
Достань карточку и вставь обратно. Она должна появиться диском под именем boot
.
Перед тем как запихивать карточку в малину, нам нужно немного настроить операционку. Давай настроим подключение к беспроводному интернету.
Файлы обязательно редактируй какой‑нибудь тулзой типа nano
или vim
, чтобы не накосячить с текстовой кодировкой условным встроенным в ОС блокнотом. Создай файл с названием wpa_supplicant.conf
прямо в корне карточки. Содержание этого файла должно быть следующим.
country=DEctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="мой_вайфай" scan_ssid=1 psk="пароль_от_вайфая" key_mgmt=WPA-PSK}
Конечно, замени мой_вайфай
и пароль_от_вайфая
на название и пароль от своей сети WiFi. Насколько я понял, эта версия малины работает только с беспроводными сетями 2,4 ГГц.
Далее включи SSH на малине, так как управлять мы ей будем именно по SSH. Создай пустой файл в корне карточки с именем ssh
. Можешь использовать команду $ touch ssh
.
Вот и все! Малина настроена. Вставь карточку в малину и подключи ее к питанию! Убедись, что питание ты подключаешь в разъем с пометкой PWR
. Первый запуск малины займет примерно 90 секунд, ей нужно провести первоначальную настройку.
Теперь тебе нужно узнать IP-адрес малины. Можешь воспользоваться бесплатной программой LanScan на macOS или любым аналогом типа nmap
на других платформах. Найди адрес с именем девайса типа raspberry pi.
Теперь ты можешь подключиться прямо к малине! И все по воздуху! Подключись к пользователю pi
со стандартным паролем raspberry
. Можешь воспользоваться командой $ ssh pi@{IP_малины}
.
Для безопасности поменяй стандартный пароль командой $ sudo raspi-config
. После перезапусти малину командой $ sudo shutdown -r now
.
В принципе, можешь не выключать вход на малину по паролю, если малина никогда не будет доступна из интернета. Но если хочешь на 100 % обезопасить свои бэкапы, то включи вход по SSH только по ключам, создав файл ~/.ssh/authorized_keys
на малине с SSH-ключом, а после перезагрузи малину.
Ну и не забудь выставить PasswordAuthentication no
в файле настройки SSH — /etc/ssh/ssh_config
!
Теперь ты официально в малине. Время писать скрипты бэкапа!
Скрипт будет крайне простым. Будем использовать тулзу mongodump, чтобы забрать всю информацию из базы данных в одну папочку, а потом тулзу drive, чтобы залить всю прелесть на Google Drive. Проще пареной репы!
Запусти следующие команды на малине для установки drive
.
$ wget https://github.com/odeke-em/drive/releases/download/v0.3.9/drive_armv6 $ sudo mv drive_armv6 /usr/bin/gdrive $ sudo chmod +x /usr/bin/gdrive
Заметь, что мы устанавливаем тулзу именно для архитектуры ARMv6. Теперь можешь написать $ gdrive version
на малине, чтобы убедиться, что все сработало.
Теперь тебе нужно настроить drive
, чтобы он смог работать с определенной папкой. Создай папку для бэкапов командой $ mkdir ~/backups
и после запусти команду $ gdrive init ~/backups
, чтобы заставить drive
синхронизировать эту папку. Скрипт выдаст тебе ссылку, нужно будет авторизоваться в сервисе через браузер (уже на своем компе, откуда подключался к малине).
Можешь проверить настройку, прописав команду $ cat ~/.gd/credentials.json
. Должно выдать твои ключи авторизации.
Если ты используешь какую‑то другую базу данных, а не Mongo, то проигнорируй все до секции «Загружаем дамп базы данных в облако». Просто убедись, что у тебя есть команда, которая позволяет тебе загружать все данные любимой базы данных в определенную папку на малине. Эту папку мы и будем загружать в облако.
Да, в этом руководстве я расскажу тебе только о Mongo. Ради краткости изложения и для показательности примера я решил выбрать именно эту базу данных.
Но и тут у нас будут небольшие проблемы из‑за ограниченности выбранного железа. На Raspberry Pi Zero далеко не уехать — процессор в нашей малине 32-битный, а последняя Mongo запускается лишь на 64-битных системах. Что же делать?
Поступим очень хитро: за неимением лучшего решения воспользуемся простым костылем. Мы заставим наш сервер, на котором уже установлена Mongo, собирать дамп базы данных — а потом будем его загружать к себе в Google Drive.
Почему бы нам просто тогда не запускать все на сервере, раз уж на то пошло? Да потому что малина — это киберпанк, который мы заслужили, а бэкапы всегда должны быть внешними.
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
1 год7690 р. |
1 месяц720 р. |
Я уже участник «Xakep.ru»
Читайте также
Последние новости