Sadržaj:

OrangeBOX: OrangePI uređaj za pohranu sigurnih sigurnosnih kopija: 5 koraka
OrangeBOX: OrangePI uređaj za pohranu sigurnih sigurnosnih kopija: 5 koraka

Video: OrangeBOX: OrangePI uređaj za pohranu sigurnih sigurnosnih kopija: 5 koraka

Video: OrangeBOX: OrangePI uređaj za pohranu sigurnih sigurnosnih kopija: 5 koraka
Video: The Ubuntu Orange Box 2024, Srpanj
Anonim
OrangeBOX: Sigurnosni uređaj za pohranu podataka zasnovan na OrangePI
OrangeBOX: Sigurnosni uređaj za pohranu podataka zasnovan na OrangePI
OrangeBOX: Sigurnosni uređaj za pohranu podataka zasnovan na OrangePI
OrangeBOX: Sigurnosni uređaj za pohranu podataka zasnovan na OrangePI

OrangeBOX sveobuhvatna je sigurnosna kutija za udaljenu pohranu za sve poslužitelje.

Vaš poslužitelj može biti zaražen, oštećen, obrisan, a svi vaši podaci i dalje zaštićeni na OrangeBOX -u i tko ne bi volio nemoguću misiju poput sigurnosnog uređaja na koji se samo priključite i vidite indikator napretka, a da ne radite ništa više (samo se nadajte čaroliji dim neće izaći na kraju:)).

OrangeBOX je moj prvi projekt koji je uglavnom softver, a ne hardverski hack. To je u osnovi NAS po mjeri izrađen s LCD -om.

Korak 1: Dijelovi hardvera

Dijelovi hardvera
Dijelovi hardvera
Dijelovi hardvera
Dijelovi hardvera
Dijelovi hardvera
Dijelovi hardvera

Narančasta PI nula jednokrilno je računalo otvorenog koda. Može pokretati Android 4.4, Ubuntu, Debian. Koristi AllWinner H2 SoC i ima 256MB/512MB DDR3 SDRAM (verzija od 256 MB je standardna verzija. Orange Pi Zero je za svakoga tko želi početi stvarati s tehnologijom - ne samo da je konzumira. To je jednostavan, zabavan i koristan alat mogu upotrijebiti za početak preuzimanja kontrole nad svijetom oko sebe (https://www.orangepi.org/orangepizero/). Dakle, upravo je to za nas, nastavimo s tim:)

  • Metalna/plastična/drvena kutija (koristio sam staru Yamaha vanjsku cd-rw kutiju)
  • Narančasta PI Zero ili bolja (ispis GPIO -a mogao bi se promijeniti ako koristite drugi model)
  • 2x20 RGB LCD ekrani
  • Bilo koji SFF 3.5/ LFF 2.55 USB pogon
  • Sata -> usb adapter. Imajte na umu da iako OrangePI ne nameće gornju granicu maksimalnog kapaciteta pogona, međutim, to čini mnogo USB-to-SATA mostova (maksimalno 2TB). Narančasti PI Zero koji koristim ima samo jedan USB 2.0 port s učinkovitom brzinom prijenosa od 28 MB/s max. Odabrao sam USB3.0 (pripremljen za buduće nadogradnje) -> SATA most (marka se neće spominjati) i on ograničava granicu pa je bolje odabrati most za koji je dokazano da podržava veće pogone, poput mostova zasnovanih na čipovima JMicron JMS567. Prije nego što ga kupite, napravite vlastito istraživanje. Mogu živjeti s ograničenjem brzine i tvrdog diska koristeći 2TB sata pogon u ovom projektu (ako ubacite veće diskove, bit će prepoznat, ali OS će vidjeti samo prvih 2TB, pa će ostatak kapaciteta biti izgubljeno).
  • 12V adapter od 2,5 A ili više. Izračunajte oko 500 mA normalne uporabe za OPI Zero i 1,5A vrha za standardni LFF SATA pogon. Prevelika veličina nikada ne boli. U mojim postavkama Yamaha psu (što je moglo dati više nego dovoljno struje na obje 12+5V tračnice) nažalost je eksplodirao: (zbog sortiranja glavnog prekidača na GND na sekundu pa sam morao zalijepiti obični adapter, na barem je kutiju učinilo par grama lakšom.
  • Buck pretvarač DC-DC 12V-> 5V. Koristio sam isti podesivi mini dolar kao i kod IronForgea, savršeno radi.

Opcionalno

Ako ste spremni potrošiti + 10 $, tada možete nabaviti Orange Pi Plus (https://www.armbian.com/orange-pi-one-plus/) koji je sličnog oblika i dobivate Gbe i SATA3. U tu se svrhu može koristiti biblioteka ožičenja Libra PI: https://github.com/OrangePiLibra/WiringPi, ali budući da je ispis GPIO -a različit, to je izvan opsega ovog pisanja.

Ovu gradnju možete izvesti i s novim Orange PI Plus2 koji ima SATA konektor, a možete preskočiti upotrebu sata-> USB pretvarača, zajedno s njihovim ograničenjima. Ako planirate koristiti FreeBSD ili druge BSD -ove, narančasta PI serija možda neće biti najbolji izbor jer je njihova hardverska podrška ograničena (na primjer, za pokretanje morate koristiti USB stick). Za BSD -ove najbolji je savjet koristiti Raspberry PI. I C kod za LCD i sve ljuske skripte prenosive su na bilo koji drugi UNIX sustav.

Korak 2: Dizajn hardvera

Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera

Yamaha kutija bila je taman dovoljna za spremanje svega ovoga, ne bi imala dovoljno mjesta za narančasto PI računalo ili običnu Raspi ploču s faktorima oblika.

Ethernet je izvučen s nastavkom na stražnjoj strani kutije. Upamtite da Orange PI zero ima samo 100mbit/s Ethernet sučelje, ako želite brže, morat ćete koristiti drugu ploču, poput Asus Tinkerboard/RPI3B+/Ostali Orange PI modeli.

Pogrešan izvlačenje PIN -a jedina je greška koju možete napraviti u ovom projektu, stoga vrijedi primijeniti neko pravilo principa palca:

1, Uvijek pokušajte koristiti kabel iste boje od KRAJA do KRAJA. I sam činim istu "grešku" u nekim projektima u kojima to ne činim, jednostavno zato što nemam pri ruci dovoljno dugo muško-muško/muško-žensko/žensko-žensko kabele i krpim 2 zajedno samo da nastavim krug. Ako ne dokumentirate svoj rad na odgovarajući način, to može dovesti do glavobolje godinama kasnije, gdje morate obaviti popravak, nadogradnju.

2, Nanesite malo vrućeg ljepila na konektore. U slučaju korištenja ovih kabela mm/mf/ff u stilu arduino-starter kompleta koji nisu vrhunske kvalitete, uobičajeno je (osobito ako se krećete po uređaju/transportirate) da konektori iskliznu. Ako znate da će to biti uređaj za dugotrajnu uporabu (moguće ga je koristiti dok se ne pokvari ?!), onda je bolje nanijeti malo vrućeg ljepila i na OrangePI i LCD stranu konektora kako biste ih držali zajedno. To se kasnije može lako otopiti/ogrebati, ako je potrebno.

3, OrangePI nulto ožičenje Loša vijest je da Orange PI pinout NIJE isti kao Raspberry PI 0/1/2/3, pa čak postoji razlika između ostalih Orange PI modela. Najbolji način za to je nabaviti knjižnicu ožičenja (narančasta verzija PI Zero). Slika bi mogla biti pomalo zbunjujuća, ali ovo je najbolje što sam uspio pronaći. Jedan je ogledalo od 180 stupnjeva drugog. Iako je negrafička slika CLI -a možda teže razumljiva, ona je najjednostavnija.

Uvijek možete razlikovati 2 kraja utičnice ako jedan kraj smatrate POZITIVNIM krajem (+3,3/+5V), a drugi kao NEGATIVNI kraj (jedan GND) -> ovo je kraj priključka okrenut prema ETHERNET priključku.

Iz tablice Wiring PI Zero trebat će vam samo jedan stupac koji wPI zaboravi na ostale kao da ih ne bi bilo.

Na primjer, za spajanje LCD_E 15 (to je wPI 15!) I LCD_RS 16 (to je wPI 16!) Izbrojite pinove s POZITIVNOG kraja konektora (lako se to može učiniti olovkom ili malim odvijačem). To će fizički pasti 4 igle i 5 pinova.

4, Grupirajte se. Ako postoji mogućnost stavljanja rabljenih igala jedan do drugoga (grupiranje u skupine), uvijek su to odabrali, to ih čini međusobno prihvatljivim čak i bez vrućeg ljepila, a također i u drugim projektima kada imate 2x 4x 6x molex konektore, možete samo iskoristite igle koje su jedna do druge. Ovdje najbolje što možete učiniti je grupa od 2-3 osobe (idealno za korištenje spašenih prespojnih kabela sa starih računala).

Igle koje se koriste za povezivanje OrangePI LCD zaslona:

// UPORABA WIRINGPI PIN BROJEVA

#define LCD_E 15 // Omogući PIN #define LCD_RS 16 // Registrirajte odabir pina #define LCD_D4 5 // Podatkovni pin 4 #define LCD_D5 6 // Podaci pin 5 #define LCD_D6 10 // Podaci pin 6 #define LCD_D7 11 // Podatkovni pin 7

Igle se koriste za kontrolu RGB pozadinskog osvjetljenja

$ G napišite 10

$ G napiši 4 1 $ G napiši 7 1

Narančasti PI nula wPI pinovi 1, 4, 7. Jedina čarolija koju ovaj LCD može učiniti u usporedbi sa standardnim LCD -om sa fiksnim plavim ili zelenim pozadinskim osvjetljenjem gdje imate jednu katodu koju je potrebno spustiti do GND -a da ima 3 za 3 boje. Crvena, zelena i plava. Promjenom kombinacije koja je UKLJUČENA možete miješati različite boje iz ovih osnovnih boja, ali samo visoki krajevi bez nijansi jer ne možete kontrolirati svjetlinu boje (ili je uključena ili isključena).

Dodatno miješanje boja: dodavanjem crvene u zelenu dobiva se žuta; dodavanjem crvene u plavu dobiva se magenta; dodavanjem zelenog u plavo dobiva se cijan; zbrajanje sve tri osnovne boje daje bijelu boju.

Korak 3: Operacijski sustav

Operacijski sustav
Operacijski sustav

OrangeBOX se podiže i Armbian linux (temeljen na Debian Stretch) 4.14.18-sunxi jezgri sa sigurnim vatrozidnim okruženjem, povezuje se s VPN-om i čeka udaljene naredbe za sigurnosno kopiranje sa poslužitelja.

Principi dizajna:

-Potpuno šifriranje diska zasnovano na luksu (sam uređaj ne sadrži ključ za otvaranje rezervnog pogona. Privremeno će se kopirati s udaljenog poslužitelja na ram /dev /shm, pogon se otvorio i ključ izbrisan. Nakon što je sigurnosno kopiranje završeno pogon se zatvorio i OrangeBox se automatski isključuje za 1 minutu.)

-Sve naredbe i ključevi se šalju s udaljenog poslužitelja (sam uređaj sadrži samo vpn certifikat) nema nikakav pristup udaljenom poslužitelju čak je i ssh s ovog uređaja vatrozidom

-Lokalni datotečni sustavi nisu šifrirani kako bi se mogli pokrenuti, ali ne sadrže ništa korisno, a budući da je uplink VPN-a jako ograničen na drugom kraju, čak i uz potpuni gubitak uređaja, napadač ne može učiniti ništa

Preuzmite Armbian Stretch sa

Pokrenite sustav i pokrenite ga:

apt-get update && apt-get upgrade

apt-get install sysvinit-core sysvinit-utils

Uredite /etc /inittab, sva se konzola može onemogućiti jer će se okvir koristiti kao bez glave. Komentirajte sljedeći odjeljak:

#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

Ponovno pokrenite kutiju i uklonite systemd da biste imali pravi sustav otvorenog koda bez bloatwarea.

apt-get remove --purge --automatsko uklanjanje systemd

Instalirajte neke pakete

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

Instalirajte knjižnicu wiringpi

cd /usr /src

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

Napravite narančastog korisnika za LCD zaslon

groupadd -g 1000 narančasta

useradd -m -d /home /narančasta -s /bin /bash -u 1000 -g narančasta narančasta

Pas čuvar koji ne pazi na vas

apt-get install watchdog

Gledajući/etc/default/watchdog # Pokrenuti nadzornog psa prilikom pokretanja? 0 ili 1 run_watchdog = 1 # Pokrenuti wd_keepalive nakon zaustavljanja nadzornog psa? 0 ili 1 run_wd_keepalive = 1 # Učitaj modul prije pokretanja watchdog watchdog_module = "none" # Ovdje navedite dodatne opcije nadzornika (pogledajte stranicu).

Gledajući /etc/watchdog.conf

# Omogućite barem ove

max-load-1 = 24 max-load-5 = 18 max-load-15 = 12

/etc/init.d/watchdog start

Trebao bi postojati najmanje 1 nit jezgre i 1 proces:

korijen 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

Testiranje:

Pobrinite se da sve zaustavite i izvršite sinkronizaciju && sinkronizaciju && sinkronizaciju da biste zapisali ostatak podataka na disk. Zatim kao root problem:

echo 1> /dev /watchdog

Nakon nekoliko sekundi stroj bi se trebao ponovno pokrenuti.

Kako navodi priručnik:

o Je li tablica procesa puna?

o Ima li dovoljno slobodne memorije? o Ima li dovoljno memorije koja se može dodijeliti? o Jesu li neke datoteke dostupne? o Jesu li se neke datoteke promijenile u zadanom intervalu? o Je li prosječno radno opterećenje preveliko? o Je li došlo do prelijevanja tablice datoteka? o Je li proces još uvijek u tijeku? Proces je određen pid datotekom. o Odgovaraju li neke IP adrese na ping? o Primaju li mrežna sučelja promet? o Je li temperatura previsoka? (Podaci o temperaturi nisu uvijek dostupni.) O Izvršite korisnički definiranu naredbu za izvođenje proizvoljnih testova. o Izvršite jednu ili više naredbi za ispitivanje/popravak koje se nalaze u /etc/watchdog.d. Ove naredbe se pozivaju s ispitivanjem argumenata ili popravkom. Ako bilo koja od ovih provjera ne uspije, nadzornik će uzrokovati gašenje. Ako bilo koji od ovih testova, osim korisnički definiranih binarnih datoteka, traje dulje od jedne minute, stroj će se ponovno pokrenuti.

Ovaj pas za nadzor mogao bi raditi dobro na redovnim x86 arhitekturama, ali na pločama temeljenim na ARM -u, poput Raspberry PI -a, Orange PI -a, bezbroj mi je puta uspio. Sustav može ući u stanja obješenja gdje čak i pas čuvar visi. Samo ga ipak konfigurirajmo, možda će se s godinama poboljšati s apt-get nadogradnjom:(

Korak 4: Dizajn softvera

Dizajn softvera
Dizajn softvera

Sam postupak izrade sigurnosne kopije temelji se na rsync-u (najbolji alat za izradu sigurnosnih kopija ikad izumljen). Podaci se guraju iz SERVER-> OrangeBOX.

Izvlačenje podataka iz rsynca bio je jedini izazovni dio projekta da se na LCD -u ispiše traka napretka u vezi sigurnosne kopije.

Postoje tri moguća načina za izračun napretka sigurnosne kopije:

1, Korištenje formula poput https://wintelguy.com/transfertimecalc.pl za određivanje otprilike vremena koje prijenos može potrajati

Vrijeme prijenosa (d: h: m: s): 0: 02: 44: 00

Za usporedbu: Predviđeno vrijeme za prijenos datoteke od 123 GB preko različitih mrežnih veza (d: h: m: s): linija T1/DS1 (1,544 Mbps) - 7: 09: 01: 46 Ethernet (10 Mbps) - 1:03: 20:00 Brzi Ethernet (100 Mbps) - 0: 02: 44: 00 Gigabitni Ethernet (1000 Mbps) - 0: 00: 16: 24 10 Gigabitni Ethernet (10 Gbps) - 0: 00: 01: 38

Ako rsync završi, signalizira skripti da zaustavi izračun. Ova metoda je samo približna i nije pouzdana, također brzina veze nije fiksna, može se usporiti, ponovno ubrzati. Ovo je samo teoretski izračun.

2, Provjera veličine direktorija radi utvrđivanja koliko smo podataka već sinkronizirali. Može biti vrlo spor sa stotinama GB -ovih malih datoteka (iako du -s u Linuxu ima malo predmemorije ako ga ponovno pokrenete)

Domaćin A -> Podaci poslužitelja za sigurnosnu kopiju Podaci režija: 235 GB

Domaćin B -> Podaci o klijentu narančaste kutije koje trenutno imamo Podaci režija: 112 GB

Delta je 123 GB.

3, Ako je datotečni sustav namjenski, kao u našem slučaju/dev/mapper/backup, možemo iskoristiti ukupni pokazatelj korištenja datotečnog sustava kako bismo utvrdili kako napreduje naša sigurnosna kopija, a to je doista vraški brzo. U ovom slučaju ne moramo čak ni prenositi rsync stdout bilo gdje, samo pokrenite suhu rsync, pričekajte da se dovrši, izračunajte deltu u bajtima i provjerite ovo sa slobodnim prostorom što imamo na rezervnom pogonu i voila možemo sada napravi lijep stupčasti grafikon. Ovo je metoda koju sam odabrao i evo moje skripte za nju:

#!/bin/bash

# Kalkulator napretka sigurnosnog kopiranja za OrangeBOX by NLD # Verzija: 0.2 (2018/03/05) # # Pokreni ga kao neprivilegirani korisnik s cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Ova je skripta odgovorna samo za prikaz podataka na LCD -u, komunicira # s glavnim programom neizravno putem datoteka položaja i zaključavanja. BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # upotreba diska na početku sigurnosne kopije TFILE = "$ HOME/trans.size" # ukupna prethodno izračunata veličina prijenosa BFILE = "$ HOME/ backup.lck " # određuje započeto stanje FFILE =" $ HOME/backup.fin " # određuje završeno stanje LFILE1 =" $ HOME/lcd1.bar " # Podaci o pokazatelju napredovanja LCD -a LFILE2 =" $ HOME/lcd2.bar " # Napredak LCD -a podaci pokazatelja SHUTDOWN = "1" # Ako 1 pokreće drugu skriptu koja zatvara okvir na kraju sigurnosne kopije BACKUP_CURRENT = "0" # Mora se inicijalizirati, ali će se izračunati DRIVE_SIZE = "" # Veličina pogona u bajtovima (sekundarno check) LCD = "sudo /bin /lcd" funkcija is_mount () {grep -q "$ 1" /proc /mounts status = $? } funkcija crvena () {sudo /bin /lcdcolor red} funkcija zelena () {sudo /bin /lcdcolor green} funkcija plava () {sudo /bin /lcdcolor blue} # Jasno stanje (postavljeno pri pokretanju od strane bootup_display.sh). Sigurnosno kopiranje nije u tijeku, NEMOJTE zabrljati LCD sa statusom #. Prikažite napredak samo u slučaju da postoji sigurnosna kopija => Nema početne datoteke I Nema datoteke s perajama = zatvorite ako [! -f $ BFILE] && [! -f $ FFILE]; zatim izađite 1 fi # Ako je sigurnosno kopiranje završeno, ova skripta će to prikazati i ukloniti brave # kako se ne bi mogla ponovno pokrenuti do sljedeće inicijacije. if [-f $ FFILE]; zatim zeleno $ LCD "Backup" "** Completed **" echo "Backup Completed" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Sigurnosno kopiranje je završeno čišćenje ako [$ SHUTDOWN == "1"]; zatim odjeknite "Izvršavanje skripte za isključivanje …" /home/orange/shutdown.sh & fi izlaz 0 fi # Od ovog trenutka skripta se izvodi SAMO ako postoji TEKUĆA sigurnosna kopija # stoga će se sve pogreške ispisati na LCD -u i uzrokovati skriptu # za prekid, međutim, neće ukloniti datoteku backup.lck, pa će ulaziti ovdje # uvijek iznova i evaluirati uvjete. is_mount $ BACKUP_DRIVE if [$ status -ne 0]; tada crveni $ LCD "ERR: Sigurnosni pogon" "" nije montiran! " echo "Rezervni pogon nije montiran" izlaz 1 fi ako [! -s $ TFILE]; tada crveno $ LCD "ERR: transfile" "je prazno" echo "Datoteka za izračunavanje transportne veličine je prazna." izlaz 1 fi BACKUP_OVERALL = $ (glava -1 $ TFILE | tr -d '\ n') ako [-z $ BACKUP_OVERALL]; zatim crveno $ LCD "ERR: Povratak veličine" "s poslužitelja nevažeći" echo "Povrat povratka ukupne veličine je nevažeći 1" izlaz 1 fi ako!

Iako je kôd jednostavan, evo nekoliko opisa njegova djelovanja:

1, Ako BFILE ili FFILE ne postoje (što je stanje nakon jasnog pokretanja), to znači da nema procesa sigurnosnog kopiranja, stoga NE učinite ništa samo prestanite. Na ovaj način možete iscrtati sve lijepe informacije koje želite o pokretanju, kao što su naziv hosta, ip, vrijeme neprekidnog rada itd. I neće biti zabrljano.

2, Prijeđimo na odjeljak is_mount $ BACKUP_DRIVE. Samo podsjetnik, jedini način na koji smo došli ovdje je da je sigurnosna kopija pokrenuta tako da BFILE postoji. Sada kôd samo izvršava različite provjere pogrešaka, poput je li sigurnosni pogon montiran?, Je li ukupna veličina onoga što namjeravamo sigurnosno kopirati premašuje pogon? ili druge greške. Upamtite da je ovo program samo za DISPLAY, čak i ako bi veličina premašila sigurnosne kopije, neće ništa prekinuti.

3, U redu sve provjere pogrešaka očistile su vrijeme za izračun postotnog grafikona. Prvo skripta pravi "snimku" prostora koji se trenutno koristi u bajtovima na datotečnom sustavu sigurnosne kopije i pohranjuje ga u VFILE. Koja je svrha ovoga: bash skripta nema status, gubi podatke između izvršenja, pa ako želite "zapamtiti" neke podatke iz prethodne izvedbe, morate ih negdje spremiti. U našem slučaju ovo je samo jednostavna tekstualna datoteka. Da pojednostavimo, recimo da je naš START_POS 1 GB (podaci koje imamo), ono što želimo sigurnosno kopirati je +2 GB, a ukupni kapacitet pogona je 10 GB.

4, Sljedeći put kada skripta pokreće VFILE postoji i to će se pročitati (tako da znamo koja je bila početna pozicija u slučaju da pogon nije bio prazan) kako bi se izračunao BACKUP_CURRENT koji je u biti delta prostora koji se trenutno koristi na rezervnom pogonu minus početna pozicija ono što smo spremili u VFILE u prošlom krugu (opet su to podaci koje smo imali na pogonu kada je sigurnosno kopiranje započelo). Skripta interno radi s bajtovima, ali kako bismo pojednostavili nakon pola sata napravili smo sigurnosnu kopiju podataka od 500 MB, tada bi formula bila BACKUP_CURRENT = 1,5 GB - 1 GB (početno stanje) => što nam vraća točno 500 MB, tj. ono što smo do sada sigurnosno kopirali. Možete vidjeti da bez praćenja izvornih podataka na početku izrade sigurnosne kopije ovaj izračun veličine neće uspjeti jer bi se vidjelo da trenutno iskorišteni prostor iznosi 1,5 GB, a da se ne zna da je na disku cijelo vrijeme bio 1 koncertni podatak dolaze iz prethodne sigurnosne kopije pa bi se pretpostavilo da nam je poslužitelj poslao 1,5 GB podataka umjesto 500 MB.

5, BACKUP_OVERALL će se pročitati, poslužitelj je izračunao ove podatke kada je izvršio početnu suhu rsync (dakle, ovo je vanjski izvor podataka koji sadrži količinu bajtova koja će biti sigurnosno kopirana s poslužitelja-> OrangeBOX). Ova vrijednost će se provjeriti prema ukupnom BESPLATNOM prostoru na disku u ovom trenutku, a ako ga premaši tada će se na LCD -u prikazati poruka o pogrešci i skripta će zaustaviti izvršavanje. Zapamtite ponovno da sve što skripta radi prikazuje SAMO, to ne ometa proces izrade sigurnosne kopije. Ako očistite datoteke na disku ili se količina datoteka daljinski promijeni, pa se BACKUP_OVERALL u jednom trenutku promijeni, nastavit će se.

6, Konačno smo završili s provjerama druge razine vrijeme je da nešto prikažemo. Skripta prikazuje podatke na konzoli i na LCD -u pomoću jednostavne C aplikacije. Pozadina se prebacuje na PLAVU što označava da je sigurnosno kopiranje konačno počelo i napredak izračunat prema sljedećoj formuli PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Ovo je osnovni izračun postotka uzimamo trenutni iznos, u našem primjeru 0,5 GB*100/2 GB = 25%.

7, brojevi se također pretvaraju iz bajta u mega/gigabajte i zaslon se automatski prikazuje u MB ako je manji od 1 GB.

8, Jedna stvar preostala za mapiranje ovoga u našem slučaju je 25% na LCD -u s 20 stupaca. To bi u našem primjeru bilo 25 * 20 /100 = 5. Trenutno je osvježavanje s LCD programom implementirano tako da će svaki put kada pozovete program precrtati cijeli zaslon. Pa bi se u ovom slučaju pet puta pokrenula for petlja za iscrtavanje 5 oznaka # na ekranu, što bi se pokazalo kao ružno treperenje u svakom krugu pa umjesto toga zapisujem izračunate podatke trake napretka u LFILE1 i 2, koji u ovom slučaju nakon 5 rundi sadržavalo bi #####, a to se čita i prikazuje na LCD -u. Možete staviti LFILE1 i 2 i na ramdisk kako biste spasili sdcard od dodatnih operacija pisanja, meni to nije uzrokovalo probleme, skripta se pokreće svake minute iz crona.

9, Kad sigurnosno kopiranje završi, druga skripta s poslužitelja na kojem se izvodi rsync dodirnut će FILE (Završi datoteku). U sljedećoj petlji backup_progress.sh će tada prikazati da je sigurnosno kopiranje dovršeno i opcionalno poziva drugu skriptu za isključivanje OrangeBOX -a. U ovom trenutku briše datoteke zaključavanja onemogućujući daljnja izvođenja pa čak i ako ne omogućite isključivanje sljedeće minute kada se ova skripta pokrene, odmah će se zatvoriti jer BFILE nije tamo, a FFILE nema. Stoga će se na neodređeno vrijeme prikazivati poruka o dovršetku sigurnosnog kopiranja, osim ako se sigurnosna kopija ponovno ne pokrene.

Skripta za daljinsko sigurnosno kopiranje (orange-remote.sh):

Morat ćete generirati ssh ključ za sigurnosnu kopiju i ključ za luks enkripciju za pogon. Kada prvi put ručno pokrenete udaljenu sigurnosnu kopiju, spremit će otisak prsta hosta narančastih okvira u datoteku hosts (od sada se može automatski pokrenuti pomoću crona).

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

Da biste saznali svoj identifikator tvrdog diska, pokrenite uuid, blkid ili samo potražite odgovarajuće/dev/disk/direktorije.

Direktorij include exclude može se postaviti ako ne želite sve sigurnosno kopirati. Ovo je prilično dosadan proces jer za rsync ako želite isključiti jedan poddirektorij duboko u strukturi morate učiniti:

+ /a

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

Budući da ova skripta daljinski izvršava naredbe na OrangeBOX -u, nema nadzora nad povratnim varijablama s te strane, stoga koristim neke pametne trikove poput toga što će poslati poruku o otvaranju udaljenog pogona na /tmp/contmsg.txt, a zatim raščlaniti to da vidi je li bio uspješan, ako ne, tada mijenja binarni datoteku rsync u neizvodljivu tako da rsync neće pokušati prenijeti podatke u root-ove OrangePI-a koji ispunjavaju SD karticu. Također je dobra praksa postaviti nepromjenjivi bit na chattr +i /mnt /backup kako bi to bilo nemoguće.

Predračun veličine se odvija lokalno na poslužitelju pa se u sljedećem koraku ova datoteka mora poslati na OrangeBOX.

Glavna sigurnosna kopija pokreće se kao petlja za ((i = 0; i <100; i ++)); učiniti jer u slučaju niske kvalitete DSL/kabelske internetske veze rsync često može prekinuti, istjecanje je isteklo. Ako se uspješno dovrši, petlja će se prekinuti bez pokušaja više ponavljanja. Ovo funkcionira besprijekorno s dobrim operativnim sustavima, međutim, ako bi iz nekog razloga udaljeni okvir bili prozori i bio bi onemogućen pristup kao što je redovito na NTUSER. DAT tada bi rsync vratio kôd pogreške i ova bi se petlja izvršila 100 puta, a zatim bi ipak propala.

Korak 5: Zatvaranje i popis zadataka

Zatvaranje i popis zadataka
Zatvaranje i popis zadataka
Zatvaranje i popis zadataka
Zatvaranje i popis zadataka

Moja instrukcija još jednom pokazuje kako možete sami stvoriti nešto bolji, prilagodljiviji uređaj od računara od 10 USD koje pobjeđuje Buffalo sa svojim vlasničkim zaključanim NAS uređajima, čudnim internim particioniranjem, zauzet boxbox osakaćenim Linuxom sa alatima za segfaulting, upravljanim po njihovom Windows softveru, zatvorenom firmware -u, lošoj dokumentaciji i podršci, i bez obzira na to koliko ćete novca potrošiti, nikada nećete dobiti pokazatelj napretka koji prikazuje vašu sigurnosnu kopiju, a da ne spominjem kako OrangeBox izgleda super (s njim čak koristim i narančasti CAT5 kabel: D).

S obzirom da mini računala postaju sve moćnija, a da zadržavaju istu cjenovnu liniju <100 $, možemo ih koristiti za sve više zadataka. Budući da su Gbe Ethernet priključci ovih dana prilično česti za 1-2 godine, memorija na ovim pločama će se dramatično povećati te se mogu koristiti i za sigurnosne sustave zasnovane na ZFS-u.

-Pokazatelj napredovanja zrna prema programu C (vidi WasserStation jedan od mojih drugih projekata). Trenutno se samo # znakova # oznake # koristi u znakovnom načinu s lcdPuts -om (lcd, line1), to bi se moglo poboljšati čak i kada koristite LCD -ove s znakovima za podjelu 1 stupca na 5 dijelova, a glavni C program mogao bi uzeti cijeli broj poput 25 i izvući traka napretka ispravno ili dodatno poboljšana upotrebom grafičkog LCD -a

-Mogućnost izmjenjivog HDD-a za stvaranje novih i novih sigurnosnih kopija i njihovo premještanje na različita mjesta (ako okvir detektira prazan disk, trebao bi ga automatski formatirati ključem za šifriranje nakon što ga primi).

-Ako želite ispisati svoju kutiju s makerbotom, OrangeNAS bi vam mogao biti zanimljiv:

Preporučeni: