Obsah:
- Krok 1: Hardvérové diely
- Krok 2: Návrh hardvéru
- Krok 3: Operačný systém
- Krok 4: Návrh softvéru
- Krok 5: Zatvorenie a zoznam úloh
Video: OrangeBOX: Zabezpečené záložné úložné zariadenie založené na OrangePI: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
OrangeBOX je zálohovací box pre vzdialené servery typu všetko v jednom pre akékoľvek servery.
Váš server môže byť infikovaný, poškodený, vymazaný a všetky vaše údaje sú na serveri OrangeBOX stále v bezpečí a komu by sa nepáčila misia nemožná ako záložné zariadenie, stačí pripojiť a vidieť indikátor priebehu bez toho, aby ste urobili čokoľvek ďalšie (len dúfať, že kúzlo dym na konci nevyjde:)).
OrangeBOX je môj prvý projekt, ktorý je väčšinou softvérovým, nie hardvérovým hackom. V zásade ide o NAS vyrobený na mieru s pripojeným LCD.
Krok 1: Hardvérové diely
Orange PI zero je open-source jednodoskový počítač. Môže bežať na systéme Android 4.4, Ubuntu, Debian. Využíva systém AllWinner H2 SoC a má 256 MB/512 MB DDR3 SDRAM (256 MB verzia je štandardná verzia. Orange Pi Zero je pre každého, kto chce začať s technológiou vytvárať - nielen ju konzumovať. Je to jednoduchý, zábavný a užitočný nástroj, ktorý môžete použiť na to, aby ste začali ovládať svet okolo seba (https://www.orangepi.org/orangepizero/). Je to teda presne pre nás, poďme sa do toho pustiť:)
- Kovový/plastový/drevený box (použil som starý externý box cd-rw Yamaha)
- Oranžový PI nula alebo lepší (GPIO pinout sa môže zmeniť, ak použijete iný model)
- 2x20 RGB LCD obrazovky
- Akýkoľvek disk SFF 3,5/ LFF 2,55 usb
- SATA -> USB adaptér. Majte na pamäti, že hoci OrangePI nekladie hornú hranicu maximálnej kapacity disku, veľa mostov USB-SATA áno (max. 2 TB). Oranžový PI Zero, ktorý používam, má iba jeden port USB 2.0 s efektívnou prenosovou rýchlosťou max. 28 MB/s. Vybral som USB3.0 (pripravený na budúce inovácie) -> SATA most (značka nebude uvedená) a obmedzuje limit, takže je lepšie zvoliť most, ktorý osvedčuje podporu väčších jednotiek, ako sú mostíky na báze čipov JMicron JMS567.. Pred kúpou si urobte vlastný prieskum. V tomto projekte môžem žiť s obmedzením rýchlosti a pevného disku pomocou 2TB disku SATA (ak vložíte väčšie disky, bude to rozpoznané, ale operačný systém uvidí iba prvé 2 TB z neho, takže zvyšná kapacita bude stratený).
- Adaptér zosilňovača 12V 2,5 A alebo vyšší. Vypočítajte približne 500 mA normálneho použitia pre OPI Zero a 1,5 A pre štandardný disk LFF SATA. Predimenzovanie nikdy nezaškodí. V mojom nastavení bohužiaľ Yamaha psu (čo mohlo dodať viac ako dosť prúdu na obidve lišty 12+5V) vyhodilo do vzduchu: (kvôli zoradeniu hlavného vypínača na GND na sekundu, takže som musel prilepiť bežný adaptér, na prinajmenšom to urobilo krabicu o niekoľko gramov ľahšou.
- Buck prevodník DC-DC 12V-> 5V. Použil som rovnaký nastaviteľný mini buck ako pri IronForge, funguje perfektne.
Voliteľné
Ak ste ochotní minúť + 10 $, môžete získať Orange Pi Plus (https://www.armbian.com/orange-pi-one-plus/), ktorý má podobný formát a dostanete Gbe a SATA3. Na tento účel je možné použiť knižnicu zapojenia Libra PI: https://github.com/OrangePiLibra/WiringPi, ale keďže je výstup GPIO odlišný, nepatrí do rozsahu tohto písania.
Môžete to tiež urobiť s novým Orange PI Plus2, ktorý má konektor SATA a môžete preskočiť používanie prevodníkov sata-> usb spolu s ich obmedzeniami. Ak plánujete používať FreeBSD alebo iné BSD, rad Orange PI nemusí byť najlepšou voľbou, pretože ich hardvérová podpora je obmedzená (napríklad na zavedenie musíte použiť USB kľúč). Pre BSD je najlepšou radou použiť Raspberry PI. Kód C pre LCD a všetky skripty Shell sú prenosné do akýchkoľvek iných systémov UNIX.
Krok 2: Návrh hardvéru
Krabica Yamaha postačovala na uloženie tohto všetkého, nemala by dostatok miesta na počítač Orange PI PC ani bežnú dosku Raspi.
Ethernet bol vyvedený s predlžovačom na zadnú stranu škatule. Pamätajte si, že nula Orange PI má iba 100 Mbit/s ethernetové rozhranie, ak chcete rýchlejšie, budete musieť použiť inú dosku, ako napríklad Asus Tinkerboard/RPI3B+/Ostatné modely Orange PI.
Chybný kód PIN je jedinou a jedinou chybou, ktorú v tomto projekte môžete urobiť, preto stojí za to použiť určité pravidlo zásad:
1, Vždy sa snažte použiť kábel rovnakej farby od KONCA do KONCA. Sám sa dopúšťam tej istej „chyby“v niektorých projektoch, kde nie, jednoducho preto, že nemám po ruke dostatočne dlhé káble muž-muž/muž-žena/žena-žena a patchujem spolu 2, aby som pokračoval obvod. Ak svoju prácu poriadne nedokumentujete, môže to viesť k bolestiam hlavy po rokoch, keď budete musieť vykonať opravu, aktualizáciu.
2, Na konektory naneste horúce lepidlo. V prípade použitia týchto káblov arduino-štartéra v štýle mm/mf/ff káblov, ktoré nie sú najvyššej kvality, je úplne bežné (najmä ak sa pohybujete/prepravujete zariadenie), že konektory vykĺznu. Ak viete, že to bude zariadenie na dlhodobé používanie (možno ho budete používať, kým sa nerozbije ?!), je lepšie naniesť trochu horúceho lepidla na konektory OrangePI aj LCD, aby boli spolu. V prípade potreby sa dá neskôr ľahko roztaviť/zoškrabať.
3, Nulové zapojenie OrangePI Zlou správou je, že pin Orange PI NIE je rovnaký ako Raspberry PI 0/1/2/3 a medzi inými modelmi Orange PI je dokonca rozdiel. Najlepším spôsobom, ako ísť, je získať knižnicu zapojenia (verzia Orange PI Zero). Obrázok môže byť trochu mätúci, ale tieto boli najlepšie, aké som mohol nájsť. Jeden je 180 stupňovým zrkadlom toho druhého. Aj keď pochopenie grafického obrázku CLI môže byť ťažšie, je to najpriamejšie.
2 konce zásuviek môžete vždy odlišovať tak, že jeden koniec budete považovať za POZITÍVNY koniec s (+3,3/+5 V) a druhý za NEGATÍVNY koniec (jeden GND) -> toto je koniec konektora otočeného k portu ETHERNET.
Z nulovej tabuľky Wiring PI budete potrebovať iba jeden stĺpec, na ktorý wPI zabudne, ako keby tam neboli.
Napríklad pre pripojenie LCD_E 15 (to je wPI 15!) A LCD_RS 16 (to je wPI 16!) Spočítajte kolíky z POZITÍVNEHO konca konektora (ľahko to urobíte perom alebo malým skrutkovačom). To bude fyzicky znamenať pokles 4 kolíkov a 5 kolíkov.
4, Zoskupte. Ak existuje možnosť umiestniť použité kolíky vedľa seba (zoskupiť ich), vždy si to vyberte, vďaka čomu budú držať jeden pri druhom aj bez lepidla a tiež v iných projektoch, keď máte konektory 2x 4x 6x molex, môžete stačí využiť kolíky, ktoré sú vedľa seba. Tu najlepšie, čo môžete urobiť, je skupina 2-3 s (ideálne pri použití zachránených prepojovacích káblov zo starých počítačov).
Piny používané na pripojenie LCD obrazovky OrangePI:
// POUŽÍVAJTE PINY WIRINGPI
#define LCD_E 15 // Povoliť pin #define LCD_RS 16 // Registrovať vybrať pin #define LCD_D4 5 // Dátový pin 4 #define LCD_D5 6 // Dátový pin 5 #define LCD_D6 10 // Dátový pin 6 #define LCD_D7 11 // Dátový kolík 7
Kolíky používané na ovládanie podsvietenia RGB
$ G napíš 10
$ G napíš 4 1 $ G napíš 7 1
Oranžové PI nulové piny wPI 1, 4, 7. Jediné kúzlo, ktoré tento LCD dokáže, v porovnaní so štandardným fixným modrým alebo fixným zeleným podsvietením LCD, kde máte jednu katódu, ktorú je potrebné stiahnuť na GND, že má 3 pre 3 farby. Červená, zelená a modrá. Zmenou kombinácie, z ktorých je jedna zapnutá, môžete z týchto základných farieb miešať rôzne farby, ale iba vysoké tóny bez odtieňov, pretože nemôžete ovládať jas farby (je zapnutá alebo vypnutá).
Aditívne miešanie farieb: pridaním červenej k zelenej sa získa žltá; pridaním červenej k modrej sa získa purpurová; pridaním zelenej k modrej sa získa azúrová; sčítaním všetkých troch základných farieb vznikne biela.
Krok 3: Operačný systém
OrangeBOX sa spustí a jadro Armbian linux (založené na Debian Stretch) 4.14.18-sunxi so zabezpečeným firewallovým prostredím, pripojí sa k VPN a čaká na príkazy na vzdialené zálohovanie zo servera.
Zásady návrhu:
-Úplné šifrovanie disku založené na luks (samotné zariadenie neobsahuje kľúč na otvorenie záložnej jednotky. Dočasne sa skopíruje zo vzdialeného servera do pamäte RAM /dev /shm, jednotka sa otvorí a kľúč sa odstráni. Po dokončení zálohovania jednotka sa zatvorí a OrangeBox sa automaticky vypne za 1 minútu.)
-Všetky príkazy a kľúče sú odosielané zo vzdialeného servera (samotné zariadenie obsahuje iba certifikát vpn), nemá žiadny prístup na vzdialený server ani ssh z tohto zariadenia je bránou firewall von
-Miestne súborové systémy nie sú šifrované, aby sa mohli zavádzať, ale neobsahujú nič užitočné a keďže uplink VPN je na druhom konci veľmi obmedzený, a to aj pri úplnej strate zariadenia, útočník nemôže nič urobiť.
Stiahnite si Armbian Stretch z
Spustite systém:
apt-get update && apt-get upgrade
apt-get install sysvinit-core sysvinit-utils
Upravte súbor /etc /inittab, všetky konzoly je možné deaktivovať, pretože pole sa bude používať ako bezhlavé. Okomentujte nasledujúcu časť:
#1: 2345: respawn:/sbin/getty 38400 tty1
#2: 23: respawn:/sbin/getty 38400 tty2 #3: 23: respawn:/sbin/getty 38400 tty3 #4: 23: respawn:/sbin/getty 38400 tty4 #5: 23: respawn:/sbin/getty 38400 tty5 #6: 23: respawn:/sbin/getty 38400 tty6
Reštartujte svoj box a odstráňte systemd, aby ste mali skutočný bezplatný systém bloatware s otvoreným zdrojovým kódom.
apt-get remove --purge --auto-remove systemd
Nainštalujte niekoľko balíkov
apt-get install cryptsetup vim htop rsync obrazovka gcc make git
Nainštalujte knižnicu wiringpi
cd /usr /src
git klon https://github.com/xpertsavenue/WiringOP-Zero.git cd WiringOP-Zero chmod +x./build./build
Vytvorte oranžového používateľa pre LCD displej
groupadd -g 1000 oranžová
useradd -m -d /home /orange -s /bin /bash -u 1000 -g oranžová oranžová
Strážny pes, ktorý na vás dohliada
apt-get install watchdog
Pri pohľade na/etc/default/watchdog # Spustiť strážneho psa pri štarte? 0 alebo 1 run_watchdog = 1 # Spustiť wd_keepalive po zastavení strážneho psa? 0 alebo 1 run_wd_keepalive = 1 # Načítajte modul pred spustením watchdog watchdog_module = "none" # Tu zadajte ďalšie možnosti strážneho psa (pozri manuál).
Pri pohľade na /etc/watchdog.conf
# Povoľte aspoň tieto
max-load-1 = 24 max-load-5 = 18 max-load-15 = 12
/etc/init.d/watchdog štart
Mal by existovať najmenej 1 vlákno jadra a 1 proces:
koreň 42 0,0 0,0 0 0? I <10:50 0:00 [watchdogd] root 14613 0,0 0,2 1432 1080? SLs 13:31 0:00/usr/sbin/strážny pes
Testovanie:
Uistite sa, že všetko zastavíte a urobíte synchronizáciu && synchronizáciu && synchronizáciu, aby ste zapísali zvyšné údaje na disk. Potom ako koreňový problém:
echo 1> /dev /strážny pes
Po niekoľkých sekundách by sa mal počítač reštartovať.
Ako uvádza manuál:
o Je tabuľka procesov plná?
o Je dostatok voľnej pamäte? o Existuje dostatok alokovateľnej pamäte? o Sú niektoré súbory prístupné? o Zmenili sa niektoré súbory v rámci daného intervalu? o Je priemerné pracovné zaťaženie príliš vysoké? o Došlo k pretečeniu tabuľky súborov? o Je proces stále spustený? Tento proces je špecifikovaný súborom pid. o Odpovedajú niektoré adresy IP na príkaz ping? o Prijímajú sieťové rozhrania prenos? o Je teplota príliš vysoká? (Údaje o teplote nie sú vždy k dispozícii.) O Vykonajte užívateľom definovaný príkaz na vykonanie ľubovoľných testov. o Vykonajte jeden alebo viac príkazov na test/opravu nachádzajúcich sa v /etc/watchdog.d. Tieto príkazy sa volajú s testom argumentov alebo opravou. Ak niektorá z týchto kontrol zlyhá, strážny pes spôsobí vypnutie. Pokiaľ niektorý z týchto testov s výnimkou binárneho súboru definovaného používateľom trvá dlhšie ako jednu minútu, počítač sa reštartuje.
Tento strážny pes mohol fungovať dobre na bežných architektúrach x86, ale na doskách založených na ARM, ako sú Raspberry PI, Orange PI, mi to mnohokrát zlyhalo. Systém môže prejsť do stavu zavesenia, v ktorom visí dokonca aj strážny pes. Nakonfigurujme to aj tak, možno sa to za tie roky vylepší pomocou vhodnej inovácie:(
Krok 4: Návrh softvéru
Samotný proces zálohovania je založený na rsync (najlepší nástroj na zálohovanie, aký bol kedy vynájdený). Údaje sa získavajú zo servera SERVER-> OrangeBOX.
Extrahovanie údajov z rsync bolo jedinou náročnou súčasťou projektu, aby sa na LCD vytlačil indikátor priebehu o zálohe.
Existovali tri možné spôsoby výpočtu postupu zálohovania:
1, Pomocou vzorcov, ako napríklad https://wintelguy.com/transfertimecalc.pl, určte približný čas, ktorý môže prenos trvať
Čas prenosu (d: h: m: s): 0: 02: 44: 00
Na porovnanie: Odhadovaný čas na prenos 123 GB súboru cez rôzne sieťové linky (d: h: m: s): linka T1/DS1 (1,544 Mbps) - 7: 09: 01: 46 Ethernet (10 Mbps) - 1:03: 20:00 Fast Ethernet (100 Mbps) - 0: 02: 44: 00 Gigabit Ethernet (1000 Mbps) - 0: 00: 16: 24 10 Gigabit Ethernet (10 Gbps) - 0: 00: 01: 38
Ak príkaz rsync skončí, signalizuje skriptu, aby zastavil výpočet. Táto metóda je len približná a nie je spoľahlivá, taktiež nie je fixná rýchlosť linky, môže sa spomaliť, znova zrýchliť. Toto je len teoretický výpočet.
2, Vykonávanie kontrol veľkosti adresára, aby sme zistili, koľko dát sme už synchronizovali. Môže byť veľmi pomalý so stovkami GB malých súborov (aj keď du -s v Linuxe robí nejaké ukladanie do vyrovnávacej pamäte, ak ho znova spustíte)
Hostiteľ A -> Zálohovať údaje servera Dáta: 235 GB
Hostiteľ B -> Údaje o klientoch Orange box, ktoré máme práve teraz Dátový adresár: 112 GB
Delta je 123 GB.
3, Ak je súborový systém vyhradený ako v našom prípade/dev/mapper/backup, môžeme využiť indikátor celkového využitia súborového systému na určenie, ako prebieha naše zálohovanie, a to je skutočne sakra rýchle. V tomto prípade ani nepotrebujeme nikde presúvať výstup rsync, stačí spustiť suchý rsync, počkať, kým sa dokončí, vypočítať deltu v bajtoch a skontrolovať to s voľným priestorom, ktorý máme na záložnej jednotke a voila môžeme teraz urobte pekný stĺpcový graf. Túto metódu som si vybral a tu je môj skript:
#!/bin/bash
# Kalkulačka postupu zálohovania pre OrangeBOX od NLD # Verzia: 0.2 (2018/03/05) # # Spustite ju ako neprivilegovaného používateľa z cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Tento skript je zodpovedný iba za zobrazenie údajov na LCD displeji, # komunikuje s hlavným programom nepriamo prostredníctvom súborov polohy a zámku. BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # využitie disku na začiatku zálohy TFILE = "$ HOME/trans.size" # celková vopred vypočítaná veľkosť prenosu BFILE = "$ HOME/ backup.lck " # určuje začatý stav FFILE =" $ HOME/backup.fin " # určuje dokončený stav LFILE1 =" $ HOME/lcd1.bar " # Údaje indikátora priebehu LCD LFILE2 =" $ HOME/lcd2.bar " # Postup LCD údaje indikátora SHUTDOWN = "1" # Ak 1, spustí ďalší skript, ktorý vypne pole na konci zálohy BACKUP_CURRENT = "0" # Musí byť inicializovaný, ale bude vypočítaný DRIVE_SIZE = "" # Veľkosť jednotky v bajtoch (sekundárna skontrolovať) LCD = funkcia "sudo /bin /lcd" is_mount () {grep -q "$ 1" /proc /mounts status = $? } function red () {sudo /bin /lcdcolor red} function green () {sudo /bin /lcdcolor green} function blue () {sudo /bin /lcdcolor blue} # Clear state (set on boot by bootup_display.sh). Neprebieha žiadne zálohovanie, NEPOKAŽUJTE # stavový displej LCD. Zobrazovať priebeh iba v prípade, že prebieha zálohovanie => Žiadny štartovací súbor A Žiadny fin súbor = ukončiť, ak [! -f $ BFILE] && [! -f $ FILM]; potom ukončite 1 fi # Ak sa záloha skončila, tento skript to zobrazí a odstráni zámky #, aby sa nemohli znova spustiť až do nasledujúceho spustenia. ak [-f $ FFILE]; potom zelené $ LCD „Zálohovanie“„** Dokončené **“echo „Zálohovanie dokončené“rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Zálohovanie bolo dokončené vyčistenie, ak [$ SHUTDOWN == "1"]; potom zopakujte „Vykonáva sa vypínací skript …“/home/orange/shutdown.sh & fi exit 0 fi # Od tohto bodu sa skript spustí LEN vtedy, ak prebieha záloha ONGOING #, preto sa všetky chyby vytlačia na LCD displej a spôsobia skript # na prerušenie však neodstráni súbor backup.lck, takže sem pôjde # znova a znova a vyhodnotí podmienky. je_mount $ BACKUP_DRIVE if [$ status -ne 0]; potom červený $ LCD "ERR: Záložná jednotka" "nie je namontovaná!" echo „Zálohovací disk nie je pripojený“, ukončite 1 fi, ak [! -s $ TFILE]; potom červený $ LCD "ERR: transfeil" "je prázdny" echo "Súbor výpočtu veľkosti transportu je prázdny." exit 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') if [-z $ BACKUP_OVERALL]; potom červený $ LCD "ERR: spätné načítanie veľkosti" "zo servera je neplatné" echo "Zálohovanie spätného načítania celkovej veľkosti je neplatné 1" ukončenie 1 fi ak!
Napriek tomu, že je kód jednoduchý, tu je nejaký popis toho, čo robí:
1, Ak BFILE alebo FFILE neexistuje (čo je stav po jasnom štarte), čo znamená, že neexistuje žiadny proces zálohovania, NEROBTE nič a ukončite ho. Týmto spôsobom môžete vykresliť akékoľvek pekné informácie, ktoré chcete, týkajúce sa zavádzania, ako je názov hostiteľa, ip, doba prevádzky atď., A nebudú pokazené.
2, Prejdeme k sekcii is_mount $ BACKUP_DRIVE. Pripomíname, že jediný spôsob, akým sme sa sem dostali, je, že bola spustená záloha, aby BFILE existoval. Teraz kód len robí rôzne kontroly chýb, ako je nainštalovaná záložná jednotka? Je celková veľkosť toho, čo sa chystáme zálohovať, väčšia ako jednotka? alebo iné chyby. Pamätajte si, že toto je program iba NA ZOBRAZENIE, aj keď veľkosť presiahne zálohy, nič sa tým nezruší.
3, OK, všetky kontroly chýb vymazali čas na výpočet percentuálneho grafu. Skript najskôr urobí „snímku“priestoru použitého v bajtoch v záložnom súborovom systéme a uloží ho do súboru VFILE. Čo je účelom tohto: bash skript je bez štátnej príslušnosti, stráca údaje medzi vykonaniami, takže ak si chcete „zapamätať“niektoré údaje z predchádzajúceho spustenia, musíte ich niekde uložiť. V našom prípade je to len jednoduchý textový súbor. Aby sme to zjednodušili, povedzme, že náš START_POS je 1 GB (údaje, ktoré máme), to, čo chceme zálohovať, je +2 GB a celková kapacita disku je 10 GB.
4, Nabudúce, keď skript spustí, VFILE existuje a bude prečítaný späť (takže vieme, aká bola počiatočná pozícia v prípade, že disk nebol prázdny) na výpočet BACKUP_CURRENT, ktorý je v podstate delta priestoru, ktorý sa práve používa na záložnej jednotke mínus počiatočná pozícia to, čo sme uložili do VFILE v poslednom kole (opäť sú to údaje, ktoré sme mali na jednotke pri spustení zálohovania). Skript interne pracuje s bajtmi, ale aby to bolo jednoduché, po pol hodine sme zálohovali 500 MB údajov, potom vzorec bude BACKUP_CURRENT = 1,5 GB - 1 GB (počiatočný stav) =>, ktorý nám vráti presne tie skutočné údaje 500 MB, tj. čo sme doteraz zálohovali. Môžete vidieť, že bez sledovania toho, aké boli pôvodné údaje na začiatku zálohovania, by tento výpočet veľkosti zlyhal, pretože by zistil, že miesto, ktoré je v súčasnosti využité, je 1,5 GB bez toho, aby ste vedeli, že na disku boli po celý čas údaje o 1 koncerte pochádza z predchádzajúcej zálohy, takže by predpokladalo, že nám server poslal 500 GB údajov namiesto 500 MB.
5, BACKUP_OVERALL sa načíta, tieto údaje vypočítal server, keď urobil počiatočný suchý rsync (jedná sa teda o externý zdroj údajov obsahujúci množstvo bajtov, ktoré budú zálohované zo servera-> OrangeBOX). Táto hodnota sa v súčasnosti skontroluje s celkovým VOĽNÝM priestorom na disku a ak ju prekročí, na LCD sa zobrazí chybové hlásenie a skript zastaví spustenie. Znovu si zapamätajte, že celý tento skript robí IBA zobrazenie, neruší proces zálohovania. Ak vyčistíte súbory na disku alebo sa množstvo súborov zmení na diaľku, a preto sa BACKUP_OVERALL zmení v jednom bode, bude pokračovať.
6, Nakoniec sme skončili s kontrolami druhej úrovne, je čas niečo ukázať. Skript zobrazuje údaje na konzole aj na LCD pomocou jednoduchej aplikácie C. Pozadie sa zmení na MODRÉ, čo znamená, že zálohovanie sa konečne začalo a priebeh sa vypočíta podľa nasledujúceho vzorca PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Toto je základný percentuálny výpočet, berieme aktuálnu sumu, v našom prípade 0,5 GB*100/2 GB = 25%.
7, Čísla sa tiež prevedú z bajtov na megabajty/gigabajty a obrazovka sa automaticky zobrazí v MB, ak je nižšia ako 1 GB.
8, Jedna vec, ktorú treba v tomto prípade zmapovať, je 25% na 20 stĺpcovom LCD displeji. To by v našom prípade bolo 25 * 20 /100 = 5. V súčasnosti je aktualizácia pomocou programu LCD implementovaná tak, že pri každom zavolaní do programu prekreslí celú obrazovku. V tomto prípade by teda 5 -krát prebehla slučka for a nakreslila 5 znamienok hash # na obrazovke, čo by sa v každom kole ukázalo ako škaredé blikanie, takže namiesto toho napíšem vypočítané údaje indikátora priebehu na LFILE1 a 2, ktoré v tomto prípade po 5 kôl bude obsahovať ##### a toto sa odčíta a zobrazí na LCD. Môžete tiež vložiť LFILE1 a 2 na ramdisk, aby ste ušetrili kartu sd od ďalších operácií zápisu, nespôsobilo mi to žiadne problémy, skript sa spúšťa raz za minútu z programu cron.
9, Po dokončení zálohy sa druhý skript zo servera, na ktorom beží rsync, dotkne FFILE (Dokončiť súbor). Na ďalšej slučke backup_progress.sh potom zobrazí, že zálohovanie je dokončené, a voliteľne zavolá ďalší skript na vypnutie OrangeBOXu. V tomto mieste vymaže svoje súbory zámku, čím znemožní ďalšie spustenie, takže aj keď nepovolíte vypnutie nasledujúcu minútu pri spustení tohto skriptu, okamžite sa ukončí, pretože BFILE tam nie je a FFILE tam nie je. Preto sa správa o dokončení zálohy zobrazí na neurčito, pokiaľ sa záloha znova nespustí.
Skript vzdialenej zálohy (orange-remote.sh):
Budete musieť vygenerovať ssh kľúč pre zálohovanie a kľúč pre šifrovanie luks pre disk. Pri prvom ručnom spustení vzdialenej zálohy sa uložia odtlačky prstov hostiteľa v oranžových políčkach do súboru hostiteľov (od tohto bodu sa môže spustiť automaticky pomocou programu cron).
DISK = "/dev/disk/by-id/…"
Ak chcete zistiť identifikátor pevného disku, spustite uuid, blkid alebo jednoducho vyhľadajte zodpovedajúce adresáre/dev/disk/.
Ak nechcete všetko zálohovať, môžete nastaviť vylúčenie zahrnutia do adresára. Je to dosť nepríjemný proces, pretože pre rsync, ak chcete vylúčiť jeden podadresár hlboko v štruktúre, musíte urobiť:
+ /a
+/a/b +/a/b/c +/a/b/c/d -/a/b/c/d/e +/dir2
Pretože tento skript vykonáva príkazy na serveri OrangeBOX na diaľku, nemá z tejto strany dohľad nad návratovými premennými, a preto používam niekoľko šikovných trikov, ako je napríklad výstup správy o otvorení vzdialeného disku na /tmp/contmsg.txt, a potom analyzovať aby zistil, či bol úspešný, ak nie, potom zmení binárny súbor rsync na nespúšťateľný, takže sa rsync nepokúsi nahrať údaje do rootfov servera OrangePI, čím zaplní kartu SD. Tiež je osvedčené nastaviť nemeniteľný bit na chattr +i /mnt /backup, aby to bolo nemožné.
Predbežný výpočet veľkosti prebieha lokálne na Serveri, preto musí byť tento súbor v nasledujúcom kroku odoslaný do OrangeBOXu.
Hlavná záloha sa spustí ako slučka pre ((i = 0; i <100; i ++)); urobiť, pretože v prípade nízkej kvality DSL/káblového internetového pripojenia sa rsync môže často prerušiť, časový limit. Ak sa úspešne dokončí, slučka sa preruší bez vyskúšania ďalších iterácií. Funguje to bezchybne s dobrými operačnými systémami, ak by však z nejakého dôvodu boli vzdialeným boxom okná a prístup by bol odmietnutý ako pravidelne na serveri NTUSER. DAT, potom by rsync vrátil kód chyby a táto slučka by sa spustila 100 -krát a potom stále zlyhala.
Krok 5: Zatvorenie a zoznam úloh
Moje inštrukcie opäť ukazujú, ako môžete sami vytvoriť niečo lepšie a prispôsobiteľnejšie zariadenie z počítača s 10 dolármi, ktoré vlastnými uzamknutými zariadeniami NAS porazí peklo z Buffala, podivné interné delenie oddielov, zaneprázdnený Linux ochromený linuxom s nástrojmi na segfaultovanie a spravované podľa ich softvéru pre Windows, uzavretého firmvéru, zlej dokumentácie a podpory a bez ohľadu na to, koľko peňazí miniete, nikdy nedostanete indikátor pokroku, ktorý by zobrazoval vašu zálohu, nehovoriac o tom, ako cool vyzerá OrangeBox (dokonca s ním používam aj oranžový kábel CAT5: D).
Pretože sú minipočítače stále výkonnejšie a zároveň udržiavajú rovnakú cenovú kategóriu <100 $, môžeme ich používať na ďalšie a ďalšie úlohy. Pretože ethernetové porty Gbee sú v dnešnej dobe celkom bežné za 1-2 roky, pamäť na týchto doskách sa dramaticky zvýši a môžu byť použité aj pre záložné systémy založené na ZFS.
-Indikátor priebehu jemného zrna programom C (pozri WasserStation jeden z mojich ďalších projektov). Práve teraz sa používa iba # hashmark # znakov v znakovom režime s lcdPuts (lcd, line1), to by sa dalo vylepšiť aj vtedy, ak sa pomocou znakových displejov LCD rozdelí 1 stĺpec na 5 častí a hlavný program C môže jednoducho vziať celé číslo ako 25 a vykresliť ho. ukazovateľ priebehu správne alebo ďalej vylepšený pomocou grafického LCD displeja
-Možnosť disponovať vymeniteľným diskom hdd na vytváranie nových a nových záloh a ich presúvanie na rôzne miesta (ak box zistí prázdny disk, mal by ho po prijatí automaticky naformátovať šifrovacím kľúčom).
-Ak si chcete vytlačiť svoje vlastné puzdro s makrombotom, mohlo by pre vás byť zaujímavé OrangeNAS:
Odporúča:
RPIEasy - viacsenzorové zariadenie založené na RPI: 6 krokov
RPIEasy - Multisenzorové zariadenie založené na RPI: Ak niekto plánuje vytvoriť nejaké senzory pre domácich majstrov, potom okrem populárneho ESP8266 lacnej a nízkej spotreby „Raspberry Pi Zero W“; značnou možnosťou je aj model. RPI Zero W stojí približne 10 USD a jeho spotreba energie je
4bitové sériové vstupné a úložné zariadenie: 4 kroky
4bitové sériové vstupné a úložné zariadenie: Už ste si predstavili, ako vstupuje vaša klávesnica a ako sa tieto údaje ukladajú! Tento projekt je menšou verziou zadávania a ukladania údajov. Prepracované vysvetlenie, ako signál z klávesov, hodín ovplyvňuje pamäťové prvky (žabky)
Ako naformátujte externé úložné zariadenie v systéme Mac OS X: 10 krokov
Ako naformátovať externé úložné zariadenie v systéme Mac OS X: Predaj starého USB? Alebo počítač? Pomocou tohto jednoduchého podrobného sprievodcu naformátujte svoje externé úložné zariadenie na počítači Mac. Výhodami tohto preformátovania pevného disku je čiastočná bezpečnosť, čiastočné pohodlie a opätovné použitie. To pomôže m
TinyPi - najmenšie herné zariadenie založené na Raspberry Pi: 8 krokov (s obrázkami)
TinyPi - najmenšie herné zariadenie na svete s Raspberry Pi: Už nejaký čas sa teda hrám s výrobou vlastných plošných spojov pre Raspberry Pi a to, čo začalo ako vtip, sa stalo výzvou zistiť, ako malý môžem byť. TinyPi sa narodil Je založený na Raspberry Pi Zero a takmer sa zmestí do
Ako pridať vyzváňacie tóny a záložné videá na server Verizon Vx8500 (alias čokoláda) zadarmo: 8 krokov
Ako zadarmo pridať vyzváňacie tóny a záložné videá na server Verizon Vx8500 (alias čokoláda): Toto vám ukáže, ako vytvoriť nabíjací/dátový kábel pre vx8500 (alias čokoláda) a ako použiť kábel na odosielanie vyzváňacích tónov a zálohovanie zakúpených vcast videá. Disclaimer: Nezodpovedám za činy tých, ktorí čítajú túto stránku.