Tartalomjegyzék:

OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz: 5 lépés
OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz: 5 lépés

Videó: OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz: 5 lépés

Videó: OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz: 5 lépés
Videó: The Ubuntu Orange Box 2024, November
Anonim
OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz
OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz
OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz
OrangeBOX: OrangePI alapú biztonságos biztonsági mentési eszköz

Az OrangeBOX egy all-in-one távoli tároló biztonsági mentési doboz minden kiszolgálóhoz.

A szervere megfertőződhet, megsérülhet, törlődhet, és minden adata továbbra is biztonságban van az OrangeBOX -on, és akinek nem tetszene egy lehetetlen küldetés, mint például a tartalék eszköz, amit csak csatlakoztat, és láthatja a haladásjelzőt anélkül, hogy bármit is tennie kellene (csak remélje, hogy a varázslat füst nem jön ki a végén:)).

Az OrangeBOX az első projektem, amely többnyire szoftver, nem hardveres hack. Ez alapvetően egyedi építésű NAS, LCD -vel.

1. lépés: Hardver alkatrészek

Hardver alkatrészek
Hardver alkatrészek
Hardver alkatrészek
Hardver alkatrészek
Hardver alkatrészek
Hardver alkatrészek

Az Orange PI zero egy nyílt forráskódú egylapos számítógép. Android 4.4, Ubuntu, Debian futtatható. Az AllWinner H2 SoC -t használja, és 256 MB/512 MB DDR3 SDRAM memóriával rendelkezik (a 256 MB -os verzió a standard verzió. Az Orange Pi Zero azoknak szól, akik a technológiával akarnak alkotni - nem csak fogyasztani. Ez egy egyszerű, szórakoztató, hasznos eszköz felhasználhatja az irányítást a körülötted lévő világ felett (https://www.orangepi.org/orangepizero/). Tehát ez pontosan nekünk való

  • Fém/műanyag/fa doboz (használtam egy régi Yamaha külső cd-rw dobozt)
  • Orange PI Zero vagy jobb (a GPIO pinout változhat, ha másik modellt használ)
  • 2x20 RGB LCD képernyő
  • Bármilyen SFF 3.5/ LFF 2.55 usb meghajtó
  • Sata -> usb adapter. Ne feledje, hogy bár az OrangePI nem szab felső korlátot a maximális meghajtó kapacitásnak, sok USB-SATA-híd azonban ezt teszi (max. 2 TB). A narancssárga PI Zero I csak egyetlen USB 2.0 porttal rendelkezik, amelynek tényleges átviteli sebessége 28 MB/s. Az USB3.0 -t választottam (felkészült a jövőbeli frissítésekre) -> SATA -híd (a márkát nem említjük), és ez korlátozza a korlátot, ezért jobb, ha olyan hidat választunk, amely bizonyítottan támogatja a nagyobb meghajtókat, például a JMicron JMS567 chip alapú hidakat. Vásárlás előtt végezzen saját kutatást. Tudok élni a sebességgel és a merevlemez -korlátozással, ha ebben a projektben 2 TB -os sata -meghajtót használok (ha nagyobb meghajtókat teszel fel, akkor felismeri, de az operációs rendszer csak az első 2 TB -ot fogja látni, így a kapacitás többi része elveszett).
  • 12V 2,5 A vagy nagyobb erősítő adapter. Számítson körülbelül 500 mA normál használatot az OPI Zero esetében, és 1,5 A csúcsot egy szabványos LFF SATA meghajtónál. A túlméretezés sosem árt. A beállításom során a Yamaha psu (ami elegendő áramot tudott biztosítani mindkét 12+5 V -os sínen) sajnos felrobbant: (mivel a főkapcsolót egy másodpercre GND -re rendezték, így egy normál adaptert kellett ragasztani, legalább pár grammal könnyebbé tette a dobozt.
  • Buck átalakító DC-DC 12V-> 5V. Ugyanazt az állítható mini bakot használtam, mint az IronForge -nál, tökéletesen működik.

Választható

Ha hajlandó + 10 dollárt költeni, akkor megszerezheti az Orange Pi Plus-t (https://www.armbian.com/orange-pi-one-plus/), amely hasonló formájú, és megkapja a Gbe-t és a SATA3-at. Ehhez a Libra PI kábelezési könyvtár használható: https://github.com/OrangePiLibra/WiringPi, de mivel a GPIO pinout eltér, ez nem tartozik az írás hatálya alá.

Ezt az összeállítást az új Orange PI Plus2-vel is megteheti, amely SATA-csatlakozóval rendelkezik, és kihagyhatja a sata-> usb-átalakítók használatát a korlátaikkal együtt. Ha a FreeBSD vagy más BSD -k használatát tervezi, akkor az Orange PI sorozat nem biztos, hogy a legjobb választás, mivel a hardveres támogatásuk korlátozott (például USB -kulcsot kell használni a rendszerindításhoz). A BSD -k számára a legjobb tanács a Raspberry PI használata. Mind az LCD C kódja, mind az összes shell script hordozható más UNIX rendszereken.

2. lépés: Hardvertervezés

Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés

A Yamaha doboz éppen elég volt mindezek tárolására, nem lenne elég hely egy Orange PI PC-hez vagy a rendes Raspi form-factor kártyához.

Az Ethernet -et egy hosszabbítóval hozták ki a doboz hátuljára. Ne feledje, hogy az Orange PI zero csak 100mbit/s Ethernet interfésszel rendelkezik, ha gyorsabbra vágyik, akkor másik lapot kell használnia, például Asus Tinkerboard/RPI3B+/Egyéb Orange PI modelleket.

A hibás PIN kimenet az egyetlen hiba, amelyet elkövethet ebben a projektben, ezért érdemes alkalmazni néhány hüvelykujjszabályt:

1, Mindig próbálja ugyanazt a színű kábelt használni az END -END -től. Jómagam is elkövetem ugyanazt a "hibát" néhány projektben, ahol nem, egyszerűen azért, mert nincs elég hosszú férfi-férfi/férfi-nő/nő-női kábel a kezemben, és összerakom a 2-t, hogy továbblépjek az áramkör. Ha nem dokumentálja megfelelően a munkáját, ez évekkel később fejfájáshoz vezethet, ahol javítást, frissítést kell végeznie.

2, Vigyen fel valamilyen meleg ragasztót a csatlakozókra. Ezen arduino-indító készlet stílusú mm/mf/ff típusú kábelek használata esetén, amelyek nem a legjobb minőségűek, meglehetősen gyakori (különösen, ha mozog/szállítja a készüléket), hogy a csatlakozók kicsúsznak. Ha tudja, hogy ez egy hosszú távú eszköz lesz (esetleg addig használja, amíg el nem törik ?!), akkor jobb, ha egy kis meleg ragasztót visz fel mind a csatlakozók OrangePI, mind LCD oldalán, hogy együtt tartsák őket. Ezt később könnyen meg lehet olvasztani/le lehet karcolni, ha szükséges.

3, Az OrangePI nulla huzalozása A rossz hír az, hogy az Orange PI pinout NEM azonos a Raspberry PI 0/1/2/3 -al, és még különbség is van más Orange PI modellek között. A legjobb megoldás a vezetékes könyvtár beszerzése (Orange PI Zero verzió). A kép kissé zavaros lehet, de ezek voltak a legjobbak, amit találtam. Az egyik a másik 180 fokos tükre. Bár a CLI nem grafikus képe nehezebben értelmezhető, ez a legegyenesebb.

Mindig meg lehet különböztetni az aljzatok két végét, ha az egyik végét a (+3.3/+5V) pozitív végnek tekintjük, a másikat pedig a NEGATÍV végnek (egy GND) -> ez a csatlakozó vége az ETHERNET port felé.

A Wiring PI Zero táblázatból csak egy oszlopra lesz szüksége, a wPI megfeledkezik a többiekről, mintha nem lennének ott.

Tehát például az LCD_E 15 (azaz wPI 15!) És az LCD_RS 16 (azaz wPI 16!) Csatlakoztatásához számolja ki a csatlakozókat a POSITIVE végből (ez könnyen elvégezhető tollal vagy kis csavarhúzóval). Ez fizikailag 4 csap és 5 csap lefelé megy.

4, csoportosulás. Ha lehetőség van arra, hogy a használt csapokat egymás mellé tegye (csoportosítva), mindig ezt választotta, ez lehetővé teszi számukra, hogy tartsák egymást, még ragasztó nélkül is, és más projektekben is, ha 2x 4x 6x molex csatlakozóval rendelkezik csak ki kell használni a csapokat egymás mellett. Itt a legjobb, amit tehet, ha 2-3-as csoportot csinál (ideális, ha régi PC-k mentett áthidaló kábeleit használja).

Az OrangePI LCD képernyő csatlakoztatásához használt csapok:

// WIRINGPI PIN SZÁMOK HASZNÁLATA

#define LCD_E 15 // Pin engedélyezése #define LCD_RS 16 // Register select pin #define LCD_D4 5 // Data pin 4 #define LCD_D5 6 // Data pin 5 #define LCD_D6 10 // Data pin 6 #define LCD_D7 11 // 7. adattű

Az RGB háttérvilágítás vezérléséhez használt csapok

$ G írjon 10

$ G írás 4 1 $ G írás 7 1

Narancssárga PI nulla wPI csapok 1, 4, 7. Az egyetlen varázslat, amit ez az LCD képes a normál fix kék vagy fix zöld háttérvilágítású LCD -hez képest, ahol egyetlen katódja van, amelyet le kell húzni a GND -hez, és 3 színek. Piros, zöld és kék. Ha bekapcsolja a kombinációt, akkor különböző színeket keverhet ki ezekből az alapszínekből, de csak a felső részeket, nincsenek árnyalatok, mert nem tudja szabályozni a szín fényerejét (be vagy ki).

Additív színkeverés: a piros hozzáadása a zöldhez sárga színű; ha pirosat adunk a kékhez, bíbor színű lesz; ha zöldet adunk a kékhez, cián színű lesz; ha mindhárom alapszínt összeadjuk, akkor fehér lesz.

3. lépés: Operációs rendszer

Operációs rendszer
Operációs rendszer

Az OrangeBOX elindul, és az Armbian linux (Debian Stretch alapján) 4.14.18-sunxi kernel biztonságos tűzfalú környezettel csatlakozik a VPN-hez, és várja a távoli biztonsági mentési parancsokat a szerverről.

Tervezési elvek:

-Teljes lux alapú lemez titkosítás (maga az eszköz nem tartalmazza a biztonsági mentés megnyitásához szükséges kulcsot. Ideiglenesen átmásolásra kerül a távoli szerverről a ram /dev /shm fájlba, a meghajtó kinyílt és a kulcs törlődik. A biztonsági mentés befejezése után a meghajtó bezárult, és az OrangeBox automatikusan kikapcsol 1 perc múlva.)

-Minden parancs és kulcs a távoli szerverről érkezik (maga az eszköz csak vpn tanúsítványt tartalmaz) nem rendelkezik hozzáféréssel a távoli szerverhez, még akkor sem, ha az eszköz ssh tűzfala ki van tűzve

-A helyi fájlrendszerek titkosítatlanok, hogy elindulhassanak, de nem tartalmaznak semmi hasznosat, és mivel a VPN felfelé irányuló kapcsolata erősen korlátozott a másik oldalon, még akkor is, ha az eszköz teljesen elveszett, a támadó nem tehet semmit

Töltse le az Armbian Stretch-t a https://www.armbian.com/orange-pi-zero/ webhelyről

A rendszer üzembe helyezése:

apt-get update && apt-get upgrade

apt-get install sysvinit-core sysvinit-utils

Szerkessze az /etc /inittab lapot, az összes konzol letiltható, mivel a doboz fejetlenként lesz használva. Kommentelje az alábbi részt:

#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

Indítsa újra a dobozát, és távolítsa el a systemd -t, hogy valódi nyílt forráskódú, bloatware -mentes rendszer legyen.

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

Telepítsen néhány csomagot

apt-get install cryptsetup vim htop rsync képernyő gcc make git

Telepítse a wiringpi könyvtárat

cd /usr /src

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

Hozzon létre narancssárga felhasználót az LCD kijelzőhöz

groupadd -g 1000 narancs

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

Az őrző kutya, amely nem vigyáz rád

apt-get install watchdog

Megnézi az/etc/default/watchdog # Indítsa el a watchdog -ot a rendszerindításkor? 0 vagy 1 run_watchdog = 1 # A wd_keepalive elindítása az őrszem leállítása után? 0 vagy 1 run_wd_keepalive = 1 # Töltse be a modult a watchdog elindítása előtt watchdog_module = "none" # Itt adhatja meg a további watchdog beállításokat (lásd az oldalt).

Megtekintve az /etc/watchdog.conf fájlt

# Legalább engedélyezze ezeket

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

/etc/init.d/watchdog start

Legalább 1 kernel szálnak és 1 folyamatnak kell lennie:

gyökér 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

Tesztelés:

Feltétlenül állítson le mindent, és végezzen szinkronizálást, szinkronizálást és szinkronizálást, hogy a többi adatot a lemezre írja. Akkor gyökér problémaként:

echo 1> /dev /watchdog

Néhány másodperc múlva a gépnek újra kell indulnia.

Ahogy a kézikönyv írja:

o A folyamat táblázat megtelt?

o Van elég szabad memória? o Van elég kiosztható memória? o Néhány fájl hozzáférhető? o Változott -e néhány fájl egy adott időközön belül? o Túl nagy az átlagos munkaterhelés? o Fájltábla túlcsordulása történt? o Még mindig fut egy folyamat? A folyamatot egy pid fájl határozza meg. o Néhány IP -cím válaszol a pingre? o A hálózati interfészek fogadnak forgalmat? o Túl magas a hőmérséklet? (A hőmérsékleti adatok nem mindig állnak rendelkezésre.) O Végezzen egy felhasználó által megadott parancsot tetszőleges vizsgálatok elvégzéséhez. o Végezzen el egy vagy több teszt/javítási parancsot az /etc/watchdog.d fájlban. Ezeket a parancsokat az argumentum tesztelése vagy javítása hívja meg. Ha ezen ellenőrzések bármelyike sikertelen, a watchdog leállást okoz. Ha ezen tesztek bármelyike a felhasználó által meghatározott bináris kivételével egy percnél tovább tart, a gép is újraindul.

Ez a felügyelet jól működhet a szokásos x86 architektúrákon, de olyan ARM alapú táblákon, mint a Raspberry PI, Orange PI, számtalanszor megbukott. A rendszer olyan hangállapotokba is mehet, ahol még az őrszem is lóg. Mindenesetre konfiguráljuk, talán javul az apt-get frissítéssel az évek során:(

4. lépés: Szoftvertervezés

Szoftvertervezés
Szoftvertervezés

Maga a biztonsági mentési folyamat rsync alapú (valaha feltalált legjobb biztonsági mentési eszköz) adatokat küld a SERVER-> OrangeBOX-ról.

Az adatok kinyerése az rsync programból volt az egyetlen kihívást jelentő része a projektnek, amelyen a biztonsági mentés előrehaladási sávja kinyomtatásra került az LCD -n.

A biztonsági mentés előrehaladásának kiszámítása háromféle módon lehetséges:

1, Olyan képletek használatával, mint a https://wintelguy.com/transfertimecalc.pl, hogy meghatározza az átvitel kb.

Átviteli idő (d: h: m: s): 0: 02: 44: 00

Összehasonlításképpen: becsült idő a 123 GB -os fájl átviteléhez különböző hálózati linkeken (d: h: m: s): T1/DS1 vonal (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

Ha az rsync befejezi, jelzi a szkriptnek, hogy állítsa le a számítást. Ez a módszer csak hozzávetőleges és nem megbízható, továbbá a kapcsolat sebessége nem rögzített, lelassulhat, újra felgyorsulhat. Ez csak elméleti számítás.

2, Méretellenőrzések elvégzése a könyvtárban annak megállapítása érdekében, hogy mennyi adatot szinkronizáltunk már. Nagyon lassú lehet több száz GB méretű kis fájlokkal (bár a du -s Linuxban némi gyorsítótárat tesz, ha újra futtatja)

A gazdagép -> Biztonsági mentésre kerülő szerver adatok Adatkezelő: 235 GB

B gazdagép -> Narancssárga doboz kliensadatok jelenleg rendelkezésünkre állnak. Adatok dir: 112 GB

A delta 123 GB.

3, Ha a fájlrendszer dedikált, mint a mi esetünkben/dev/mapper/backup, akkor kihasználhatjuk az általános fájlrendszer -használati mutatót, hogy meghatározzuk, hogyan halad a mentésünk, és ez rohadtul gyors. Ebben az esetben nem is kell az rsync stdout -ot bárhová vezetni, csak futtasson egy száraz rsync -t, várjon, amíg befejeződik, számolja ki a delta -t bájtokban, és ellenőrizze ezt a szabad hellyel, ami a tartalék meghajtón van, és íme, most készíts egy szép oszlopdiagramot. Ezt a módszert választottam, és itt van a forgatókönyvem hozzá:

#!/bin/bash

# Backup Progress Calculator for OrangeBOX by NLD # Verzió: 0.2 (2018/03/05) # # Futtassa jogosulatlan felhasználóként a cron -ból # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Ez a szkript csak az adatok LCD -n való megjelenítéséért felelős, # közvetlenül kommunikál a főprogrammal a pozíció- és zárolási fájlokon keresztül. BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # lemezhasználat a mentés elején TFILE = "$ HOME/trans.size" # általános előre kiszámított átviteli méret BFILE = "$ HOME/ backup.lck " # meghatározza az indított állapotot FFILE =" $ HOME/backup.fin " # meghatározza a kész állapotot LFILE1 =" $ HOME/lcd1.bar " # LCD folyamatjelző adatok LFILE2 =" $ HOME/lcd2.bar " # LCD előrehaladás indikátor adatok SHUTDOWN = "1" # Ha 1, akkor egy másik szkriptet kezdeményez, amely lezárja a dobozt a mentés végén check) LCD = "sudo /bin /lcd" függvény 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} # Tiszta állapot (a rendszerindításkor a bootup_display.sh állítja be). Nincs biztonsági mentés folyamatban, NE rontsa el a # állapot LCD -t. Csak akkor jelenítse meg az előrehaladást, ha folyamatban van biztonsági mentés => Nincs kezdő fájl ÉS nincs fin fájl = kilép, ha [! -f $ BFILE] && [! -f $ FFILE]; majd lépjen ki 1 fi # Ha a biztonsági mentés befejeződött, a parancsfájl ezt megjeleníti, és eltávolítja a zárolásokat, # hogy a következő indításig ne lehessen újra futtatni. ha [-f $ FFILE]; majd zöld $ LCD "Biztonsági mentés" "** Befejezve **" echo "Biztonsági mentés kész" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # A biztonsági mentés befejeződött, a tisztítás befejeződött, ha [$ SHUTDOWN == "1"]; majd echo "Leállítási szkript végrehajtása …" /home/orange/shutdown.sh & fi exit 0 fi # Ettől kezdve a szkript CSAK akkor fut, ha van MEGFELELŐ biztonsági mentés # ezért minden hiba ki lesz nyomtatva az LCD -re és a szkriptet okozza # a megszakításhoz, de nem távolítja el a backup.lck fájlt, így újra és újra bejön ide #, és elpárologtatja a feltételeket. is_mount $ BACKUP_DRIVE, ha [$ status -ne 0]; akkor piros $ LCD "ERR: Backup drive" "nincs csatlakoztatva!" echo "A biztonsági mentés nincs felszerelve" exit 1 fi, ha [! -s $ TFILE]; akkor piros $ LCD "ERR: transzfile" "üres" echo "A szállítási méret számítási fájl üres." exit 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') if [-z $ BACKUP_OVERALL]; akkor piros $ LCD "ERR: Méret visszaolvasása" "szerverről érvénytelen" echo "A biztonsági mentés teljes méretének visszaolvasása érvénytelen 1" kilépés 1 fi, ha!

Bár a kód egyszerű, itt van néhány leírás, hogy mit csinál:

1, Ha a BFILE vagy FFILE nem létezik (ez az állapot a tiszta indítás után), ami azt jelzi, hogy nincs biztonsági mentési folyamat, ezért NE tegyen semmit, csak lépjen ki. Ily módon grafikázhatja a rendszerindítással kapcsolatos bármilyen szép információt, például a gazdagépnevet, az ip -t, az üzemidőt stb., És nem lesz zavaros.

2, Ugorjunk az is_mount $ BACKUP_DRIVE részhez. Csak emlékeztetőül az egyetlen módja, hogy ide jutottunk, hogy biztonsági mentést indítottak, így a BFILE létezik. Most a kód csak különféle hibaellenőrzéseket végez, például a biztonsági mentést? vagy egyéb hibák. Ne feledje, hogy ez csak a DISPLAY program, még akkor sem, ha a mérete meghaladja a biztonsági mentéseket.

3, OK minden hibaellenőrzés törli az időt a százalékos grafikon kiszámításához. Először a szkript "pillanatfelvételt" készít a biztonsági mentési fájlrendszer bájtokban használt helyéről, és eltárolja a VFILE fájlban. Ennek mi a célja: a bash szkript állapot nélküli, elveszíti az adatokat a végrehajtások között, ezért ha "emlékezni szeretne" az előző végrehajtás néhány adatára, akkor azt valahol le kell tárolnia. Esetünkben ez csak egy egyszerű szövegfájl. Az egyszerűség kedvéért tegyük fel, hogy a START_POS memóriánk 1 GB (a rendelkezésünkre álló adatok), a biztonsági mentés +2 GB, a teljes meghajtókapacitás pedig 10 GB.

4, A következő alkalommal, amikor a szkript fut, a VFILE létezik, és ezt visszaolvassuk (így tudjuk, hogy mi volt a kiindulási helyzet, ha a meghajtó nem volt üres) a BACKUP_CURRENT kiszámításához, amely lényegében a jelenleg használt terület delta értéke a biztonsági mentésen, mínusz a kezdő pozíció, amit az utolsó körben a VFILE -be mentettünk (ismét ezek az adatok voltak a meghajtón, amikor a biztonsági mentés elkezdődött). A szkript belsőleg bájtokkal működik, de hogy fél óra elteltével egyszerűbb legyen, 500 MB adatmentést készítettünk, akkor a képlet BACKUP_CURRENT = 1,5 GB - 1 GB (kezdeti állapot) =>, ami pontosan a valós adatokat adja vissza 500 MB -nak, azaz amit eddig mentettünk. Láthatja, hogy anélkül, hogy nyomon követné az eredeti adatokat a biztonsági mentés elején, ez a méretszámítás sikertelen lenne, mert azt látná, hogy a jelenleg használt hely 1,5 GB, anélkül, hogy tudná, hogy 1 giga adat volt a lemezen korábbi biztonsági mentésből származik, így feltételezi, hogy a szerver 500 GB helyett 1,5 GB adatot küldött nekünk.

5, a BACKUP_OVERALL beolvasásra kerül, ezeket az adatokat a szerver számította ki a kezdeti száraz rsync elvégzésekor (tehát ez egy külső adatforrás, amely tartalmazza a bájtok mennyiségét, amelyeket a Server-> OrangeBOX-ból biztonsági mentés készít). Ezt az értéket a lemezen lévő szabad INGYEN helyhez viszonyítjuk, és ha meghaladja, akkor hibaüzenet jelenik meg az LCD -n, és a szkript leállítja a végrehajtást. Ne feledje, hogy ez a szkript CSAK megjelenítésre kerül, nem zavarja a biztonsági mentési folyamatot. Ha megtisztítja a fájlokat a lemezen, vagy a fájlok száma távolról megváltozik, és ezért a BACKUP_OVERALL egy ponton megváltozik, akkor folytatódik.

6, Végül befejeztük a második szintű ellenőrzéseket, itt az ideje valamit megjeleníteni. A szkript egy egyszerű C alkalmazás segítségével megjeleníti az adatokat a konzolon és az LCD -n. A háttér kékre vált, jelezve, hogy a biztonsági mentés végre elkezdődött, és az előrehaladást a következő képlet alapján számítjuk ki: PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Ez egy alapvető százalékos számítás, az aktuális összeget vesszük, példánkban 0,5 GB*100/2 GB = 25%.

7, A számokat szintén bájtból mega/giga bájtra konvertálják, és a képernyő automatikusan MB -ban jelenik meg, ha kisebb, mint 1 GB.

8, Egy dolog van hátra ennek feltérképezésére esetünkben a 25% 20 oszlopos LCD -n. Példánkban ez 25 * 20 /100 = 5 lenne. Jelenleg az LCD program frissítése megvalósult, és minden alkalommal, amikor meghívja a programot, újrarajzolja az egész képernyőt. Tehát ebben az esetben ötször futna egy for ciklusra, hogy 5 hashmarkot rajzoljon a képernyőre, ez minden körben csúnya villogásként jelenik meg, ezért a számított előrehaladási sáv adatait kiírom az LFILE1 és 2 fájlba, ami ebben az esetben a az 5 kör a ##### kódot tartalmazza, és ezt visszaolvassa és megjeleníti az LCD -n. Lehet, hogy az LFILE1 -et és a 2 -t is felhelyezi a ramdisk -re, hogy megmentse az sdcardot az extra írási műveletektől, ez nem okozott problémát számomra, a szkript percenként egyszer fut a cron -ból.

9, Amikor a biztonsági mentés befejeződött, az rsync -t futtató szerver másik szkriptje megérinti a FFILE (Fájl befejezése) fájlt. A következő ciklusban a backup_progress.sh megjeleníti, hogy a mentés befejeződött, és opcionálisan meghív egy másik szkriptet az OrangeBOX leállításához. Ezen a ponton törli a zárfájljait, ami lehetetlenné teszi a további végrehajtásokat, így még akkor is, ha nem engedélyezi a leállítást a következő percben, amikor ez a szkript fut, azonnal kilép, mert a BFILE nincs és a FILA nincs. Ezért a biztonsági mentés befejezett üzenetét a végtelenségig megjeleníti, hacsak nem indítja újra a biztonsági mentést.

Távoli biztonsági mentési szkript (orange-remote.sh):

Létre kell hoznia egy ssh kulcsot a biztonsági mentéshez és egy kulcsot a meghajtó lux titkosításához. Amikor először kézzel futtatja a távoli biztonsági mentést, az a narancssárga dobozok gazdagép ujjlenyomatát menti a hosts fájlba (ettől kezdve a cron automatikusan futtathatja).

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

A merevlemez -azonosító kiderítéséhez futtassa uuid, blkid vagy egyszerűen keresse meg a megfelelő/dev/disk/könyvtárakat.

A kizárást tartalmazó könyvtár beállítható, ha nem szeretne mindent biztonsági másolatot készíteni. Ez elég bosszantó folyamat, mert az rsync esetében, ha ki akar zárni egyetlen alkönyvtárat a szerkezet mélyén, meg kell tennie:

+ /a

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

Mivel ez a szkript távolról hajt végre parancsokat az OrangeBOX -on, nincs felügyelete a visszatérési változókról ezen az oldalon, ezért használok néhány okos trükköt, például a távoli meghajtó megnyitásának üzenetét a /tmp/contmsg.txt fájlba, majd az elemzést hogy lássa, sikeres volt-e, ha nem, akkor az rsync bináris fájlt nem végrehajthatóvá változtatja, így az rsync nem próbálja meg feltölteni az adatokat az SD-kártyát kitöltő OrangePI-gyökérkönyvtárba. Szintén jó gyakorlat, ha a chattr +i /mnt /backup beállítására módosíthatatlan bitet állítunk be, hogy ez lehetetlen legyen.

A méret előzetes kiszámítása helyileg történik a szerveren, ezért ezt a fájlt a következő lépésben el kell küldeni az OrangeBOX -nak.

A fő biztonsági mentés ciklusként indul a ((i = 0; i <100; i ++)); tegye, mert gyenge minőségű DSL/kábeles internetkapcsolatok esetén az rsync gyakran megszakadhat, időtúllépés. Ha sikeresen befejeződik, akkor a ciklus megszakad további iterációk kipróbálása nélkül. Ez hibátlanul működik a jó operációs rendszereknél, de ha valamilyen oknál fogva a távoli doboz Windows lenne, és a hozzáférés megtagadva lenne, mint rendszeresen az NTUSER. DAT -on, akkor az rsync hibakódot ad vissza, és ez a ciklus 100 -szor fog futni, de még mindig nem sikerül.

5. lépés: Zárás és teendők listája

Zárás és teendők listája
Zárás és teendők listája
Zárás és teendők listája
Zárás és teendők listája

Az oktatható ismét bemutatja, hogyan hozhat létre egy jobb, testreszabhatóbb eszközt egy 10 dolláros számítógépről, amely legyőzi a Buffalót a saját lezárt NAS -eszközeivel, furcsa belső partíciókkal, busybox megnyomorított linux -szal, alapértelmezett eszközökkel, kezelve a Windows szoftverük, a zárt firmware, a rossz dokumentáció és támogatás miatt, és nem számít, hogy mennyi pénzt költ, soha nem kap haladásjelzőt, amely megmutatja a biztonsági mentését, nem beszélve arról, hogy milyen jól néz ki az OrangeBox (még narancssárga CAT5 kábelt is használok vele: D).

Mivel a mini számítógépek egyre erősebbek, miközben ugyanazt a <100 USD árvonalat megtartják, egyre több feladatra használhatjuk őket. Mivel a Gbe Ethernet portok manapság meglehetősen gyakoriak 1-2 év múlva, ezeken a táblákon a memória drámaian megnő, és ZFS-alapú biztonsági rendszerekhez is használhatók.

-Finom gabona előrehaladási mutató a C program által (lásd a WasserStation egyik másik projektemet). Jelenleg csak # hashmark # karakter használatos karakteres módban az lcdPuts (lcd, line1) használatával, ez még akkor is javítható, ha karakteres LCD -ket használunk 1 oszlop 5 részre osztására, és a C fő program csak egy egész számot vehet fel, mint 25, és a folyamatjelző sáv megfelelően vagy tovább javítva grafikus LCD használatával

-Lehetőség van cserélhető hdd-re új és új biztonsági mentések létrehozásához és más helyekre történő áthelyezéséhez (ha a doboz üres meghajtót észlel, akkor automatikusan meg kell formáznia a titkosítási kulccsal, miután megkapta).

-Ha saját tokját szeretné nyomtatni a makerbot segítségével, az OrangeNAS érdekes lehet az Ön számára:

Ajánlott: