Sisällysluettelo:
- Vaihe 1: Laitteiston osat
- Vaihe 2: Laitteiston suunnittelu
- Vaihe 3: Käyttöjärjestelmä
- Vaihe 4: Ohjelmistosuunnittelu
- Vaihe 5: Sulkeminen ja tehtävälista
Video: OrangeBOX: OrangePI -pohjainen suojattu varmuuskopiointilaite: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
OrangeBOX on all-in-one etätallennuslaatikko kaikille palvelimille.
Palvelimesi voi olla saastunut, vioittunut, pyyhitty ja kaikki tietosi ovat edelleen turvassa OrangeBOXissa ja kuka ei pidä mahdottomasta tehtävästä, kuten varmuuskopiolaitteesta, jonka juuri liität ja näet edistymisindikaattorin tekemättä mitään (toivottavasti taikuutta savua ei tule lopussa:)).
OrangeBOX on ensimmäinen projektini, joka on enimmäkseen ohjelmisto, ei laitteisto hakata. Se on pohjimmiltaan räätälöity NAS, johon on liitetty LCD.
Vaihe 1: Laitteiston osat
Orange PI zero on avoimen lähdekoodin yksilevyinen tietokone. Se voi käyttää Android 4.4, Ubuntu, Debian. Se käyttää AllWinner H2 SoC -järjestelmää ja siinä on 256 Mt/512 Mt DDR3 SDRAM -muistia (256 Mt: n versio on vakioversio. Orange Pi Zero on tarkoitettu kaikille, jotka haluavat aloittaa luomisen tekniikan avulla - ei vain kuluttaa sitä. Se on yksinkertainen, hauska ja hyödyllinen työkalu. voi käyttää hallitsemaan ympäröivää maailmaa (https://www.orangepi.org/orangepizero/). Joten se on juuri meille tarkoitettu, jatketaan sitä:)
- Metalli-/muovi-/puulaatikko (olen käyttänyt vanhaa Yamahan ulkoista cd-rw-laatikkoa)
- Oranssi PI Zero tai parempi (GPIO -pistoke saattaa muuttua, jos käytät toista mallia)
- 2x20 RGB LCD -näyttö
- Mikä tahansa SFF 3.5/ LFF 2.55 usb -asema
- Sata -> usb -sovitin. Muista, että vaikka OrangePI ei aseta ylärajaa enimmäisaseman kapasiteetille, monet USB-SATA-sillat kuitenkin tekevät (enintään 2 Tt). Oranssissa PI Zero I -laitteessa on vain yksi USB 2.0 -portti, jonka tehokas siirtonopeus on enintään 28 Mt/s. Olen valinnut USB3.0 (valmistautunut tuleviin päivityksiin) -> SATA -silta (tuotemerkkiä ei mainita) ja se ylittää rajan, joten on parempi valita silta, joka on osoittautunut tukevan suurempia asemia, kuten JMicron JMS567 -sirupohjaisia siltoja. Tee oma tutkimus ennen kuin ostat sellaisen. Voin elää nopeus- ja kiintolevyrajoitusten kanssa käyttämällä 2 Tt: n sata -asemaa tässä projektissa (jos lisäät isompia asemia, se tunnistetaan, mutta käyttöjärjestelmä näkee vain ensimmäiset 2 Tt: tä, joten loppu kapasiteetti on menetetty).
- 12V 2,5 A tai korkeampi vahvistinsovitin. Laske noin 500 mA normaalikäyttö OPI Zerolle ja 1,5 A huippu tavalliselle LFF SATA -asemalle. Ylisuuret eivät koskaan satuta. Asennuksessani Yamaha psu (mikä olisi voinut syöttää enemmän kuin tarpeeksi virtaa molemmilla 12+5V kiskoilla) valitettavasti räjähti: (koska pääkytkin oli lajiteltu GND: ksi sekunniksi, joten jouduin liimaamaan tavallisen sovittimen ainakin se teki laatikosta pari grammaa kevyempää.
- Buck-muunnin DC-DC 12V-> 5V. Käytin samaa säädettävää minipukia kuin IronForgessa, toimii täydellisesti.
Valinnainen
Jos olet valmis käyttämään + 10 dollaria, voit hankkia Orange Pi Plus -laitteen (https://www.armbian.com/orange-pi-one-plus/), joka on samanlainen ja antaa sinulle Gbe- ja SATA3-versiot. Tätä varten voidaan käyttää Libra PI -johdotuskirjastoa: https://github.com/OrangePiLibra/WiringPi, mutta koska GPIO -pistoke on erilainen, se ei kuulu tämän kirjoituksen piiriin.
Voit myös tehdä tämän rakenteen uudella Orange PI Plus2: lla, jossa on SATA-liitin, ja voit ohittaa sata-> usb-muuntimien käytön yhdessä rajoitusten kanssa. Jos aiot käyttää FreeBSD: tä tai muita BSD -levyjä, Orange PI -sarja ei ehkä ole paras valinta, koska niiden laitteistotuki on rajallinen (esimerkiksi sinun on käytettävä USB -tikkua käynnistykseen). BSD: lle se on paras neuvo Raspberry PI: n käyttämiseksi. Sekä nestekidenäytön C -koodi että kaikki komentotiedostot ovat kannettavia muihin UNIX -järjestelmiin.
Vaihe 2: Laitteiston suunnittelu
Yamaha-laatikko riitti vain kaiken tämän tallentamiseen, siinä ei olisi tarpeeksi tilaa Orange PI -tietokoneelle tai tavalliselle Raspi-muotokortille.
Ethernet tuotiin ulos laajennuksella laatikon takaosaan. Muista, että Orange PI nollalla on vain 100 Mbit/s Ethernet -liitäntä, jos haluat nopeammin, sinun on käytettävä toista korttia, kuten Asus Tinkerboard/RPI3B+/Muut Orange PI -mallit.
Väärä PIN -koodi on ainoa virhe, jonka voit tehdä tässä projektissa, joten kannattaa noudattaa joitakin peukalosääntöjä:
1, Yritä aina käyttää samaa värikaapelia END - END. Itse teen saman "virheen" joissakin projekteissa, joissa minulla ei ole, yksinkertaisesti siksi, että minulla ei ole tarpeeksi pitkiä uros-uros/mies-nainen/nainen-naaras-kaapeleita käsillä ja korjaan 2 yhteen vain päästäkseni eteenpäin piiri. Jos et dokumentoi työtäsi oikein, tämä voi aiheuttaa päänsärkyä vuosia myöhemmin, jolloin sinun on tehtävä korjaus, päivitys.
2, Levitä kuumaliimaa liittimiin. Jos käytät näitä arduino-käynnistyssarjan tyylisiä mm/mf/ff-kaapeleita, jotka eivät ole huippuluokan laatua, on melko yleistä (varsinkin jos liikut/kuljetat laitetta), että liittimet liukuvat ulos. Jos tiedät, että se on pitkäaikainen käyttölaite (mahdollisesti käytettävä, kunnes se rikkoutuu ?!), on parempi levittää hieman kuumaliimaa sekä liittimien OrangePI- että LCD -puolelle pitämään ne yhdessä. Tämä voidaan helposti sulattaa/raapia pois tarvittaessa myöhemmin.
3, OrangePI nollajohdotus Huono uutinen on, että Orange PI -pistoke EI ole sama kuin Raspberry PI 0/1/2/3, ja muiden Orange PI -mallien välillä on jopa eroa. Paras tapa edetä on hankkia johdotuskirjasto (Orange PI Zero -versio). Kuva saattaa olla hieman hämmentävä, mutta nämä olivat parhaita mitä löysin. Toinen on 180 asteen peili toisesta. Vaikka CLI: n ei -graafinen kuva voi olla vaikeampi ymmärtää, se on kaikkein suoraviivaisin.
Voit aina erottaa pistorasioiden kaksi päätä pitämällä toista päätä positiivisena (+3,3/+5V) ja toista negatiivisena (yksi GND) -> tämä on liittimen pää ETHERNET -porttia kohti.
Wiring PI Zero -taulukosta tarvitset vain yhden sarakkeen, jolloin wPI unohtaa muut kuin he eivät olisi siellä.
Joten esimerkiksi liittääksesi LCD_E 15 (eli wPI 15!) Ja LCD_RS 16 (eli wPI 16!), Laske nastat liittimen POSITIIVISESTA päästä (helppo tehdä kynällä tai pienellä ruuvimeisselillä). Se laskee fyysisesti 4 nastaa ja 5 nastaa.
4, Ryhmittele. Jos on mahdollista laittaa käytetyt nastat vierekkäin (ryhmittelemällä ne) aina valinnut sen, se saa heidät pitämään toisiaan jopa ilman kuumaliimaa ja myös muissa projekteissa, kun sinulla on 2x 4x 6x molex -liitin hyödynnä vain nastat vierekkäin. Tässä paras mitä voit tehdä, on 2-3s ryhmä (ihanteellinen käytettäessä pelastettuja hyppyjohtoja vanhoilta tietokoneilta).
OrangePI LCD -näytön liitäntään käytetyt nastat:
// KÄYTÄ WIRINGPI -PIN -NUMEROJA
#define LCD_E 15 // Ota PIN käyttöön #define LCD_RS 16 // Rekisteröi valitse nasta #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 // Datanappi 7
Nastat, joita käytetään RGB -taustavalon ohjaukseen
$ G kirjoittaa 10
$ G kirjoittaa 4 1 $ G kirjoittaa 7 1
Oranssi PI nolla wPI -nastat 1, 4, 7. Ainoa taika, jonka tämä nestekidenäyttö voi tehdä verrattuna tavalliseen kiinteään siniseen tai vihreään taustavalon LCD -näyttöön, jossa sinulla on yksi katodi, joka on vedettävä alas GND: hen, ja siinä on 3 värit. Punainen, vihreä ja sininen. Vaihtamalla yhdistelmän, jonka yksi on kytketty päälle, voit sekoittaa eri värejä näistä perusväreistä, mutta vain yläpäät eivät sisällä sävyjä, koska et voi hallita värin kirkkautta (se on joko päällä tai pois päältä).
Lisäaineiden sekoittaminen: punaisen lisääminen vihreään tuottaa keltaista; punaisen lisääminen siniseen tuottaa magentan; vihreän lisääminen siniseen tuottaa syaania; kun kaikki kolme perusväriä yhdistetään, saadaan valkoinen.
Vaihe 3: Käyttöjärjestelmä
OrangeBOX käynnistyy ja Armbian linux (perustuu Debian Stretchiin) 4.14.18-sunxi-ydin, jossa on suojattu palomuuriympäristö, muodostaa yhteyden VPN-verkkoon ja odottaa etäkopiointikomentoja palvelimelta.
Suunnitteluperiaatteet:
-Täysi luksipohjainen levysalaus (laite itsessään ei sisällä avainta varmuuskopioaseman avaamiseen. Se kopioidaan väliaikaisesti etäpalvelimelta ram /dev /shm -levyyn, asema avataan ja avain poistetaan. Varmuuskopioinnin jälkeen asema on kiinni ja OrangeBox sammuu automaattisesti 1 minuutin kuluttua.)
-Kaikki komennot ja avaimet lähetetään etäpalvelimelta (laite itse sisältää vain vpn -sertifikaatin) sillä ei ole MITÄÄN pääsyä etäpalvelimelle, vaikka tämän laitteen ssh on palomuuri
-Paikalliset tiedostojärjestelmät on salattu, jotta ne voivat käynnistyä, mutta eivät sisällä mitään hyödyllistä, ja koska VPN-uplink on toisessa päässä erittäin rajoitettu, vaikka laite katoaisi kokonaan, hyökkääjä ei voi tehdä mitään
Lataa Armbian Stretch osoitteesta
Käynnistä järjestelmä:
apt-get update && apt-get update
apt-get install sysvinit-core sysvinit-utils
Muokkaa /etc /inittab, kaikki konsolit voidaan poistaa käytöstä, koska laatikkoa käytetään päätön. Kommentoi seuraava jakso:
#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
Käynnistä laatikko uudelleen ja poista systemd saadaksesi todellinen avoimen lähdekoodin bloatware -vapaa järjestelmä.
apt-get remove --purge --auto-remove systemd
Asenna joitain paketteja
apt-get install cryptsetup vim htop rsync -näyttö gcc make git
Asenna wiringpi -kirjasto
cd /usr /src
git-klooni https://github.com/xpertsavenue/WiringOP-Zero.git cd WiringOP-Zero chmod +x./build./build
Luo oranssi käyttäjä LCD -näytölle
groupadd -g 1000 oranssi
useradd -m -d /home /orange -s /bin /bash -u 1000 -g oranssi oranssi
Vahtikoira, joka ei valvo sinua
apt-get install watchdog
Tarkastellaanko/etc/default/watchdog # Aloitetaanko vahtikoira käynnistyksen yhteydessä? 0 tai 1 run_watchdog = 1 # Aloitetaanko wd_keepalive vahtikoiran pysäyttämisen jälkeen? 0 tai 1 run_wd_keepalive = 1 # Lataa moduuli ennen vahtikoiran käynnistämistä watchdog_module = "none" # Määritä lisävalvontavaihtoehdot täällä (katso manpage).
Tarkastellaan /etc/watchdog.conf
# Ota ainakin nämä käyttöön
max-load-1 = 24 max-load-5 = 18 max-load-15 = 12
/etc/init.d/watchdog start
On oltava vähintään yksi ytimen säie ja yksi prosessi:
juuri 42 0,0 0,0 0 0? I <10:50 0:00 [vahtikoira] root 14613 0,0 0,2 1432 1080? SLs 13:31 0:00/usr/sbin/watchdog
Testaus:
Muista lopettaa kaikki ja tehdä synkronointi ja synkronointi ja synkronointi kirjoittaaksesi loput tiedot levylle. Sitten juuri ongelma:
echo 1> /dev /vahtikoira
Muutaman sekunnin kuluttua koneen pitäisi käynnistyä uudelleen.
Kuten käsikirja sanoo:
o Onko prosessitaulukko täynnä?
o Onko muistia riittävästi? o Onko varattavaa muistia riittävästi? o Ovatko jotkin tiedostot käytettävissä? o Onko jotkin tiedostot muuttuneet tietyn ajan kuluessa? o Onko keskimääräinen työkuorma liian suuri? o Onko tapahtunut tiedostotaulukon ylivuoto? o Onko prosessi edelleen käynnissä? Pid -tiedosto määrittää prosessin. o Vastaavatko jotkin IP -osoitteet pingiin? o Vastaanottavatko verkkoliittymät liikennettä? o Onko lämpötila liian korkea? (Lämpötilatiedot eivät ole aina saatavilla.) O Suorita käyttäjän määrittämä komento suorittaaksesi mielivaltaisia testejä. o Suorita yksi tai useampia testi-/korjauskomentoja, jotka löytyvät tiedostosta /etc/watchdog.d. Nämä komennot kutsutaan argumenttitestillä tai korjauksella. Jos jokin näistä tarkastuksista epäonnistuu, vahtikoira aiheuttaa sammutuksen. Jos jokin näistä testeistä käyttäjän määrittämää binaaria lukuun ottamatta kestää yli minuutin, myös kone käynnistetään uudelleen.
Tämä vahtikoira saattoi toimia normaalisti x86 -arkkitehtuureissa, mutta ARM -pohjaisilla levyillä, kuten Raspberry PI, Orange PI, se epäonnistui lukemattomia kertoja. Järjestelmä voi siirtyä roikkumistiloihin, joissa jopa vahtikoira roikkuu. Määritetään se joka tapauksessa, ehkä se paranee apt-get-päivityksen myötä vuosien varrella:(
Vaihe 4: Ohjelmistosuunnittelu
Varmuuskopiointiprosessi on rsync-pohjainen (paras varmuuskopiointityökalu koskaan keksitty), tiedot lähetetään SERVER-> OrangeBOX-palvelimesta.
Tietojen poimiminen rsyncistä oli projektin ainoa haastava osa, jonka varmuuskopion edistymispalkki tulostettiin nestekidenäyttöön.
Varmuuskopion etenemisen laskemiseksi oli kolme mahdollista tapaa:
1, käyttämällä kaavoja, kuten https://wintelguy.com/transfertimecalc.pl, määrittämään, kuinka kauan siirto voi kestää
Siirtoaika (d: h: m: s): 0: 02: 44: 00
Vertailun vuoksi: Arvioitu aika siirtää 123 Gt: n tiedosto eri verkkolinkkien kautta (d: h: m: s): T1/DS1 -linja (1,544 Mbps) - 7: 09: 01: 46 Ethernet (10 Mbps) - 1:03: 20:00 Nopea Ethernet (100 Mbps) - 0: 02: 44: 00 Gigabit Ethernet (1000 Mbps) - 0: 00: 16: 24 10 Gigabit Ethernet (10 Gbps) - 0: 00: 01: 38
Jos rsync lopettaa, se ilmoittaa komentosarjasta lopettavan laskennan. Tämä menetelmä on vain likimääräinen ja ei luotettava, myös linkin nopeus ei ole kiinteä, se voi hidastaa, nopeuttaa uudelleen. Tämä on vain teoreettinen laskelma.
2, Teemme hakemiston kokotarkistukset määrittääksemme, kuinka paljon tietoja synkronoimme jo. Voi hidastua satojen gigatavujen pienillä tiedostoilla (vaikka Linuxin du -tiedostot tekevät välimuistia, jos suoritat sen uudelleen)
Isäntä A -> Varmuuskopioitavat palvelintiedot Data dir: 235GB
Isäntä B -> Oranssi laatikko -asiakasdata, joka meillä on tällä hetkellä Data data: 112GB
Delta on 123 Gt.
3, Jos tiedostojärjestelmä on omistettu kuten meidän tapauksessamme/dev/mapper/backup, voimme hyödyntää tiedostojärjestelmän yleistä käyttöindikaattoria määrittääksemme, miten varmuuskopiointi etenee ja tämä on todella pirun nopeaa. Tässä tapauksessa meidän ei tarvitse edes syöttää rsync stdout -laitetta mihinkään, suorita vain kuiva rsync, odota, kunnes se on valmis, laske delta tavuina ja tarkista tämä vara -aseman vapaasta tilasta ja voila voimme tee nyt mukava pylväskaavio. Tämä oli menetelmä, jonka valitsin, ja tässä on käsikirjoitukseni sille:
#!/bin/bash
# Backup Progress Calculator for OrangeBOX by NLD # Versio: 0.2 (2018/03/05) # # Suorita se etuoikeutettuna käyttäjänä osoitteesta cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Tämä skripti on vastuussa vain tietojen näyttämisestä nestekidenäytöllä, se kommunikoi # pääohjelman kanssa epäsuorasti sijainti- ja lukitustiedostojen kautta. BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # levyn käyttö varmuuskopion alussa TFILE = "$ HOME/trans.size" # yleinen ennalta laskettu siirtokoko BFILE = "$ HOME/ backup.lck " # määrittää käynnistetyn tilan FFILE =" $ HOME/backup.fin " # määrittää lopullisen tilan LFILE1 =" $ HOME/lcd1.bar " # Nestekidenäytön edistymisindikaattoritiedot LFILE2 =" $ HOME/lcd2.bar " # Nestekidenäyttö indikaattoritiedot SHUTDOWN = "1" # Jos 1, se käynnistää toisen komentosarjan, joka sulkee laatikon varmuuskopioinnin lopussa BACKUP_CURRENT = "0" # On alustettava, mutta se lasketaan DRIVE_SIZE = "" # Aseman koko tavuina (toissijainen tarkista) LCD = "sudo /bin /lcd" -toiminto is_mount () {grep -q "$ 1" /proc /mounts status = $? } toiminto punainen () {sudo /bin /lcdcolor red} toiminto vihreä () {sudo /bin /lcdcolor green} funktio sininen () {sudo /bin /lcdcolor blue} # Tyhjennä tila (määritetty käynnistyksen yhteydessä bootup_display.sh). Varmuuskopiointia ei ole käynnissä, ÄLÄ sotke # -tilan LCD -näyttöä. Näytä edistyminen vain, jos varmuuskopiointi on käynnissä => Ei aloitustiedostoa JA ei fin -tiedostoa = lopeta, jos [! -f $ BFILE] && [! -f $ FFILE]; sitten poistu 1 fi # Jos varmuuskopiointi on valmis, tämä skripti näyttää sen ja poistaa lukot #, jotta niitä ei voida suorittaa uudelleen ennen seuraavaa käynnistystä. jos [-f $ FFILE]; sitten vihreä $ LCD "Varmuuskopiointi" "** Valmis **" echo "Varmuuskopiointi valmis" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Varmuuskopiointi valmis, jos [$ SHUTDOWN == "1"]; sitten kaiku "Suorita sammutusskripti…" /home/orange/shutdown.sh & fi exit 0 fi # Tästä lähtien skripti suoritetaan VAIN, jos käynnissä on varmuuskopio #, joten kaikki virheet tulostetaan nestekidenäyttöön ja aiheuttavat skriptin # keskeyttää, mutta se ei poista backup.lck -tiedostoa, joten se tulee tänne # uudestaan ja uudestaan ja haihduttaa olosuhteet. is_mount $ BACKUP_DRIVE, jos [$ status -ne 0]; sitten punainen $ LCD "ERR: Backup drive" "ei ole asennettu!" echo "Varmuuskopiointia ei ole asennettu" exit 1 fi, jos [! -s $ TFILE]; sitten punainen $ LCD "ERR: transfile" "on tyhjä" echo "Kuljetuskoon laskentatiedosto on tyhjä." exit 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') jos [-z $ BACKUP_OVERALL]; sitten punainen $ LCD "ERR: Size readback" "from server invalid" echo "Varmuuskopion kokonaiskoon lukeminen on virheellinen 1" exit 1 fi if!
Vaikka koodi on yksinkertainen, tässä on kuvaus sen toiminnasta:
1, Jos BFILE- tai FFILE -tiedostoa ei ole olemassa (mikä on tila selvän käynnistyksen jälkeen), se osoittaa, että varmuuskopiointiprosessia ei ole, joten ÄLÄ tee mitään vain lopettamalla. Tällä tavalla voit piirtää haluamasi mukavat tiedot käynnistyksestä, kuten isäntänimi, ip, käyttöaika jne., Ja se ei sotkeudu.
2, Siirrymme is_mount $ BACKUP_DRIVE -osioon. Vain muistutus, että ainoa tapa päästä tänne on, että varmuuskopiointi aloitettiin, joten BFILE on olemassa. Nyt koodi vain tarkistaa erilaisia virheitä, kuten onko varmuuskopioasema asennettu? Onko varmuuskopioitavan kokonaiskoko suurempi kuin asema? tai muita virheitä. Muista, että tämä on vain DISPLAY -ohjelma, vaikka koko ylittäisi varmuuskopiot, se ei keskeytä mitään.
3, OK kaikki virheentarkistukset tyhjennetään prosenttikaavion laskemiseen. Ensin skripti ottaa "tilannekuvan" varmuuskopiotiedostojärjestelmän tavuissa käytetystä tilasta ja tallentaa sen VFILE -tiedostoon. Mikä on tämän tarkoitus: bash -skripti on valtioton, se menettää tietoja suoritusten välillä, joten jos haluat "muistaa" joitain tietoja edellisestä suorituksesta, sinun on tallennettava ne jonnekin. Meidän tapauksessamme tämä on vain yksinkertainen tekstitiedosto. Yksinkertaistamiseksi sanotaan, että START_POS -muistimme on 1 Gt (meillä on dataa), varmuuskopioimme +2 Gt ja aseman kokonaiskapasiteetti on 10 Gt.
4, Seuraavan kerran, kun skripti suoritetaan, VFILE on olemassa ja tämä luetaan takaisin (joten tiedämme mikä oli lähtöasento, jos asema ei ollut tyhjä) laskemaan BACKUP_CURRENT, joka on lähinnä delta käytössä olevasta tilasta varmuuskopiointiasemassa miinus aloitusasema, jonka olemme tallentaneet VFILE -tiedostoon viimeisellä kierroksella (tämä on jälleen tieto, joka meillä oli asemalla varmuuskopioinnin alkaessa). Käsikirjoitus toimii sisäisesti tavuilla, mutta jotta se olisi yksinkertainen puolen tunnin kuluttua, varmuuskopioimme 500 Mt: n tiedot, niin kaava olisi BACKUP_CURRENT = 1,5 Gt - 1 Gt (alkutila) => mikä antaa meille takaisin täsmälleen todelliset tiedot 500 Mt, eli mitä olemme tähän mennessä varmuuskopioineet. Näet, että ilman seuraamista siitä, mitä alkuperäiset tiedot olivat varmuuskopioinnin alussa, tämä kokolaskenta epäonnistuu, koska se näkee, että tällä hetkellä käytetty tila on 1,5 Gt tietämättä, että levyllä oli 1 keikkatieto koko ajan aiemmasta varmuuskopiosta, joten oletetaan, että palvelin on lähettänyt meille 1,5 Gt dataa 500 Mt: n sijasta.
5, BACKUP_OVERALL luetaan sisään, palvelin laski nämä tiedot, kun se teki ensimmäisen kuiva-rsynkronoinnin (joten tämä on ulkoinen tietolähde, joka sisältää tavujen määrän, jotka varmuuskopioidaan palvelimelta-> OrangeBOX). Tämä arvo verrataan levyn vapaaseen tilaan tällä hetkellä, ja jos se ylittää sen, lcd: llä näkyy virheilmoitus ja komentosarja lopettaa suorituksen. Muista jälleen, että kaikki tämä skripti näkyy VAIN, se ei häiritse varmuuskopiointia. Jos puhdistat levyn tiedostot tai tiedostojen määrä muuttuu etänä ja siksi BACKUP_OVERALL muuttuu jossain vaiheessa, se jatkaa.
6, Lopuksi olemme suorittaneet toisen tason tarkistukset, on aika näyttää jotain. Skripti näyttää sekä konsolin että LCD -näytön tiedot yksinkertaisella C -sovelluksella. Tausta vaihtuu SINISEKSI, mikä osoittaa, että varmuuskopiointi vihdoin alkoi ja edistyminen laskettiin seuraavalla kaavalla PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Tämä on perusprosenttilaskelma, jossa otamme nykyisen määrän, esimerkissämme 0,5 Gt*100/2 Gt = 25%.
7, Numerot muunnetaan myös tavuista mega-/gigatavuiksi ja näyttö näkyy automaattisesti megatavuina, jos se on pienempi kuin 1 Gt.
8, Yksi asia jäljellä kartoittaa tämä meidän tapauksessamme on 25% 20 sarakkeen LCD -näytöllä. Se olisi esimerkissämme 25 * 20/100 = 5. Tällä hetkellä LCD -ohjelman päivitys on toteutettu, ja joka kerta, kun kutsut ohjelmaa, se piirtää koko näytön uudelleen. Joten tässä tapauksessa se ajaisi for -silmukan 5 kertaa piirtämään 5 hashmarks # -näyttöä, tämä näyttäisi rumaa välkkymistä jokaisella kierroksella, joten kirjoitan lasketut edistymispalkitiedot LFILE1: lle ja 2: lle, mikä tässä tapauksessa 5 kierrosta sisältävät ##### ja tämä luetaan takaisin ja näytetään nestekidenäytössä. Voit myös laittaa LFILE1: n ja 2 ramdiskille säästääksesi sdcardin ylimääräisiltä kirjoitusoperaatioilta, se ei aiheuttanut minulle ongelmia, komentosarja suoritetaan kerran minuutissa cronista.
9, Kun varmuuskopiointi on valmis, toinen skripti rsync -palvelimelta koskettaa FFILE (Finish File). Seuraavassa silmukassa backup_progress.sh näyttää sitten, että varmuuskopiointi on valmis ja kutsuu valinnaisesti toisen komentosarjan OrangeBOXin sammuttamiseksi. Se poistaa lukitustiedostot tässä vaiheessa, mikä tekee jatkotoimista mahdottomia, joten vaikka et salli sammutusta seuraavalla minuutilla, kun tämä komentosarja suoritetaan, se sulkeutuu heti, koska BFILE ei ole siellä eikä FFILE ole siellä. Siksi se näyttää varmuuskopioinnin valmis -viestin loputtomiin, ellei varmuuskopiointia käynnistetä uudelleen.
Etävarmuuskopiointiohjelma (orange-remote.sh):
Sinun on luotava ssh -avain varmuuskopiolle ja avain taajuusmuuttajan luks -salaukselle. Kun suoritat etävarmuuskopioinnin manuaalisesti ensimmäisen kerran, se tallentaa oranssit laatikot isännän sormenjäljen isäntätiedostoon (tästä lähtien cron voi suorittaa sen automaattisesti).
DISK = "/dev/disk/by-id/…"
Voit selvittää kiintolevytunnisteesi ajamalla uuid, blkid tai vain etsimällä vastaavat/dev/disk/hakemistot.
Hakemiston sisällyttäminen poissulkemiseen voidaan määrittää, jos et halua varmuuskopioida kaikkea. Tämä on melko ärsyttävää prosessia, koska jos haluat sulkea yksittäisen alihakemiston syvälle rakenteeseen, sinun on tehtävä rsync:
+ /a
+/a/b +/a/b/c +/a/b/c/d -/a/b/c/d/e +/dir2
Koska tämä komentosarja suorittaa komentoja OrangeBOX -laitteella etänä, sillä ei ole valvontaa paluumuuttujilta siltä puolelta, joten käytän joitain fiksuja temppuja, kuten se lähettää viestin etäaseman avaamisesta tiedostoon /tmp/contmsg.txt ja sitten jäsentää nähdäkseen, onnistuiko se, jos ei, niin se muuttaa rsync-binaarin suoritettavaksi, joten rsync ei yritä lähettää tietoja OrangePI-juuritiedostoihin täyttäen SD-kortin. Myös hyvä käytäntö asettaa muuttumaton bitti chattr +i /mnt /varmuuskopiointiin, jotta tämä olisi mahdotonta.
Koon ennakolaskenta suoritetaan paikallisesti palvelimella, joten tämä tiedosto on lähetettävä OrangeBOXiin seuraavassa vaiheessa.
Päävarmuuskopio aloitetaan silmukana kohteelle ((i = 0; i <100; i ++)); tehdä, koska jos DSL/kaapeli -Internet -yhteydet ovat huonolaatuisia, rsync voi usein katketa, aikakatkaisu. Jos se suoritetaan loppuun, silmukka katkeaa yrittämättä uusia iteraatioita. Tämä toimii moitteettomasti hyvillä käyttöjärjestelmillä, mutta jos jostain syystä etälaatikko olisi ikkunat ja pääsy estettäisiin kuten säännöllisesti NTUSER. DAT: ssä, rsync palauttaisi virhekoodin ja tämä silmukka suorittaisi 100 kertaa ja epäonnistuu silti.
Vaihe 5: Sulkeminen ja tehtävälista
Ohjaamoni osoittaa jälleen kerran, kuinka voit luoda jotain parempaa, muokattavampaa laitetta 10 dollarin tietokoneesta, joka voittaa helvetin Buffalosta sen omistamilla lukituilla NAS -laitteilla, outo sisäinen osiointi, busybox -vammautunut Linux, jossa on segmentointityökalut heidän Windows -ohjelmistonsa, suljetun laiteohjelmiston, huonon dokumentaation ja tuen avulla, ja riippumatta siitä, kuinka paljon rahaa käytät, et koskaan saa edistymisindikaattoria, joka näyttää varmuuskopion puhumattakaan siitä, kuinka siisti OrangeBox näyttää (käytän jopa oranssia CAT5 -kaapelia sen kanssa: D).
Kun minitietokoneista tulee yhä tehokkaampia ja samalla säilytetään sama <100 $ hintaluokka, voimme käyttää niitä yhä useampiin tehtäviin. Koska Gbe Ethernet -portit ovat nykyään melko yleisiä 1-2 vuoden kuluessa, näiden levyjen muisti kasvaa dramaattisesti ja niitä voidaan käyttää myös ZFS-pohjaisiin varmuuskopiointijärjestelmiin.
-C -ohjelman hieno viljan edistymisindikaattori (katso toinen projektini WasserStation). Tällä hetkellä vain # hashmark # merkkiä käytetään merkkitilassa lcdPuts (lcd, line1) -tilassa, tätä voitaisiin parantaa, vaikka käytettäisiin merkkinäyttöjä jakamaan 1 sarake 5 osaan, ja C -pääohjelma voisi ottaa vain kokonaisluvun, kuten 25, ja vetää edistymispalkki kunnolla tai parannettu edelleen graafisen nestekidenäytön avulla
-Mahdollisuus saada irrotettava hdd uusien ja uusien varmuuskopioiden luomiseen ja siirtämiseen eri paikkoihin (jos laatikko havaitsee tyhjän aseman, sen pitäisi alustaa se automaattisesti salausavaimella, kun se on vastaanotettu).
-Jos haluat tulostaa oman kotelosi makerbotilla, OrangeNAS saattaa olla sinulle mielenkiintoinen:
Suositeltava:
Suojattu WIFI -reititin - virustorjunta-, haitta- ja lunnasohjelmasuojaus ja yksityisyys: 5 vaihetta
Suojattu WIFI -reititin - virustentorjunta-, haitta- ja kiristysohjelmasuojaus ja yksityisyys: Edullinen päätepistesuojaus RaspBerryPI 4: n ja avoimen lähdekoodin avulla. mainoksen kautta
Suojattu Arduino -kaukosäädin: 5 vaihetta
Suojattu Arduino -kaukosäädin: Tämä on esimerkki erittäin turvallisen langattoman (autotallin) kauko -ohjaimen tekemisestä. Yleensä kaukosäätimissä on liikkuvan koodin tyyppinen suojaus, jonka kuka tahansa edistynyt varas voi ohittaa. hakkerointi olisi ac
Raspberry Pi -työpöytä: suojattu päätön asennus ilman näyttöä: 6 vaihetta
Raspberry Pi Desktop: Suojattu päätön asennus ilman näyttöä: Jos luet tätä, olet todennäköisesti jo tutustunut Raspberry Pi -laitteeseen. Minulla on pari näitä mahtavia lautoja ympäri taloa erilaisten projektien suorittamiseen. Jos tarkastelet mitä tahansa opasta, joka näyttää, miten pääset alkuun Raspberry Pi: n kanssa
Luotettava, suojattu, muokattava tekstiviestien kaukosäädin (Arduino/pfodApp) - Koodausta ei tarvita: 4 vaihetta
Luotettava, suojattu ja muokattavissa oleva tekstiviestien kaukosäädin (Arduino/pfodApp) - Koodausta ei tarvita: Päivitys 6. heinäkuuta 2018: Tämän projektin 3G/2G -versio, jossa on SIM5320, on saatavilla täältä Päivitys: 19. toukokuuta 2015: Käytä pfodParser -kirjastoa, versio 2.5 tai korkeampi. Se korjaa raportoidun ongelman, ettei kilven yhdistämiseen riitä aikaa
Sormenjälkien suojattu laatikko: 4 vaihetta
Sormenjälkien suojattu laatikko: Käytä DFRobotin UART -sormenjälkitunnistinta sormenjälkien tallentamiseen ja salli vain valtuutettujen ihmisten käyttää laatikkoa