Innehållsförteckning:

OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering: 5 steg
OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering: 5 steg

Video: OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering: 5 steg

Video: OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering: 5 steg
Video: ORANGE PI 5 BOX - PLACA PODEROSA COM CPU RK3588S ANDROID 12 8GB LPDDR4X RAM - REVIEW UNBOX E TESTES 2024, November
Anonim
OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering
OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering
OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering
OrangeBOX: OrangePI -baserad säker lagringsenhet för säkerhetskopiering

OrangeBOX är en allt-i-ett fjärrlagringsbackup för alla servrar.

Din server kan vara infekterad, skadad, torkad och alla dina data är fortfarande säkra på OrangeBOX och vem skulle inte vilja ha ett omöjligt uppdrag som backup -enhet vad du bara kopplar in och ser en framstegsindikator utan att göra något mer (hoppas bara på magin rök kommer inte ut i slutet:)).

OrangeBOX är mitt första projekt som mestadels är en programvara, inte en hårdvaruhack. Det är i princip en specialbyggd NAS med en LCD -skärm.

Steg 1: Hårdvarudelar

Hårdvarudelar
Hårdvarudelar
Hårdvarudelar
Hårdvarudelar
Hårdvarudelar
Hårdvarudelar

Orange PI zero är en enkelkortsdator med öppen källkod. Den kan köra Android 4.4, Ubuntu, Debian. Den använder AllWinner H2 SoC och har 256 MB/512 MB DDR3 SDRAM (256 MB version är standardversion. Orange Pi Zero är för alla som vill börja skapa med teknik - inte bara konsumera den. Det är ett enkelt, roligt och användbart verktyg som du kan använda för att börja ta kontroll över världen runt dig (https://www.orangepi.org/orangepizero/). Så det är precis för oss, låt oss fortsätta:)

  • Metall/plast/trälåda (jag har använt en gammal Yamaha extern cd-rw-låda)
  • Orange PI Zero eller bättre (GPIO pinout kan ändras om du använder en annan modell)
  • 2x20 RGB LCD -skärmar
  • Alla SFF 3.5/ LFF 2.55 usb -enheter
  • Sata -> usb -adapter. Tänk på att även om OrangePI inte sätter upp någon övre gräns för den maximala enhetskapaciteten, gör många USB-till-SATA-bryggor (max 2 TB). Den orange PI Zero I använder bara en enda USB 2.0 -port med en effektiv överföringshastighet på 28 MB/s max. Jag har valt en USB3.0 (förberedd för framtida uppgraderingar) -> SATA -brygga (märke kommer inte att nämnas) och det överträffar gränsen så det är bättre att välja en bro som har visat sig stödja större enheter som JMicron JMS567 chipbaserade broar. Gör din egen forskning innan du köper en. Jag kan leva med hastigheten och hårddiskgränsen genom att använda en 2TB sata -enhet i det här projektet (om du sätter i större enheter kommer det att identifieras men operativsystemet ser bara de första 2TB av det så att resten av kapaciteten blir förlorat).
  • 12V 2,5 A eller högre amp -adapter. Beräkna cirka 500mA normal användning för OPI Zero och 1,5A topp för en standard LFF SATA -enhet. Oversize gör aldrig ont. I min installation blåste Yamaha psu (vad som kunde leverera mer än tillräckligt med ström på båda 12+5V -skenorna) tyvärr upp: (på grund av att jag sorterade huvudströmbrytaren till GND en sekund så jag fick limma in en vanlig adapter, kl. åtminstone gjorde det lådan ett par gram lättare.
  • Buckomvandlare DC-DC 12V-> 5V. Jag använde samma justerbara minibock som med IronForge, fungerar perfekt.

Frivillig

Om du är villig att spendera + 10 $ kan du få Orange Pi Plus (https://www.armbian.com/orange-pi-one-plus/) som är en liknande formfaktor och ger dig Gbe och SATA3. För detta kan Libra PI -kabelbiblioteket användas: https://github.com/OrangePiLibra/WiringPi men eftersom GPIO -pinout är annorlunda är det utanför ramen för detta skrivande.

Du kan också göra detta med den nya Orange PI Plus2 som har SATA-kontakt och du kan hoppa över användningen av sata-> usb-omvandlare tillsammans med sina begränsningar. Om du planerar att använda FreeBSD eller andra BSD är Orange PI -serien kanske inte det bästa valet eftersom deras hårdvarustöd är begränsat (till exempel måste du använda USB -minne för att starta). För BSD är det det bästa rådet att använda Raspberry PI. Både C -koden för LCD -skärmen och alla skalskript är bärbara till alla andra UNIX -system.

Steg 2: Hårdvarudesign

Hårdvarudesign
Hårdvarudesign
Hårdvarudesign
Hårdvarudesign
Hårdvarudesign
Hårdvarudesign

Yamaha-lådan var lagom för att lagra allt detta, den skulle inte ha tillräckligt med plats för en Orange PI-dator eller vanligt Raspi-formfaktorkort.

Ethernet togs ut med en förlängare på baksidan av lådan. Kom ihåg att Orange PI zero bara har 100mbit/s Ethernet -gränssnitt om du vill snabbare måste du använda ett annat kort som Asus Tinkerboard/RPI3B+/Other Orange PI -modeller.

Fel PIN -kod är det enda misstaget du kan göra i det här projektet, därför är det värt att tillämpa några tumreglar:

1, försök alltid att använda samma färgade kabel från END till END. Jag begår själv samma "misstag" i vissa projekt där jag inte gör det, helt enkelt för att jag inte har tillräckligt långa man-hane/han-kvinna/kvinnliga-kvinnliga kablar till hands och jag lappar ihop 2 bara för att fortsätta kretsen. Om du inte korrekt dokumenterar ditt arbete kan detta leda till huvudvärk år senare där du måste reparera, uppgradera.

2, Applicera lite lim på kontakterna. Om du använder dessa arduino-startkit-typ mm/mf/ff-kablar som inte är av högsta kvalitet är det ganska vanligt (särskilt om du rör dig/transporterar enheten) att kontakterna glider ut. Om du vet att det kommer att vara en långsiktig användningsenhet (eventuellt använda tills den går sönder ?!) är det bättre att applicera lite hett lim både på OrangePI- och LCD -sidan av kontakterna för att hålla dem ihop. Detta kan lätt smälta/repas senare vid behov.

3, OrangePI -nollkablarna De dåliga nyheterna är att Orange PI -pinout INTE är samma som Raspberry PI 0/1/2/3 och det är till och med skillnad mellan andra Orange PI -modeller. Det bästa sättet att gå är att skaffa ledningsbiblioteket (Orange PI Zero version). Bilden kan vara lite förvirrande men det här var det bästa jag kunde hitta. Den ena är en 180 graders spegel av den andra. Även om den icke grafiska CLI -bilden kan vara svårare att förstå är den den mest raka framåt.

Du kan alltid skilja de två ändarna av uttagen genom att betrakta ena änden som den POSITIVa änden med (+3.3/+5V) och den andra som den NEGATIVa änden (en GND) -> detta är änden på kontakten som vetter mot ETHERNET -porten.

Från tabellen Wiring PI Zero behöver du bara en kolumn, wPI glömmer bort de andra som om de inte skulle finnas där.

Så till exempel för att ansluta LCD_E 15 (det vill säga wPI 15!) Och LCD_RS 16 (det vill säga wPI 16!) Räkna stiften från kontakten POSITIV (lätt att göra med en penna eller en liten skruvmejsel). Det kommer fysiskt att gå ner 4 stift och 5 stift.

4, gruppera upp. Om det finns en möjlighet att sätta använda stift bredvid varandra (gruppera dem) alltid valt det, gör det att de kan hålla tag i varandra även utan lim och även i andra projekt när du har 2x 4x 6x molex -kontakter du kan dra bara nytta av att stiften ligger bredvid varandra. Här är det bästa du kan göra en grupp på 2-3: or (perfekt när du använder bärgade bygelkablar från gamla datorer).

Stift som används för OrangePI LCD -skärmanslutning:

// ANVÄND WIRINGPI PIN -NUMMER

#define LCD_E 15 // Aktivera Pin #define LCD_RS 16 // Registrera välj pin #define LCD_D4 5 // Datastift 4 #definiera LCD_D5 6 // Datastift 5 #definiera LCD_D6 10 // Datastift 6 #definiera LCD_D7 11 // Datastift 7

Stift som används för RGB -bakgrundsbelysning

$ G skriva 1 0

$ G skriva 4 1 $ G skriva 7 1

Orange PI noll wPI -stift 1, 4, 7. Den enda magiska denna LCD kan göra jämfört med standardfixblå eller fixa grön bakgrundsbelysning LCD där du har en enda katod som måste dras ner till GND att den har 3 för 3 färger. Rött, grönt och blått. Genom att ändra kombinationen av vilken som är PÅ kan du blanda ut olika färger från dessa basfärger men endast de höga ändarna inga nyanser eftersom du inte kan styra ljusstyrkan i en färg (den är antingen på eller av).

Additiv färgblandning: tillsats av rött till grönt ger gult; tillsats av rött till blått ger magenta; tillsats av grönt till blått ger cyan; att lägga till alla tre primära färgerna ger vitt.

Steg 3: Operativsystem

Operativ system
Operativ system

OrangeBOX startar upp och Armbian linux (baserat på Debian Stretch) 4.14.18-sunxi-kärna med en säker brandväggsmiljö, ansluter till ett VPN och väntar på fjärrkommandon för säkerhetskopiering från servern.

Designprinciper:

-Full luks -baserad diskkryptering (själva enheten innehåller inte nyckeln för att öppna säkerhetskopieringsenheten. Den kommer att tillfälligt kopieras från fjärrservern till ram /dev /shm, enheten öppnas och nyckeln raderas. När säkerhetskopian är klar enheten stängdes och OrangeBox stängs av automatiskt på 1 minut.)

-Alla kommandon och nycklar skickas från fjärrservern (själva enheten innehåller bara ett vpn -cert) den har INGEN åtkomst till fjärrservern även ssh från den här enheten är brandväggad

-De lokala filsystemen är okrypterade för att kunna starta upp men innehåller inte något användbart och eftersom VPN-upplänken är mycket begränsad i andra änden även med den fullständiga förlusten av enheten kan en angripare inte göra någonting

Ladda ner Armbian Stretch från

Få systemet igång:

apt-get update && apt-get upgrade

apt-get install sysvinit-core sysvinit-utils

Redigera /etc /inittab, hela konsolen kan inaktiveras eftersom rutan kommer att användas som huvudlös. Kommentera följande avsnitt:

#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

Starta om din låda och ta bort systemd för att ha ett riktigt bloatware -fritt system med öppen källkod.

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

Installera några paket

apt-get install cryptsetup vim htop rsync skärm gcc make git

Installera wiringpi -biblioteket

cd /usr /src

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

Skapa orange användare för LCD -skärmen

groupadd -g 1000 apelsin

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

Vakthunden som inte vakar över dig

apt-get installera vakthund

Tittar på/etc/default/vakthund # Starta vakthund vid starttid? 0 eller 1 run_watchdog = 1 # Börja wd_keepalive efter att ha stoppat vakthund? 0 eller 1 run_wd_keepalive = 1 # Ladda modul innan du startar vakthund watchdog_module = "none" # Ange ytterligare vakthundalternativ här (se manpage).

Tittar på /etc/watchdog.conf

# Aktivera åtminstone dessa

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

/etc/init.d/watchdog starta

Det bör finnas minst en kärntråd och en process:

rot 42 0,0 0,0 0 0? I <10:50 0:00 [vakthund] root 14613 0,0 0,2 1432 1080? SLs 13:31 0:00/usr/sbin/vakthund

Testning:

Se till att du stoppar allt och gör en synkronisering && sync && sync för att skriva resten av data till disken. Sedan som rotfråga:

echo 1> /dev /vakthund

Efter några sekunder ska maskinen starta om.

Som det står i manualen:

o Är processbordet fullt?

o Finns det tillräckligt med ledigt minne? o Finns det tillräckligt med tilldelningsbart minne? o Är några filer tillgängliga? o Har vissa filer ändrats inom ett givet intervall? o Är den genomsnittliga arbetsbelastningen för hög? o Har ett filtabellflöde inträffat? o Kör en process fortfarande? Processen specificeras av en pid -fil. o Svarar vissa IP -adresser på ping? o Tar nätverksgränssnitt emot trafik? o Är temperaturen för hög? (Temperaturdata är inte alltid tillgänglig.) O Utför ett användardefinierat kommando för att göra godtyckliga tester. o Utför ett eller flera test-/reparationskommandon i /etc/watchdog.d. Dessa kommandon anropas med argumenttest eller reparation. Om någon av dessa kontroller misslyckas kommer vakthund att leda till avstängning. Skulle någon av dessa tester utom den användardefinierade binära varar längre än en minut, kommer maskinen också att startas om.

Den här vakthunden kan fungera OK på vanliga x86 -arkitekturer, men på ARM -baserade brädor som Raspberry PIs, Orange PIs misslyckades det mig otaliga gånger. Systemet kan gå i hänglägen där även vakthunden hänger. Låt oss bara konfigurera det i alla fall kanske det kommer att förbättras med en apt-get-uppgradering med åren:(

Steg 4: Programvarudesign

Programvarudesign
Programvarudesign

Själva säkerhetskopieringsprocessen är rsync-baserad (bästa backupverktyg som någonsin uppfunnits) data skickas från SERVER-> OrangeBOX.

Att extrahera data från rsync var den enda utmanande delen av projektet för att få en förloppsindikator om säkerhetskopian utskriven på LCD -skärmen.

Det fanns tre möjliga sätt att beräkna säkerhetskopieringsförloppet:

1, Använda formler som https://wintelguy.com/transfertimecalc.pl för att bestämma den ungefärliga tiden överföringen kan ta

Överföringstid (d: h: m: s): 0: 02: 44: 00

För jämförelse: Uppskattad tid att överföra 123 GB -fil över olika nätverkslänkar (d: h: m: s): T1/DS1 -linje (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

Om rsync är klar signalerar manuset att stoppa beräkningen. Denna metod är bara en ungefärlig och inte tillförlitlig, inte heller är länkhastigheten fixad, den kan bromsa, snabba upp igen. Detta är bara en teoretisk beräkning.

2, Gör storlekskontroller i katalogen för att avgöra hur mycket data vi redan synkroniserade. Kan bli väldigt långsam med hundratals GB -filer (även om du -s i Linux cachar lite om du kör det igen)

Värd A -> Serverdata som ska säkerhetskopieras Datadir: 235 GB

Värd B -> Orange box klientdata vi har just nu Datadir: 112GB

Delta är 123 GB.

3, Om filsystemet är dedikerat som i vårt fall/dev/mapper/backup är det att vi kan dra nytta av den övergripande indikatorn för filsystemanvändning för att avgöra hur vår säkerhetskopiering fortskrider och det är verkligen jävligt snabbt. I det här fallet behöver vi inte ens röra rsync stdout någonstans, bara köra en torr rsync, vänta tills den är klar, beräkna deltaet i byte och krysschecka detta med ledigt utrymme vad vi har på backup -enheten och voila vi kan gör nu ett snyggt stapeldiagram. Detta var den metod jag valde och här är mitt manus för det:

#!/bin/bash

# Backup Progress Calculator för OrangeBOX av NLD # Version: 0.2 (2018/03/05) # # Kör den som oprivilegerad användare från cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Detta skript är endast ansvarigt för att visa data på LCD -skärmen, det kommunicerar # med huvudprogrammet indirekt genom positions- och låsfiler. BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # diskanvändning i början av säkerhetskopian TFILE = "$ HOME/trans.size" # total förberäknad överföringsstorlek BFILE = "$ HOME/ backup.lck " # bestämmer startat tillstånd FFILE =" $ HOME/backup.fin " # bestämmer färdigt tillstånd LFILE1 =" $ HOME/lcd1.bar " # LCD -statusindikatordata LFILE2 =" $ HOME/lcd2.bar " # LCD -framsteg indikatordata SHUTDOWN = "1" # Om 1 kommer det att initiera ett annat skript som stänger rutan i slutet av säkerhetskopian BACKUP_CURRENT = "0" # Måste initieras men beräknas DRIVE_SIZE = "" # Enhetsstorlek i byte (sekundär check) LCD = "sudo /bin /lcd" funktion is_mount () {grep -q "$ 1" /proc /mounts status = $? } funktion röd () {sudo /bin /lcdcolor röd} funktion grön () {sudo /bin /lcdcolor grön} funktion blå () {sudo /bin /lcdcolor blå} # Clear state (inställd på boot av bootup_display.sh). Ingen säkerhetskopiering pågår, förstör INTE # status -LCD -skärmen. Visa bara framsteg om det finns en pågående backup => Ingen startfil OCH ingen finfil = avsluta om [! -f $ BFILE] && [! -f $ FFILE]; avsluta sedan 1 fi # Om säkerhetskopian slutförd kommer detta skript att visa det och ta bort lås # för att inte kunna köras igen förrän nästa initiering. om [-f $ FFILE]; sedan grön $ LCD "Säkerhetskopiering" "** Slutförd **" eko "Säkerhetskopiering klar" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Säkerhetskopiering avslutad om [$ SHUTDOWN == "1"]; eko sedan "Executing shutdown script …" /home/orange/shutdown.sh & fi exit 0 fi # Från denna punkt körs manuset ENDAST om det finns en PÅGÅENDE backup # därför skrivs alla fel ut på LCD -skärmen och orsakar manuset # för att avbryta men den kommer inte att ta bort backup.lck -filen så kommer att gå in här # om och om igen och undvika villkoren. is_mount $ BACKUP_DRIVE om [$ status -ne 0]; då är röd $ LCD "ERR: Backup drive" "inte monterad!" echo "Backup -enhet är inte monterad" avsluta 1 fi om [! -s $ TFILE]; sedan röd $ LCD "ERR: transfile" "är tom" echo "Transportstorleksberäkningsfil är tom." avsluta 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') if [-z $ BACKUP_OVERALL]; sedan röd $ LCD "ERR: Storleksavläsning" "från servern ogiltig" echo "Säkerhetskopiering av total storlek är ogiltig 1" avsluta 1 fi if!

Även om koden är enkel här är en beskrivning av vad den gör:

1, Om BFILE eller FFILE inte existerar (vilket är tillståndet efter en tydlig start) som indikerar att det inte finns någon backup -process så gör INTE någonting bara sluta. På så sätt kan du rita vilken fin information du vill angående uppstarten som värdnamnet, ip, upptid etc och det kommer inte att förstöras.

2, låt oss hoppa till avsnittet is_mount $ BACKUP_DRIVE. Bara en påminnelse det enda sättet vi kom hit är att en säkerhetskopia startades så BFILEN finns. Nu gör koden bara olika felkontroller som om backup -enheten är monterad ?, överskrider den totala storleken på vad vi ska säkerhetskopiera enheten? eller andra fel. Kom ihåg att detta är ett endast DISPLAY -program även om storleken skulle överstiga säkerhetskopiorna kommer det inte att avbryta någonting.

3, OK alla felkontroller rensade tiden för att beräkna procentdiagrammet. Först tar skriptet en "ögonblicksbild" av det utrymme som används i byte på backup -filsystemet just nu och lagrar det i VFILE. Vad är syftet med detta: ett bash -skript är statslöst, det tappar data mellan körningar, så om du vill "komma ihåg" några data från den tidigare körningen måste du lagra den någonstans. I vårt fall är detta bara en enkel textfil. För att göra det enkelt låt oss säga att vårt START_POS är 1 GB (data vi har), det vi vill säkerhetskopiera är +2 GB och den totala enhetskapaciteten är 10 GB.

4, nästa gång när skriptet körs finns VFILE och detta kommer att läsas tillbaka (så vi vet vad som var startpositionen om enheten inte var tom) för att beräkna BACKUP_CURRENT som i huvudsak är en delta av det utrymme som används just nu på backup -enheten minus startpositionen vad vi har sparat i VFILE i förra omgången (igen är detta data vi hade på enheten när backupen startade). Skriptet fungerar internt med byte men för att göra det enkelt efter en halvtimme säkerhetskopierade vi 500MB data då skulle formeln vara BACKUP_CURRENT = 1.5GB - 1GB (initial state) => vilket ger oss tillbaka exakt de verkliga data 500 MB, det vill säga vad vi har säkerhetskopierat hittills. Du kan se att utan att hålla reda på vad originaldata var i början av säkerhetskopian skulle denna storleksberäkning misslyckas eftersom den skulle se att det utrymme som används just nu är 1,5 GB utan att veta att 1 gig data fanns på disken hela tiden kommer från en tidigare säkerhetskopia så det skulle anta att servern har skickat oss 1,5 GB data istället för 500 MB.

5, BACKUP_OVERALL kommer att läsas in, dessa data beräknades av servern när den gjorde den första torra rsync (så detta är en extern datakälla som innehåller mängden byte som kommer att säkerhetskopieras från Server-> OrangeBOX). Detta värde kommer att kontrolleras mot det totala GRATIS utrymmet på disken för tillfället och om det överskrider det kommer ett felmeddelande att visas på LCD -skivan och skriptet stoppar körningen. Kom ihåg igen att allt detta skript bara är visning, det stör inte säkerhetskopieringen. Om du rensar upp filer på disken eller mängden filer ändras på distans och därför ändras BACKUP_OVERALL vid ett tillfälle så fortsätter det.

6, Slutligen är vi klara med andra kontrollerna att det är dags att visa något. Skriptet visar både data på konsolen och på LCD -skärmen med en enkel C -app. Bakgrunden växlas till BLÅ vilket indikerar att säkerhetskopieringen äntligen började och framstegen beräknades med följande formel PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Detta är en grundläggande procentuell beräkning vi tar det nuvarande beloppet, i vårt exempel 0,5GB*100/2GB = 25%.

7, siffrorna konverteras också från byte till Mega/Giga -byte och skärmen visas automatiskt i MB om den är lägre än 1 GB.

8, En sak kvar för att kartlägga detta i vårt fall är 25% på en 20 -kolums LCD. Det skulle vara 25 * 20/100 = 5 i vårt exempel. För närvarande genomförs uppdateringen med LCD -programmet att varje gång du ringer programmet kommer det att rita om hela skärmen. Så i det här fallet skulle det köra en for loop 5 gånger för att rita 5 hashmarkeringar # på skärmen, detta skulle visa sig vara fult flimmer i varje omgång, så istället skriver jag ut den beräknade förloppsdatan till LFILE1 och 2, vilket i det här fallet efter de fem omgångarna skulle innehålla ##### och detta läses tillbaka och visas på LCD -skärmen. Du kan också lägga LFILE1 och 2 på ramdisk för att rädda sdcard från extra skrivoperationer, det orsakade inga problem för mig, manuset körs en gång i minuten från cron.

9, När säkerhetskopian är klar kommer det andra skriptet från servern som kör rsync att röra FFILE (Slutför fil). Vid nästa loop kommer backup_progress.sh då att visa att säkerhetskopieringen är klar och eventuellt anropar ett annat skript för att stänga av OrangeBOX. Det raderar sina låsfiler vid denna tidpunkt vilket gör ytterligare körningar omöjliga, så även om du inte aktiverar avstängning nästa minut när det här skriptet körs kommer det att sluta direkt eftersom BFILEN inte är där och FFILE inte är där. Därför visas det slutförda meddelandet om säkerhetskopiering på obestämd tid om inte säkerhetskopieringen startas om igen.

Remote backup script (orange-remote.sh):

Du måste generera en ssh -nyckel för säkerhetskopian och en nyckel för luksus -kryptering för enheten. När du kör fjärrbackupen manuellt för första gången sparas de orange lådans värdfingeravtryck i värdfilen (från den här punkten kan den köras automatiskt med cron).

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

För att ta reda på din hårddiskidentifierare kör uuid, blkid eller bara leta upp motsvarande/dev/disk/kataloger.

En katalog inkluderar uteslut kan konfigureras om du inte vill säkerhetskopiera allt. Detta är en ganska irriterande process, för för rsync om du vill utesluta en enda underkatalog djupt i strukturen måste du göra:

+ /a

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

Eftersom detta skript utför kommandon på OrangeBOX på distans har det ingen övervakning av returvariablerna från den sidan, därför använder jag några smarta tricks som att det kommer ut meddelandet om att öppna fjärrkontrollen till /tmp/contmsg.txt och sedan analysera den för att se om den lyckades, om inte då ändrar den rsync-binären till icke-körbar så att rsync inte försöker ladda upp data till OrangePI: s rootfs som fyller SD-kortet. Också en bra metod att ställa in den oföränderliga biten på chattr +i /mnt /backup för att göra detta omöjligt.

Storleksförberäkningen sker lokalt på servern, därför måste denna fil skickas till OrangeBOX i nästa steg.

Huvudbackupen initieras som en loop för ((i = 0; i <100; i ++)); gör för att DSL/kabel -internetanslutningar med låg kvalitet kan rsync ofta bryta, timeout. Om det slutförts framgångsrikt kommer loopen att brytas utan att prova fler iterationer. Detta fungerar felfritt med bra operativsystem, men om fjärrboxen av någon anledning skulle vara windows och det skulle nekas åtkomst som regelbundet på NTUSER. DAT skulle rsync returnera en felkod och denna loop skulle köras 100 gånger och sedan fortfarande misslyckas.

Steg 5: Avslutning och att göra -lista

Avslutning och att göra -lista
Avslutning och att göra -lista
Avslutning och att göra -lista
Avslutning och att göra -lista

Min instruerbara visar än en gång hur du kan skapa något bättre, mer anpassningsbar enhet från en dator på 10 $ på egen hand som slår helvetet ur Buffalo med sina proprietära låsta NAS -enheter, konstig intern partitionering, busybox förlamad linux med segfaulting -verktyg, hanterad genom deras Windows -programvara, stängd firmware, dålig dokumentation och support och oavsett hur mycket pengar du kommer att spendera kommer du aldrig att få en framstegsindikator som visar din säkerhetskopia för att inte tala om hur cool OrangeBox ser ut (jag använder till och med orange CAT5 -kabel med den: D).

Med minidatorer som blir mer och mer kraftfulla samtidigt som vi bibehåller samma prisgräns på <100 $ kan vi använda dem för fler och fler uppgifter. Eftersom Gbe Ethernet-portar är ganska vanliga dessa dagar om 1-2 år kommer minnet på dessa kort att öka dramatiskt och de kan också användas för ZFS-baserade backupsystem.

-Fin spannmålsindikator från C -programmet (se WasserStation ett av mina andra projekt). Just nu bara # hashmark # tecken som används i teckenläge med lcdPuts (lcd, rad1), detta kan förbättras även om man använder tecken LCD -skärmar för att dela upp en kolumn till 5 delar och huvud C -programmet kan bara ta ett heltal som 25 och rita ut framstegsfältet korrekt eller ytterligare förbättrat med hjälp av en grafisk LCD

-Möjlighet att ha en flyttbar hdd för att skapa nya och nya säkerhetskopior och flytta dem till olika platser (om rutan upptäcker en tom enhet bör den automatiskt formatera den med krypteringsnyckeln när den har mottagits).

-Om du vill skriva ut ditt eget fodral med makerbot kan OrangeNAS vara intressant för dig:

Rekommenderad: