Категория > Новости > Нам нужно больше бэкапов! Делаем машину для резервного копирования за 10 баксов - «Новости»

Нам нужно больше бэкапов! Делаем машину для резервного копирования за 10 баксов - «Новости»


16-01-2021, 00:00. Автор: Otis
Etcher и образ Raspberry Pi OS lite без рабоче­го сто­ла. Рабочие сто­лы?! Там, куда мы нап­равля­емся, не нуж­ны рабочие сто­лы!

info


Я все это запус­каю на macOS, но дей­ствия, опи­сан­ные в этом руководс­тве, при­мени­мы и на дру­гих опе­раци­онных сис­темах.



Вставь microSD-кар­точку в компь­ютер, запус­ти Etcher и залей ска­чан­ный образ Raspberry Pi OS на кар­точку.


Дос­тань кар­точку и вставь обратно. Она дол­жна появить­ся дис­ком под име­нем boot.


Вот так выг­лядит этот самый «Linux»

Пе­ред тем как запихи­вать кар­точку в малину, нам нуж­но нем­ного нас­тро­ить опе­раци­онку. Давай нас­тро­им под­клю­чение к бес­про­вод­ному интерне­ту.


Фай­лы обя­затель­но редак­тируй какой-нибудь тул­зой типа nano или vim, что­бы не накося­чить с тек­сто­вой кодиров­кой условным встро­енным в ОС блок­нотом. Соз­дай файл с наз­вани­ем wpa_supplicant.conf пря­мо в кор­не кар­точки. Содер­жание это­го фай­ла дол­жно быть сле­дующим.


country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="мой_вайфай"
scan_ssid=1
psk="пароль_от_вайфая"
key_mgmt=WPA-PSK
}
Нам нужно больше бэкапов! Делаем машину для резервного копирования за 10 баксов - «Новости»

Ко­неч­но, замени РјРѕР№_вайфай и РїР°СЂРѕР»СЊ_РѕС‚_вайфая на наз­вание и пароль от сво­ей сети 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.


$ 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. Дол­жно выдать твои клю­чи авто­риза­ции.




info


Ес­ли ты исполь­зуешь какую-то дру­гую базу дан­ных, а не Mongo, то про­игно­рируй все до сек­ции «Заг­ружа­ем дамп базы дан­ных в обла­ко». Прос­то убе­дись, что у тебя есть коман­да, которая поз­воля­ет тебе заг­ружать все дан­ные любимой базы дан­ных в опре­делен­ную пап­ку на малине. Эту пап­ку мы и будем заг­ружать в обла­ко.



Да, в этом руководс­тве я рас­ска­жу тебе толь­ко о Mongo. Ради крат­кости изло­жения и для показа­тель­нос­ти при­мера я решил выб­рать имен­но эту базу дан­ных.


Но и тут у нас будут неболь­шие проб­лемы из-за огра­ничен­ности выб­ранно­го железа. На Raspberry Pi Zero далеко не уехать — про­цес­сор в нашей малине 32-бит­ный, а пос­ледняя Mongo запус­кает­ся лишь на 64-бит­ных сис­темах. Что же делать?


Пос­тупим очень хит­ро: за неиме­нием луч­шего решения вос­поль­зуем­ся прос­тым кос­тылем. Мы зас­тавим наш сер­вер, на котором уже уста­нов­лена Mongo, собирать дамп базы дан­ных — а потом будем его заг­ружать к себе в Google Drive.


По­чему бы нам прос­то тог­да не запус­кать все на сер­вере, раз уж на то пош­ло? Да потому что малина — это кибер­панк, который мы зас­лужили, а бэкапы всег­да дол­жны быть внеш­ними.



Перейти обратно к новости