Taula de continguts:

OrangeBOX: Dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI: 5 passos
OrangeBOX: Dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI: 5 passos

Vídeo: OrangeBOX: Dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI: 5 passos

Vídeo: OrangeBOX: Dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI: 5 passos
Vídeo: The Best Game You Should NOT Play 2024, De novembre
Anonim
OrangeBOX: dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI
OrangeBOX: dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI
OrangeBOX: dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI
OrangeBOX: dispositiu d'emmagatzematge de còpia de seguretat segur basat en OrangePI

L’OrangeBOX és una caixa de seguretat d’emmagatzematge remot tot en un per a qualsevol servidor.

El vostre servidor es pot infectar, corrompre, esborrar i totes les vostres dades encara estan segures a l’OrangeBOX i a qui no els agradaria una missió impossible, com ara un dispositiu de còpia de seguretat, el que acabeu de connectar i veure un indicador de progrés sense fer res més (només espereu la màgia el fum no sortirà al final:)).

L’OrangeBOX és el meu primer projecte que consisteix principalment en un programari, no en un hack de maquinari. Bàsicament és un NAS fabricat a mida amb una pantalla LCD connectada.

Pas 1: peces de maquinari

Peces de maquinari
Peces de maquinari
Peces de maquinari
Peces de maquinari
Peces de maquinari
Peces de maquinari

L’Orange PI zero és un ordinador de placa única de codi obert. Pot executar Android 4.4, Ubuntu, Debian. Utilitza AllWinner H2 SoC i té 256 MB / 512 MB DDR3 SDRAM (la versió 256 MB és la versió estàndard. Orange Pi Zero és per a tothom que vulgui començar a crear amb tecnologia, no només en consumeix. És una eina senzilla, divertida i útil que Podeu fer servir per començar a controlar el món que us envolta (https://www.orangepi.org/orangepizero/). Per tant, és exactament per a nosaltres permetem continuar amb ell:)

  • Caixa de metall / plàstic / fusta (he utilitzat una antiga caixa de cd-rw externa Yamaha)
  • Orange PI Zero o superior (el pinout GPIO pot canviar si utilitzeu un altre model)
  • Pantalles LCD 2x20 RGB
  • Qualsevol unitat USB SFF 3.5 / LFF 2.55
  • Sata -> adaptador USB. Tingueu en compte que, tot i que l’OrangePI no imposa un límit superior a la capacitat màxima de la unitat, tot i que ho fan molts ponts USB-SATA (2 TB màxim). El taronja PI Zero que faig servir només té un sol port USB 2.0 amb una velocitat de transferència efectiva de 28 MB / s com a màxim. He triat un USB3.0 (preparat per a futures actualitzacions) -> pont SATA (la marca no s'esmentarà) i supera el límit, de manera que és millor triar un pont demostrat que admet discos més grans com els ponts basats en xips JMicron JMS567. Feu la vostra pròpia investigació abans de comprar-ne una. Puc conviure amb el límit de velocitat i disc dur fent servir una unitat sata de 2 TB en aquest projecte (si poseu unitats més grans, es reconeixerà, però el sistema operatiu només en veurà els primers 2 TB, de manera que la resta de capacitat serà perdut).
  • Adaptador d'amplificador de 12 V 2,5 A o superior. Calculeu uns 500 mA d’ús normal per a l’OPI Zero i un pic de 1,5 A per a una unitat SATA LFF estàndard. La mida excessiva mai no fa mal. A la meva configuració, la Yamaha psu (el que podria haver subministrat corrent més que suficient a tots dos rails de 12 + 5V) malauradament va explotar: (a causa de l’ordenació del commutador principal a GND durant un segon, vaig haver d’enganxar-me en un adaptador normal, a almenys va fer que la caixa fos un parell de grams més lleugera.
  • Convertidor Buck DC-DC 12V-> 5V. He utilitzat el mateix mini-dòlar ajustable que amb IronForge, funciona perfectament.

Opcional

Si esteu disposat a gastar + 10 $, podeu obtenir l'Orange Pi Plus (https://www.armbian.com/orange-pi-one-plus/), que és un factor de forma similar i us proporciona Gbe i SATA3. Per a això, es pot utilitzar la biblioteca de cablejat Libra PI: https://github.com/OrangePiLibra/WiringPi, però com que el pinout GPIO és diferent, queda fora de l’abast d’aquest escrit.

També podeu fer aquesta compilació amb el nou Orange PI Plus2 que té connector SATA i podeu ometre l’ús de convertidors sata-> usb juntament amb les seves limitacions. Si teniu previst fer servir FreeBSD o altres BSD, és possible que la sèrie Orange PI no sigui la millor opció, ja que el seu suport de maquinari és limitat (per exemple, heu d’utilitzar una memòria USB per arrencar). Per a les BSD, és el millor consell per utilitzar Raspberry PI. Tant el codi C de la pantalla LCD com tots els scripts de l'intèrpret d'ordres són portables a qualsevol altre sistema UNIX.

Pas 2: disseny de maquinari

Disseny de maquinari
Disseny de maquinari
Disseny de maquinari
Disseny de maquinari
Disseny de maquinari
Disseny de maquinari

La caixa Yamaha era suficient per emmagatzemar tot això, no tindria prou espai per a un PC Orange PI o un tauler de factor de forma Raspi normal.

L’Ethernet es va treure amb un extensor a la part posterior de la caixa. Recordeu que l’Orange PI zero només té una interfície Ethernet de 100 àmbits / s si voleu més ràpid, haureu d’utilitzar una altra placa com ara els models Asus Tinkerboard / RPI3B + / Altres models Orange PI.

L'error PIN Out és l'únic error que podeu cometre en aquest projecte, per la qual cosa val la pena aplicar alguns principis de regla general:

1, proveu sempre d’utilitzar el cable del mateix color de FINAL a FINAL. Jo mateix comet el mateix "error" en alguns projectes en què no ho faig, simplement perquè no tinc prou cables entre homes-homes / homes-dones / dones-dones a la mà i pego 2 només per continuar el circuit. Si no documenteu correctament el vostre treball, això pot provocar mals de cap anys més tard, on heu de fer una reparació, actualitzeu-lo.

2, apliqueu una mica de cola calenta als connectors. En cas d’utilitzar aquests cables d’arrencada d’arruino estil mm / mf / ff que no siguin de primera qualitat, és bastant habitual (sobretot si es mou o es transporta el dispositiu) que els connectors es llisquin. Si sabeu que serà un dispositiu d’ús a llarg termini (possiblement s’utilitzarà fins que es trenqui ?!), és millor aplicar una mica de cola calenta tant al costat OrangePI com a la pantalla LCD dels connectors per mantenir-los units. Això es pot fondre / ratllar fàcilment més endavant si cal.

3, el cablejat zero d'OrangePI La mala notícia és que el pinout Orange PI NO és el mateix que el Raspberry PI 0/1/2/3 i fins i tot hi ha diferències entre altres models Orange PI. La millor manera d’anar és obtenir la biblioteca de cablejat (versió Orange PI Zero). La imatge pot ser una mica confusa, però aquestes van ser les millors que vaig poder trobar. Un és un mirall de 180 graus de l’altre. Tot i que la imatge no gràfica CLI pot ser més difícil de comprendre, és la més senzilla.

Sempre podeu diferenciar els 2 extrems dels endolls considerant un extrem com l’extrem POSITIU amb el (+ 3,3 / + 5V) i un altre com l’extrem NEGATIU (un GND) -> aquest és el final del connector que dóna al port ETHERNET.

A la taula Wiring PI Zero només necessitareu una columna que wPI oblidarà de les altres com si no hi fossin.

Per exemple, per connectar el LCD_E 15 (és a dir, wPI 15!) I LCD_RS 16 (és a dir, wPI 16!), Compteu els pins de l'extrem POSITIU del connector (fàcil de fer amb un bolígraf o un petit tornavís). Això baixarà físicament de 4 pins i 5 pins.

4, Agrupa. Si hi ha la possibilitat de posar pins usats l'un al costat de l'altre (agrupant-los) sempre ho hagués escollit, els farà tenir uns altres fins i tot sense cola calenta i també en altres projectes quan tingueu 2x 4x 6x connectors molex que podeu només cal que aprofiteu que els passadors estan un al costat de l’altre. Aquí el millor que podeu fer és un grup de 2-3 (ideal quan utilitzeu cables jumper recuperats de PCs antics).

Pins utilitzats per a la connexió de la pantalla LCD OrangePI:

// Utilitzeu els números PIN de WIRINGPI

#define LCD_E 15 // Activa el pin #define LCD_RS 16 // Registra seleccioneu el pin #define LCD_D4 5 // Pin de dades 4 #define LCD_D5 6 // Pin de dades 5 #define LCD_D6 10 // Pin de dades 6 #define LCD_D7 11 // Pin de dades 7

Pins utilitzats per al control de la llum de fons RGB

$ G escriu 1 0

$ G escriu 4 1 $ G escriu 7 1

Taronja PI zero wPI pins 1, 4, 7. L'única màgia que pot fer aquesta pantalla LCD en comparació amb la pantalla LCD fixa estàndard blava o verda fixa, on teniu un únic càtode que cal treure a GND que en té 3 per al 3 colors. Vermell, verd i blau. Si canvieu la combinació de la qual s’activa, podeu barrejar diferents colors d’aquests colors base, però només els extrems no tenen ombres perquè no podeu controlar la brillantor d’un color (està activat o desactivat).

Mescla additiva de colors: l’addició de vermell a verd proporciona groc; afegir vermell a blau dóna magenta; afegir verd al blau dóna cian; sumant els tres colors primaris junts es produeix el blanc.

Pas 3: sistema operatiu

Sistema operatiu
Sistema operatiu

L'OrangeBOX arrenca i Armbian linux (basat en Debian Stretch) nucli sunxi 4.14.18-amb un entorn de tallafocs segur, es connecta a una VPN i espera comandes de còpia de seguretat remotes del servidor.

Principis de disseny:

-Xifratge de disc basat en luks complet (el dispositiu en si no conté la clau per obrir la unitat de còpia de seguretat. Es copiarà temporalment des del servidor remot al ram / dev / shm, s'obrirà la unitat i s'esborrarà la clau. Un cop finalitzada la còpia de seguretat la unitat es tanca i l'OrangeBox s'apaga automàticament en 1 minut.)

-Totes les ordres i claus s’envien des del servidor remot (el dispositiu en si només conté un certificat vpn), no té cap accés al servidor remot, fins i tot si aquest dispositiu està tallat per tallafocs

-Els sistemes de fitxers locals sense xifrar per poder arrencar, però no conté res útil i, ja que l’enllaç ascendent de la VPN està molt restringit a l’altre extrem, fins i tot amb la pèrdua completa del dispositiu, un atacant no pot fer res

Descarregueu l'Armbian Stretch des de

Feu funcionar el sistema:

apt-get update && apt-get upgrade

apt-get install sysvinit-core sysvinit-utils

Editeu el fitxer / etc / inittab, es pot desactivar tota la consola, ja que la caixa s'utilitzarà com a sense cap. Comenteu la secció següent:

# 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

Reinicieu la caixa i elimineu systemd per tenir un sistema lliure lliure de bloatware de codi obert real.

apt-get remove --purge --auto-remove systemd

Instal·leu alguns paquets

apt-get install cryptsetup vim htop rsync screen gcc make git

Instal·leu la biblioteca de cablejat

cd / usr / src

git clone https://github.com/xpertsavenue/WiringOP-Zero.git cd WiringOP-Zero chmod + x./build./build

Creeu un usuari taronja per a la pantalla LCD

groupadd -g 1000 taronja

useradd -m -d / home / orange -s / bin / bash -u 1000 -g taronja taronja

El gos guardià que no vetlla per tu

apt-get install watchdog

Mirant a / etc / default / watchdog # Voleu iniciar el watchdog en arrencar? 0 o 1 run_watchdog = 1 # Voleu iniciar wd_keepalive després d'aturar el watchdog? 0 o 1 run_wd_keepalive = 1 # Carregueu el mòdul abans d'iniciar watchdog watchdog_module = "cap" # Especifiqueu opcions addicionals de watchdog aquí (vegeu la pàgina de man).

Mirant a /etc/watchdog.conf

# Almenys, activeu-los

càrrega màxima-1 = 24 càrrega màxima-5 = 18 càrrega màxima-15 = 12

/etc/init.d/watchdog start

Hi hauria d’haver almenys 1 fil de nucli i 1 procés:

arrel 42 0,0 0,0 0 0? I <10:50 0:00 [watchdogd] root 14613 0,0 0,2 1432 1080? SL 13:31 0:00 / usr / sbin / watchdog

Proves:

Assegureu-vos que ho atureu tot i que feu una sincronització i sincronització per escriure la resta de dades al disc. A continuació, com a problema arrel:

echo 1> / dev / watchdog

Passats uns segons, la màquina hauria de reiniciar-se.

Tal com indica el manual:

o La taula de processos està plena?

o Hi ha prou memòria lliure? o Hi ha prou memòria assignable? o Hi ha fitxers accessibles? o Alguns fitxers han canviat en un interval determinat? o La càrrega mitjana de treball és massa alta? o S'ha produït un desbordament de taula de fitxers? o Encara s’executa un procés? El procés s’especifica mitjançant un fitxer pid. o Algunes adreces IP responen al ping? o Les interfícies de xarxa reben trànsit? o La temperatura és massa alta? (Les dades de temperatura no sempre estan disponibles.) O Executeu una ordre definida per l'usuari per fer proves arbitràries. o Executeu una o més ordres de prova / reparació que es troben a /etc/watchdog.d. Aquestes ordres es diuen amb l'argument test o reparació. Si alguna d’aquestes comprovacions falla, el controlador provocarà l’aturada. Si alguna d'aquestes proves, tret del binari definit per l'usuari, dura més d'un minut, també es reiniciarà la màquina.

Aquest gos de vigilància podria funcionar bé en les arquitectures x86 normals, però en taules basades en ARM com ara Raspberry PIs, Orange PIs, em va fallar innombrables vegades. El sistema pot entrar en estats de bloqueig on fins i tot el gos de vigilància està penjat. Configurem-ho de totes maneres, potser millorarà amb una actualització apt-get al llarg dels anys:(

Pas 4: disseny de programari

Disseny de programari
Disseny de programari

El procés de còpia de seguretat es basa en dades basades en rsync (la millor eina de còpia de seguretat mai inventada) des del SERVER-> OrangeBOX.

L’extracció de les dades de rsync va ser l’única part difícil del projecte per tenir una barra de progrés sobre la còpia de seguretat impresa a la pantalla LCD.

Hi ha tres maneres possibles de calcular el progrés de la còpia de seguretat:

1, mitjançant fórmules com https://wintelguy.com/transfertimecalc.pl per determinar el temps aproximat que pot trigar la transferència

Temps de transferència (d: h: m: s): 0: 02: 44: 00

Per a la comparació: temps estimat per transferir fitxers de 123 GB a diferents enllaços de xarxa (d: h: m: s): línia 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

Si el rsync acaba, indica el script per aturar el càlcul. Aquest mètode només és aproximat i no és fiable, a més, la velocitat de l'enllaç no és fixa, pot alentir-se i accelerar-se de nou. Això és només un càlcul teòric.

2, Fer comprovacions de mida al directori per determinar quantes dades ja hem sincronitzat. Pot ser molt lent amb centenars de fitxers petits de GB (tot i que du -s a Linux fa una memòria cau si el torneu a executar)

Amfitrió A -> Còpia de seguretat de dades del servidor Direcció de dades: 235 GB

Amfitrió B -> Dades de client Orange Box que tenim ara mateix Direcció de dades: 112 GB

El delta té 123 GB.

3, Si el sistema de fitxers està dedicat com en el nostre cas / dev / mapper / backup, podem aprofitar l’indicador general d’ús del sistema de fitxers per determinar com avança la nostra còpia de seguretat i això és molt maleït. En aquest cas ni tan sols necessitem canalitzar el rsync stdout en cap lloc, només cal executar un rsync sec, esperar fins que es completi, calcular el delta en bytes i comprovar-ho amb l’espai lliure que tenim a la unitat de còpia de seguretat i voila que podem ara feu un bonic gràfic de barres. Aquest va ser el mètode que vaig triar i aquí teniu el meu guió:

#! / bin / bash

# Calculadora de progrés de còpia de seguretat per a OrangeBOX per NLD # Versió: 0.2 (2018-03-05) # # Executeu-lo com a usuari sense privilegis des de cron # * * * * * /home/orange/backup_progress.sh &> / dev / null # # Aquest script només s’encarrega de mostrar dades a la pantalla LCD, es comunica indirectament amb # amb el programa principal mitjançant fitxers de posició i bloqueig. BACKUP_DRIVE = "/ dev / mapper / backup" VFILE = "$ HOME / start.pos" # ús del disc al començament de la còpia de seguretat TFILE = "$ HOME / trans.size" # mida de transferència precalculada global BFILE = "$ HOME / backup.lck "# determina l'estat d'inici FFILE =" $ HOME / backup.fin "# determina l'estat acabat LFILE1 =" $ HOME / lcd1.bar "# LCD data indicator indicator LFILE2 =" $ HOME / lcd2.bar "# LCD progress indicador de dades SHUTDOWN = "1" # Si 1 inicia un altre script que apaga la caixa al final de la còpia de seguretat BACKUP_CURRENT = "0" # S'ha d'inicialitzar però es calcularà DRIVE_SIZE = "" # Mida de la unitat en bytes (secundari check) LCD = "sudo / bin / lcd" function 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} # Estat clar (definit a l'arrencada per bootup_display.sh). No hi ha cap còpia de seguretat en curs, NO confongueu la pantalla LCD # status. Només es mostra el progrés en cas que hi hagi una còpia de seguretat en curs => Cap fitxer d'inici I cap fitxer fin = surt si [! -f $ BFILE] && [! -f $ FITXA]; a continuació, sortiu 1 fi # Si la còpia de seguretat ha finalitzat, aquest script el mostrarà i eliminarà els bloquejos # per no poder executar-se de nou fins a la següent iniciació. si [-f $ FFILE]; després, verd $ LCD "Còpia de seguretat" "** Completat **" eco "Còpia de seguretat finalitzada" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # La còpia de seguretat s'ha acabat de netejar si [$ SHUTDOWN == "1"]; a continuació, feu ressò de "Executant script d'aturada …" /home/orange/shutdown.sh & fi exit 0 fi # A partir d'aquest punt, l'script NOMÉS s'executa si hi ha una còpia de seguretat EN CURS. # per avortar, però, no eliminarà el fitxer backup.lck, de manera que entrarà aquí una i altra vegada i evaularà les condicions. is_mount $ BACKUP_DRIVE si [$ status -ne 0]; llavors $ LCD "ERR: vermell: la unitat de còpia de seguretat" "no està muntada!" echo "La unitat de còpia de seguretat no està muntada" sortida 1 fi si [! -s $ TFILE]; després, $ LCD "ERR: transfile" "està buit" eco "El fitxer de càlcul de la mida del transport està buit." sortida 1 fi BACKUP_OVERALL = $ (cap -1 $ TFILE | tr -d '\ n') si [-z $ BACKUP_OVERALL]; després, vermell $ LCD "ERR: la lectura de mida" "del servidor no és vàlida" eco "La lectura de mida total de la còpia de seguretat no és vàlida 1" sortida 1 fi si!

Tot i que el codi és senzill, aquí hi ha una descripció del que fa:

1, si el BFILE o FFILE no existeix (que és l'estat després d'un inici clar) que indica que no hi ha cap procés de còpia de seguretat, no feu res. D'aquesta manera, podeu representar gràficament la informació que vulgueu sobre l'arrencada, com el nom de l'amfitrió, la IP, el temps d'activitat, etc.

2, Passem a la secció is_mount $ BACKUP_DRIVE. Només un recordatori de l’única manera que vam arribar aquí és que es va iniciar una còpia de seguretat perquè existís el BFILE. Ara, el codi només fa diverses comprovacions d'errors, com si la unitat de còpia de seguretat està muntada? o altres errors. Recordeu que aquest és només un programa DISPLAY, fins i tot si la mida superaria les còpies de seguretat, no avortarà res.

3, D'acord, totes les comprovacions d'errors han esgotat el temps per calcular el gràfic percentual. En primer lloc, l'script pren una "instantània" de l'espai utilitzat en bytes al sistema de fitxers de còpia de seguretat ara mateix i l'emmagatzema a VFILE. Quin és el propòsit d'això: un script bash és apàtrida, perd dades entre les execucions, de manera que si voleu "recordar" algunes dades de l'execució anterior, heu de desar-les en algun lloc. En el nostre cas, aquest és només un simple fitxer de text. Per fer-ho més senzill, diguem que el nostre START_POS és d'1 GB (dades que tenim), el que volem fer una còpia de seguretat és de + 2 GB i la capacitat total de la unitat és de 10 GB.

4, la propera vegada que s'executi l'script existeix el VFILE i es tornarà a llegir (per tant, sabem quina era la posició inicial en cas que la unitat no estigués buida) per calcular el BACKUP_CURRENT, que és essencialment un delta de l'espai que s'utilitza ara mateix. a la unitat de còpia de seguretat menys la posició inicial del que hem desat al VFILE a l'última ronda (de nou, aquestes són les dades que teníem a la unitat quan es va iniciar la còpia de seguretat). L’escriptura funciona internament amb bytes, però per fer-ho més senzill al cap de mitja hora, hem fet una còpia de seguretat de 500 MB de dades, la fórmula seria BACKUP_CURRENT = 1,5 GB - 1 GB (estat inicial) => que ens retorna exactament les dades reals de 500 MB, és a dir, del que vam recolzar fins ara. Podeu veure que sense fer un seguiment de les dades originals al començament de la còpia de seguretat, aquest càlcul de mida fallaria perquè veuria que l’espai que s’utilitza ara és d’1,5 GB sense saber que hi havia dades de 1 gig al llarg del temps prové d'una còpia de seguretat anterior, de manera que suposaria que el servidor ens ha enviat dades de 1,5 GB en lloc de 500 MB.

5, es llegirà BACKUP_OVERALL, les dades van ser calculades pel servidor quan va fer el rsync sec inicial (per tant, es tracta d’una font de dades externa que conté la quantitat de bytes del que es farà una còpia de seguretat des de Server-> OrangeBOX). Aquest valor es comprovarà en relació amb l’espai GRATU overallT total del disc en aquest moment i, si el supera, es mostrarà un missatge d’error a la pantalla LCD i l’escriptura detindrà l’execució. Recordeu de nou que tot aquest script només es mostra, no interfereix amb el procés de còpia de seguretat. Si netegeu fitxers al disc o la quantitat de fitxers canvia remotament i, per tant, el BACKUP_OVERALL canvia en un moment determinat, es procedirà.

6, Finalment, hem acabat amb les comprovacions de segon nivell, és hora de mostrar alguna cosa. L'escriptori mostra les dades a la consola i a la pantalla LCD mitjançant una senzilla aplicació C. El fons es canvia a BLAU que indica que la còpia de seguretat finalment va començar i el progrés es va calcular amb la següent fórmula PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Aquest és un càlcul percentual bàsic que prenem la quantitat actual, en el nostre exemple 0,5 GB * 100/2 GB = 25%.

7, els números també es converteixen de bytes a bytes Mega / Giga i la pantalla es mostra automàticament en MB si és inferior a 1 GB.

8, Una cosa que queda per mapar això en el nostre cas és el 25% en una pantalla LCD de 20 columnes. Això seria 25 * 20/100 = 5 al nostre exemple. Actualment s’implementa l’actualització amb el programa LCD que cada vegada que truqueu al programa tornarà a dibuixar tota la pantalla. Per tant, en aquest cas s’executaria un bucle for 5 vegades per dibuixar 5 hashmarks # a la pantalla, es mostraria com a parpelleig lleig a cada ronda, així que, en canvi, escric les dades de la barra de progrés calculades a LFILE1 i 2, que en aquest cas després les 5 rondes contindrien ##### i es llegirà i es mostrarà a la pantalla LCD. També podeu posar LFILE1 i 2 al ramdisk per desar la sdcard d’operacions d’escriptura addicionals, no em va causar cap problema, l’escriptura s’executa una vegada cada minut des de cron.

9, Quan finalitzi la còpia de seguretat, l'altre script del servidor que executa rsync tocarà el FFILE (Finalitzar fitxer). Al següent bucle backup_progress.sh mostrarà que la còpia de seguretat s'ha completat i, opcionalment, crida a un altre script per apagar l'OrangeBOX. Esborra els fitxers de bloqueig en aquest moment, cosa que impossibilita altres execucions, de manera que, fins i tot si no activeu l'apagat el minut següent quan s'executa aquest script, sortirà immediatament perquè el BFILE no hi és i el FFILE no hi és. Per tant, mostrarà el missatge de còpia de seguretat completat indefinidament tret que es reiniciï de nou la còpia de seguretat.

Script de còpia de seguretat remota (orange-remote.sh):

Haureu de generar una clau ssh per a la còpia de seguretat i una clau per al xifratge luks de la unitat. Quan executeu la còpia de seguretat remota manualment per primera vegada, desarà l'empremta digital de l'amfitrió de les caixes taronja al fitxer hosts (a partir d'aquest moment es pot executar automàticament per cron).

DISK = "/ dev / disk / by-id / …"

Per esbrinar el vostre identificador de disc dur, executeu uuid, blkid o simplement cerqueu els directoris / dev / disk / corresponents.

Es pot configurar un excloure directori si no voleu fer una còpia de seguretat de tot. Aquest és un procés força molest, ja que per a rsync si voleu excloure un únic subdirectori en l'estructura, heu de fer:

+ / a

+ / a / b + / a / b / c + / a / b / c / d - / a / b / c / d / e + / dir2

Com que aquest script està executant comandes a l’OrangeBOX de forma remota, no té cap supervisió de les variables de retorn des d’aquest costat, per tant, faig servir alguns trucs intel·ligents, com ara que emetrà el missatge d’obrir la unitat remota a /tmp/contmsg.txt i, a continuació, analitzeu per veure si ha tingut èxit, si no, canvia el binari rsync a no executable, de manera que el rsync no intentarà carregar dades als rootfs d'OrangePIs omplint la targeta SD. També és una bona pràctica establir el bit immutable a chattr + i / mnt / backup per fer-ho impossible.

El precàlcul de mida es realitza localment al servidor, per tant, aquest fitxer s'ha d'enviar a OrangeBOX en el següent pas.

La còpia de seguretat principal s'inicia com un bucle per a ((i = 0; i <100; i ++)); fer-ho perquè en cas de connexions a Internet DSL / Cable de baixa qualitat, el rsync sovint es pot interrompre, el temps d'espera. Si es completa amb èxit, el bucle es trencarà sense provar més iteracions. Això funciona perfectament amb bons sistemes operatius, però si per alguna raó la caixa remota seria Windows i hi hauria accés denegat com de manera regular a NTUSER. DAT, llavors rsync retornaria un codi d’error i aquest bucle s’executaria 100 vegades i després fallaria.

Pas 5: tancament i llista de tasques

Tancament i llista de tasques
Tancament i llista de tasques
Tancament i llista de tasques
Tancament i llista de tasques

El meu instructiu demostra una vegada més com podeu crear un dispositiu millor i més personalitzable des d’un ordinador de 10 $ que pugueu a Buffalo amb els seus dispositius NAS bloquejats, el particionament intern estrany, el linux buscat ocupat amb eines de seguretat, gestionat pel seu programari de Windows, firmware tancat, documentació i assistència defectuosos i, per molt que gastis, mai no obtindràs cap indicador de progrés que mostri la teva còpia de seguretat, per no parlar del bon aspecte de l’OrangeBox (fins i tot amb cable CAT5 taronja: D).

Amb els mini ordinadors cada vegada més potents, mantenint la mateixa línia de preus de <100 $, els podem utilitzar per a més i més tasques. Com que els ports Gbe Ethernet són força habituals en aquests dies en 1-2 anys, la memòria en aquestes plaques augmentarà dràsticament i també es poden utilitzar per a sistemes de còpia de seguretat basats en ZFS.

-Indicador de progrés de gra fi pel programa C (vegeu WasserStation, un dels meus altres projectes). Ara mateix només hi ha # hashmark # caràcters que s’utilitzen en mode de caràcters amb lcdPuts (lcd, line1), això es podria millorar fins i tot quan s’utilitzen LCD de caràcters per dividir 1 columna en 5 parts i el programa C principal només podria prendre un nombre enter com 25 i treure la barra de progrés s'ha millorat correctament o es millora encara més mitjançant l'ús d'un LCD gràfic

-Possibilitat de tenir un disc dur extraïble per crear còpies de seguretat noves i noves i moure-les a diferents ubicacions (si la caixa detecta una unitat buida, hauria de formatar-la automàticament amb la clau de xifratge un cop rebuda).

-Si voleu imprimir el vostre propi estoig amb makerbot, OrangeNAS pot ser interessant per a vosaltres:

Recomanat: