
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48


OrangeBOX- ը բոլորի մեջ մեկ հեռավոր պահեստավորման պահեստային տուփ է ցանկացած սերվերների համար:
Ձեր սերվերը կարող է վարակվել, կոռումպացվել, սրբվել, և ձեր բոլոր տվյալները դեռ ապահովված են OrangeBOX- ում, և ում դուր չի գա անհնարին առաքելությունը, ինչպես պահեստային սարքը, այն, ինչ դուք պարզապես միացնում եք և տեսնում առաջընթացի ցուցիչ ՝ առանց որևէ այլ բան անելու (միայն հույսը կախարդական վերջում ծուխ դուրս չի գա:)):
OrangeBOX- ը իմ առաջին նախագիծն է, որը հիմնականում ծրագրային ապահովում է, այլ ոչ թե ապարատային կոտրում: Հիմնականում դա սովորական կառուցված ԳԱԱ է `կցված LCD- ով:
Քայլ 1: Սարքավորման մասեր



Orange PI զրոը բաց կոդով մեկ տախտակ ունեցող համակարգիչ է: Այն կարող է գործարկել Android 4.4, Ubuntu, Debian: Այն օգտագործում է AllWinner H2 SoC- ն և ունի 256 ՄԲ/512 ՄԲ DDR3 SDRAM (256 ՄԲ տարբերակը Ստանդարտ տարբերակ է: Orange Pi Zero- ն բոլորի համար է, ովքեր ցանկանում են սկսել ստեղծագործել տեխնոլոգիայով, այլ ոչ թե պարզապես այն սպառելով: Դա պարզ, զվարճալի, օգտակար գործիք է, որը դուք կարող է օգտագործել ՝ վերահսկելու ձեր շրջապատող աշխարհը (https://www.orangepi.org/orangepizero/): Այսպիսով, դա հենց մեզ համար է, եկեք շարունակենք դա:)
- Մետաղական/պլաստմասե/փայտե տուփ (ես օգտագործել եմ հին Yamaha արտաքին cd-rw տուփ)
- Orange PI Zero կամ ավելի լավ (GPIO pinout- ը կարող է փոխվել, եթե այլ մոդել եք օգտագործում)
- 2x20 RGB LCD էկրան
- Sանկացած SFF 3.5/ LFF 2.55 USB սկավառակ
- Sata -> USB ադապտեր: Հիշեք, որ թեև OrangePI- ն չի սահմանում սկավառակի առավելագույն հզորության վերին սահման, այնուամենայնիվ, USB-SATA կամուրջներից շատերը դա անում են (առավելագույնը 2 ՏԲ): Նարնջագույն PI Zero- ն, որն օգտագործում եմ, ունի միայն մեկ USB 2.0 նավահանգիստ ՝ արդյունավետ փոխանցման առավելագույն արագությամբ ՝ 28 ՄԲ/վ առավելագույն: Ես ընտրել եմ USB3.0 (պատրաստված է ապագա արդիականացման համար) -> SATA կամուրջ (ապրանքանիշը չի նշվի) և այն գերազանցում է սահմանը, ուստի ավելի լավ է ընտրել կամուրջ, որն ապացուցված է, որ աջակցում է ավելի մեծ կրիչներ, ինչպիսիք են JMicron JMS567 չիպերի վրա հիմնված կամուրջները:. Նախքան որևէ մեկը գնելը կատարեք ձեր սեփական հետազոտությունը: Ես կարող եմ ապրել արագության և կոշտ սկավառակի սահմանափակումով ՝ այս նախագծում օգտագործելով 2TB sata սկավառակ (եթե տեղադրեք ավելի մեծ կրիչներ, այն կճանաչվի, բայց OS- ն կտեսնի միայն դրա առաջին 2TB- ն, այնպես որ մնացած հզորությունը կլինի կորած):
- 12V 2.5 Ա կամ ավելի ուժեղացուցիչի ադապտեր: Հաշվարկեք մոտ 500 մԱ նորմալ օգտագործումը OPI Zero- ի համար և 1.5A գագաթը ստանդարտ LFF SATA կրիչի համար: Չափից դուրս չափելը երբեք չի ցավում: Իմ տեղադրման մեջ, Yamaha psu- ն (ինչը կարող էր ավելի քան բավարար հոսանք ապահովել երկու 12+5V ռելսերի վրա), ցավոք, պայթեցվեց. գոնե տուփը մի երկու գրամ ավելի թեթևացրեց:
- Buck փոխարկիչ DC-DC 12V-> 5V: Ես օգտագործել եմ նույն կարգավորելի մինի բաքը, ինչպես IronForge- ի դեպքում, հիանալի է աշխատում:
Ըստ ցանկության
Եթե պատրաստ եք ծախսել + 10 $, ապա կարող եք ձեռք բերել Orange Pi Plus (https://www.armbian.com/orange-pi-one-plus/), որը նման ձևի գործոն է և ստանում է Gbe և SATA3: Դրա համար կարող է օգտագործվել Libra PI էլեկտրահաղորդման գրադարանը ՝ https://github.com/OrangePiLibra/WiringPi, բայց քանի որ GPIO- ի ճեղքվածքը տարբերվում է, այն դուրս է այս գրառման շրջանակներից:
Կարող եք նաև կատարել այս կառուցումը նոր Orange PI Plus2- ով, որն ունի SATA միակցիչ, և դուք կարող եք բաց թողնել sata-> USB փոխարկիչների օգտագործումը ՝ բոլորը ՝ իրենց սահմանափակումների հետ միասին: Եթե պլանավորում եք օգտագործել FreeBSD կամ այլ BSD- ներ, Orange PI շարքը կարող է լավագույն ընտրությունը չլինել, քանի որ դրանց ապարատային աջակցությունը սահմանափակ է (օրինակ ՝ բեռնման համար անհրաժեշտ է օգտագործել USB կրիչ): BSD- ների համար դա ազնվամորի PI- ի օգտագործման լավագույն խորհուրդն է: LCD- ի և C ծածկագիրը, և վահանակի բոլոր սցենարները շարժական են ցանկացած այլ UNIX համակարգերի համար:
Քայլ 2: Սարքավորման ձևավորում



Yamaha- ի տուփը բավական էր այս ամենը պահելու համար, այն բավարար տարածք չէր ունենա Orange PI համակարգչի կամ սովորական Raspi ձևի գործոնի տախտակի համար:
Ethernet- ը դուրս բերվեց ընդլայնիչով դեպի տուփի հետևի մաս: Հիշեք, որ Orange PI զրոյը միայն 100mbit/վ Ethernet ինտերֆեյս ունի, եթե ցանկանում եք ավելի արագ, ապա ձեզ հարկավոր է օգտագործել մեկ այլ տախտակ, օրինակ Asus Tinkerboard/RPI3B+/Orange PI այլ մոդելներ:
Սխալ PIN Out- ը միակ սխալն է, որը կարող եք թույլ տալ այս նախագծում, ուստի արժե կիրառել բութ մատնաչափ սկզբունքների մի կանոն.
1, Միշտ փորձեք օգտագործել նույն գույնի մալուխը END- ից END: Ես ինքս նույն «սխալն» եմ գործում որոշ նախագծերում, որտեղ դա չեմ անում, պարզապես այն պատճառով, որ ձեռքի տակ բավականաչափ երկար տղամարդ-արական/արական-իգական/իգական-մալուխներ չունեմ, և 2-ը միասին կարկատում եմ, որպեսզի շարունակեմ շրջանը. Եթե դուք պատշաճ կերպով չեք փաստաթղթավորում ձեր աշխատանքը, դա տարիներ անց կարող է հանգեցնել գլխացավի, որտեղ դուք պետք է անեք վերանորոգում, արդիականացում:
2, Մի փոքր տաք սոսինձ կիրառեք միակցիչների վրա: Այս arduino-starter kit ոճի mm/mf/ff մալուխների օգտագործման դեպքում, որոնք գծի որակից բարձր չեն, բավականին տարածված է (հատկապես, եթե սարքը տեղափոխում/տեղափոխում եք) միակցիչները դուրս են սահում: Եթե գիտեք, որ դա երկարաժամկետ օգտագործման սարք կլինի (հնարավոր է ՝ օգտագործել մինչև այն չփչանա ?!), ապա ավելի լավ է մի փոքր տաք սոսինձ քսել ինչպես OrangePI- ի, այնպես էլ LCD միակցիչների վրա `դրանք միասին պահելու համար: Անհրաժեշտության դեպքում այն հետագայում կարող է հեշտությամբ հալվել/քերծվել:
3, OrangePI զրոյական էլեկտրագծեր Վատ նորությունն այն է, որ Orange PI pinout- ը ՉԻ նույնը, ինչ Raspberry PI 0/1/2/3- ը, և նույնիսկ տարբերություն կա Orange PI- ի այլ մոդելների միջև: Գնալու լավագույն միջոցը էլեկտրալարերի գրադարանը ձեռք բերելն է (Orange PI Zero տարբերակ): Գուցե պատկերը մի փոքր շփոթեցնող լինի, բայց դրանք լավագույնն էին, որ կարողացա գտնել: Մեկը մյուսի 180 աստիճանի հայելին է: Թեև CLI ոչ գրաֆիկական պատկերը կարող է ավելի դժվար ընկալվել, բայց այն ամենաուղիղն է:
Դուք միշտ կարող եք տարբերել վարդակների 2 ծայրերը ՝ մի ծայրը համարելով ԴՐԱԿԱՆ վերջ (+3.3/+5V), իսկ մյուսը ՝ ԲԱEGԱՍԱԿԱՆ վերջ (մեկ GND) -> սա ETHERNET նավահանգստին նայող միակցիչի վերջն է.
Wiring PI Zero սեղանից ձեզ կպահանջվի միայն մեկ սյունակ, wPI- ն կմոռանա մյուսների մասին, կարծես նրանք այնտեղ չէին լինի:
Այսպիսով, օրինակ ՝ LCD_E 15 (այսինքն ՝ wPI 15!) Եվ LCD_RS 16 (այսինքն ՝ wPI 16!) Միացնելու համար կապերը հաշվեք միակցիչի ԴՐԱԿԱՆ ծայրից (հեշտ է դա անել գրիչով կամ փոքր պտուտակահանով): Դա ֆիզիկապես կնվազի 4 կապում և 5 կապում:
4, Խմբավորվել: Եթե հնարավորություն կա օգտագործված կապումներն իրար կողք դնել (խմբավորել դրանք) միշտ դա է ընտրում, դա ստիպում է նրանց պահել միմյանց առանց շոգի սոսնձի, ինչպես նաև այլ նախագծերում, երբ ունեք 2x 4x 6x molex միակցիչներ, կարող եք պարզապես օգտվեք միմյանց կողքին գտնվող քորոցներից: Այստեղ ամենալավը, որ կարող եք անել, 2-3 հոգուց բաղկացած խումբն է (իդեալական, երբ օգտագործում եք հին ԱՀ-ից փրկված ցատկող մալուխներ):
OrangePI LCD էկրանի միացման համար օգտագործվող կապում.
// ՕԳՏԱԳՈՐԵԼ WIRINGPI PIN ԹՎԵՐԸ
#սահմանել LCD_E 15 // Միացնել Pin #սահմանել LCD_RS 16 // գրանցել ընտրված քորոցը #սահմանել LCD_D4 5 // Տվյալների կապ 4 #սահմանել LCD_D5 6 // Տվյալների կապ 5 #սահմանել LCD_D6 10 // Տվյալների կապ 6 #սահմանել LCD_D7 11 // Տվյալների կապ 7
RGB հետևի լուսավորության կառավարման համար օգտագործվող կապում
$ G գրել 1 0
$ G գրել 4 1 $ G գրել 7 1
Orange PI զրոյական wPI կապում 1, 4, 7. Միակ կախարդանքը, որը կարող է անել այս LCD- ը, ստանդարտ կապույտ կամ կանաչ լուսավորության LCD ստանդարտ LCD- ի համեմատ, որտեղ դուք ունեք մեկ կաթոդ, որը պետք է իջեցվի GND- ի վրա, որն ունի 3 -ը 3 -ի համար: գույները: Կարմիր, կանաչ և կապույտ: Փոխելով դրանցից մեկի համադրությունը, դուք կարող եք խառնել տարբեր գույներ այս հիմնական գույներից, բայց միայն բարձր ծայրերը չունեն երանգներ, քանի որ չեք կարող վերահսկել գույնի պայծառությունը (այն միացված է կամ անջատված է):
Լրացուցիչ գույնի խառնուրդ. Կարմիրին կանաչին ավելացնելը տալիս է դեղին; կապույտին կարմիր ավելացնելը տալիս է մագենտա; կանաչին կապույտին ավելացնելը տալիս է ցիան; բոլոր երեք հիմնական գույները միասին ավելացնելը տալիս է սպիտակը:
Քայլ 3: Օպերացիոն համակարգ

OrangeBOX- ը վերբեռնվում է և Armbian linux (հիմնված Debian Stretch- ի վրա) 4.14.18-sunxi միջուկին `անվտանգ պաշտպանված միջավայրով, միանում է VPN- ին և սպասում սերվերից հեռակա պահուստային հրամանների:
Դիզայնի սկզբունքները.
-Ամբողջ luks- ի վրա հիմնված սկավառակի կոդավորումը (սարքն ինքնին չի պարունակում պահեստային սկավառակը բացելու բանալին: Այն ժամանակավորապես պատճենվելու է հեռակա սերվերից ram /dev /shm, սկավառակը բացվելու և բանալին ջնջվելու է: Պահուստավորումն ավարտվելուց հետո) սկավառակը փակվում է, և OrangeBox- ը ինքնաբերաբար անջատվում է 1 րոպեում):
-Բոլոր հրամանները և բանալիներն ուղարկվում են հեռակա սերվերից (սարքն ինքնին պարունակում է միայն vpn սերտիֆիկատ), այն հեռակա սերվերին որևէ մուտք չունի, նույնիսկ այս սարքից ssh- ը պաշտպանված է
-Տեղական ֆայլային համակարգերը գաղտնագրված են, որպեսզի կարողանան բեռնվել, բայց ոչ մի օգտակար բան չեն պարունակում, և քանի որ VPN- ի միացումը մյուս կողմից խիստ սահմանափակ է, նույնիսկ սարքի ամբողջական կորստով, հարձակվողը ոչինչ չի կարող անել
Ներբեռնեք Armbian Stretch- ը https://www.armbian.com/orange-pi-zero/ կայքից
Գործարկեք համակարգը.
apt-get update && apt-get upgrade
apt-get տեղադրել sysvinit-core sysvinit-utils
Խմբագրեք /etc /inittab- ը, բոլոր վահանակները կարող են անջատվել, քանի որ տուփը կօգտագործվի որպես անգլուխ: Մեկնաբանեք հետևյալ բաժինը.
#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
Վերագործարկեք ձեր տուփը և հեռացրեք systemd ՝ իրական բաց կոդով bloatware անվճար համակարգ ունենալու համար:
apt-get remove --purge-auto-remove systemd
Տեղադրեք որոշ փաթեթներ
apt-get տեղադրել cryptsetup vim htop rsync էկրան gcc make git
Տեղադրեք wiringpi գրադարանը
cd /usr /src
git clone https://github.com/xpertsavenue/WiringOP-Zero.git cd WiringOP-Zero chmod +x./build./build
Ստեղծեք նարնջագույն օգտվող LCD էկրանին
groupadd -g 1000 նարնջագույն
useradd -m -d /home /orange -s /bin /bash -u 1000 -գ նարնջագույն նարնջագույն
Պահապանը, որը չի հսկում ձեզ
apt-get install watchdog
Նայելով/etc/default/watchdog # Սկսեք դիտորդին բեռնման ժամանակ: 0 կամ 1 run_watchdog = 1 # Սկսե՞լ wd_keepalive- ը պահակը դադարեցնելուց հետո: 0 կամ 1 run_wd_keepalive = 1 # Բեռնել մոդուլը ՝ սկսած watchdog watchdog_module = "none" # Նշեք պահակակետի լրացուցիչ ընտրանքներ այստեղ (տես ձեռնարկը):
Նայելով /etc/watchdog.conf
# Առնվազն դրանք միացրեք
max-load-1 = 24 max-load-5 = 18 max-load-15 = 12
/etc/init.d/watchdog սկիզբը
Պետք է լինի առնվազն 1 միջուկի թել և 1 գործընթաց.
արմատ 42 0.0 0.0 0 0? I <10:50 0:00 [watchdogd] արմատ 14613 0.0 0.2 1432 1080? SLs 13:31 0:00/usr/sbin/watchdog
Փորձարկում.
Համոզվեք, որ դուք դադարեցնում եք ամեն ինչ և կատարում եք համաժամացման և համաժամացման և համաժամացում `մնացած տվյալները սկավառակի վրա գրելու համար: Այնուհետև որպես հիմնական խնդիր.
արձագանք 1> /dev /watchdog
Մի քանի վայրկյան հետո մեքենան պետք է վերագործարկվի:
Ինչպես նշում է ձեռնարկը.
o Արդյո՞ք գործընթացի աղյուսակը լիքն է:
o Արդյո՞ք կա բավարար ազատ հիշողություն: o Արդյո՞ք կա բավարար հատկացվող հիշողություն: o Որոշ ֆայլեր հասանելի՞ են: o Որոշ ֆայլեր փոխվե՞լ են տվյալ միջակայքում: o Արդյո՞ք միջին աշխատանքային ծանրաբեռնվածությունը չափազանց բարձր է: o Արդյո՞ք ֆայլերի աղյուսակի արտահոսք է տեղի ունեցել: o Գործընթացը դեռ շարունակվու՞մ է: Գործընթացը նշվում է pid ֆայլով: o Արդյո՞ք որոշ IP հասցեներ պատասխանում են պինգին: o Արդյո՞ք ցանցային միջերեսները տրաֆիկ են ստանում: o Արդյո՞ք ջերմաստիճանը չափազանց բարձր է: (Peratերմաստիճանի տվյալները միշտ չէ, որ մատչելի են) o Կատարեք մեկ կամ մի քանի փորձարկման/վերանորոգման հրամաններ, որոնք գտնվում են /etc/watchdog.d- ում: Այս հրամանները կոչվում են փաստարկի փորձարկում կամ վերանորոգում: Եթե այս ստուգումներից որևէ մեկը ձախողվի, հսկիչը կհանգեցնի անջատման: Եթե այս թեստերից որևէ մեկը, բացառությամբ օգտագործողի կողմից սահմանված երկակի, տևի ավելի քան մեկ րոպե, մեքենան նույնպես կվերագործարկվի:
Այս հսկիչը կարող էր նորմալ աշխատել սովորական x86 ճարտարապետությունների վրա, սակայն ARM- ի վրա հիմնված տախտակների վրա, ինչպիսիք են Raspberry PIs, Orange PIs, այն անհամար անգամ ձախողեց ինձ: Համակարգը կարող է անցնել կախման վիճակների, որտեղ նույնիսկ պահակն է կախված: Եկեք պարզապես կազմաձևենք այն ամեն դեպքում, գուցե տարիների ընթացքում այն բարելավվի apt-get բարելավմամբ:(
Քայլ 4: Softwareրագրաշարի ձևավորում

Պահուստավորման գործընթացը ինքնին rsync- ի վրա հիմնված է (երբևէ հորինված լավագույն պահուստային գործիքը) տվյալները մղվում են SERVER-> OrangeBOX- ից:
Rsync- ից տվյալների դուրսբերումը նախագծի միակ դժվար մասն էր ՝ ունենալ LCD էկրանին տպված կրկնօրինակի վերաբերյալ առաջընթացի բար:
Պահուստավորման առաջընթացը հաշվարկելու 3 հնարավոր եղանակ կար.
1, օգտագործելով բանաձևեր, ինչպիսիք են https://wintelguy.com/transfertimecalc.pl ՝ փոխանցման տևողությունը մոտավորապես որոշելու համար
Փոխանցման ժամանակը (օր: ժ: մ: վ): 0: 02: 44: 00
Համեմատության համար. 123 ԳԲ ֆայլ տարբեր ցանցային հղումների միջոցով փոխանցելու մոտավոր ժամանակը (d: h: m: s): T1/DS1 տող (1.544 Մբիթ/վրկ) - 7: 09: 01: 46 Ethernet (10 Մբիթ/վրկ) - 1:03: 20:00 Արագ Ethernet (100 Մբիթ / վրկ) - 0: 02: 44: 00 Գիգաբիթ Ethernet (1000 Մբիթ / վրկ) - 0: 00: 16: 24 10 Գիգաբիթ Ethernet (10 Գբիթ / վրկ) - 0: 00: 01: 38
Եթե rsync- ն ավարտի, այն ազդանշան է տալիս սցենարին `դադարեցնելու հաշվարկը: Այս մեթոդը պարզապես մոտավոր և ոչ հուսալի է, ինչպես նաև կապի արագությունը ամրագրված չէ, այն կարող է դանդաղեցնել, նորից արագացնել: Սա ընդամենը տեսական հաշվարկ է:
2, Չափերի ստուգումներ կատարելով գրացուցակում `որոշելու, թե որքան տվյալներ ենք համաժամացրել արդեն: Հարյուրավոր ԳԲ փոքր ֆայլերի դեպքում կարող է շատ դանդաղ լինել (չնայած Linux- ում du -s- ը որոշակի պահոց է պահում, եթե այն նորից կրկնում եք)
Հյուրընկալող A -> Պահուստավորված սերվերի տվյալները Տվյալների դիրքը ՝ 235 ԳԲ
Հաղորդավար B -> Orange տուփի հաճախորդի տվյալներ, որոնք մենք ունենք այս պահին Տվյալների դիրքը ՝ 112 ԳԲ
Դելտան 123 ԳԲ է:
3, Եթե ֆայլային համակարգը նվիրված է, ինչպես մեր դեպքում/dev/mapper/backup, մենք կարող ենք օգտվել ֆայլային համակարգի օգտագործման ընդհանուր ցուցանիշից `որոշելու, թե ինչպես է մեր պահուստավորումը առաջ ընթանում, և դա իսկապես շատ արագ է: Այս դեպքում մենք նույնիսկ կարիք չունենք rsync stdout- ը որևէ տեղ ուղղել, պարզապես գործարկել չոր rsync, սպասել մինչև այն ավարտվի, հաշվարկել դելտան բայթերում և ազատ տարածության հետ միասին ստուգել այն, ինչ ունենք պահեստային սկավառակի և voila- ի վրա: այժմ կազմեք գեղեցիկ գծապատկեր: Սա իմ ընտրած մեթոդն էր, և ահա դրա սցենարը.
#!/bin/bash
# Պահուստային առաջընթացի հաշվիչ OrangeBOX- ի համար NLD # Տարբերակ `0.2 (2018/03/05) # # Գործարկեք այն որպես անպաշտպան օգտվող cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Այս սցենարը պատասխանատու է միայն LCD- ի վրա տվյալների ցուցադրման համար, այն # հիմնական ծրագրի հետ անուղղակիորեն հաղորդակցվում է դիրքի և կողպման ֆայլերի միջոցով: BACKUP_DRIVE = "/dev/mapper/backup" VFILE = "$ HOME/start.pos" # սկավառակի օգտագործում կրկնօրինակի սկզբում TFILE = "$ HOME/trans.size" # ընդհանուր նախահաշվարկված փոխանցման չափը BFILE = "$ HOME/ backup.lck " # որոշում է սկսված վիճակը FFILE =" $ HOME/backup.fin " # որոշում է ավարտված վիճակը LFILE1 =" $ HOME/lcd1.bar " # LCD առաջընթացի ցուցանիշի տվյալներ LFILE2 =" $ HOME/lcd2.bar " # LCD առաջընթաց ցուցանիշի տվյալներ SHUTDOWN = "1" # Եթե 1 -ը այն կսկսի մեկ այլ սցենար, որն անջատում է տուփը պահուստավորման վերջում BACKUP_CURRENT = "0" # Պետք է նախաստորագրվի, բայց կհաշվարկվի DRIVE_SIZE = "" # Drive- ի չափը բայթերով (երկրորդական ստուգեք) LCD = "sudo /bin /lcd" գործառույթը is_mount () {grep -q "$ 1" /proc /mounts status = $? } գործառույթ կարմիր () {sudo /bin /lcdcolor red} գործառույթ կանաչ () {sudo /bin /lcdcolor կանաչ} գործառույթ կապույտ () {sudo /bin /lcdcolor կապույտ} # Մաքուր վիճակ (տեղադրված է բեռնախցիկի կողմից bootup_display.sh): Պահուստավորում չի ընթանում, մի խառնեք # կարգավիճակի LCD- ը: Displayուցադրել առաջընթացը միայն այն դեպքում, երբ առկա է պահուստային կրկնօրինակում => Ոչ սկիզբ ֆայլ և ԵՎ ոչ fin ֆայլ = դուրս գալ, եթե [! -f $ BFILE] && [! -f $ FFILE]; ապա դուրս եկեք 1 fi # Եթե պահուստավորումը ավարտվեց, այս սցենարը կցուցադրի այն և կհեռացնի կողպեքները #, որպեսզի չկարողանաք նորից գործարկել մինչև հաջորդ մեկնարկը: եթե [-f $ FFILE]; ապա կանաչ $ LCD «Պահուստավորում» «** Ավարտված է **» արձագանք «Պահուստավորումն ավարտված է» rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Պահուստավորումը ավարտվել է, եթե [$ SHUTDOWN == "1"]; այնուհետև արձագանքում է «Անջատման սցենարի կատարումը …» /home/orange/shutdown.sh & fi ելք 0 fi # Այս պահից սցենարը գործում է ՄԻԱՅՆ, եթե առկա է ՇԱՐՈՆԱԿԻ պահուստ #, հետևաբար բոլոր սխալները կտպագրվեն LCD- ում և կհանգեցնեն սցենարի: # ընդհատելու համար այն չի ջնջի backup.lck ֆայլը, ուստի այստեղ # անընդհատ նորից ու նորից կբացահայտի պայմանները: is_mount $ BACKUP_DRIVE, եթե [$ status -ne 0]; ապա կարմիր $ LCD «ERR: Պահուստային սկավառակը» "տեղադրված չէ:" արձագանք «Պահուստային կրիչը տեղադրված չէ» ելք 1 fi, եթե [! -s $ TFILE]; ապա կարմիր $ LCD LCD "ERR: transfile" "դատարկ է" echo "Տրանսպորտի չափի հաշվարկման ֆայլը դատարկ է:" ելք 1 fi BACKUP_OVERALL = $ (գլուխ -1 $ TFILE | tr -d '\ n'), եթե [-z $ BACKUP_OVERALL]; ապա կարմիր $ LCD «ERR. Չափի ընթերցում» սերվերից անվավեր "echo" Պահուստավորման ընդհանուր չափի ընթերցումն անվավեր է 1 "ելք 1 fi եթե!
Չնայած ծածկագիրը պարզ է, այստեղ կա որոշ նկարագրություն, թե ինչ է դա անում.
1, Եթե BFILE կամ FFILE գոյություն չունեն (ինչը հստակ գործարկումից հետո վիճակ է), որը ցույց է տալիս, որ պահեստային գործընթաց չկա, այնպես որ ոչինչ մի արեք, պարզապես դուրս եկեք: Այս կերպ դուք կարող եք գրաֆիկացնել ցանկացած գեղեցիկ տեղեկատվություն, որը ցանկանում եք գործարկման վերաբերյալ, ինչպիսին է հյուրընկալողի անունը, ip- ն, uptime- ը և այլն, և այն չի խառնվի:
2, Եկեք անցնենք is_mount $ BACKUP_DRIVE բաժինը: Պարզապես հիշեցում, այստեղ հասնելու միակ ճանապարհն այն է, որ կրկնօրինակը սկսվել է, այնպես որ BFILE- ն գոյություն ունի: Այժմ ծածկագիրը պարզապես սխալների տարբեր ստուգումներ է կատարում, արդյոք պահեստային սկավառակը տեղադրվա՞ծ է: արդյոք այն, ինչ մենք պատրաստվում ենք կրկնօրինակել, գերազանցում է սկավառակը կամ այլ սխալներ: Հիշեք, որ սա միայն ISԱՆԿԱԱ program ծրագիր է, նույնիսկ եթե չափը գերազանցի կրկնօրինակը, այն ոչինչ չի վիժեցնի:
3, OK բոլոր սխալի ստուգումները մաքրեցին ժամանակը `տոկոսային գրաֆիկը հաշվարկելու համար: Սկզբում սցենարը վերցնում է պահեստային ֆայլային համակարգի բայթերում օգտագործվող տարածքի «ակնթարթային պատկերը» և պահում այն VFILE- ում: Ո՞րն է դրա նպատակը. Bash սցենարը քաղաքացիություն չունեցող է, այն կորցնում է տվյալները կատարումների միջև, այնպես որ, եթե ցանկանում եք «հիշել» նախորդ կատարման որոշ տվյալներ, ապա դրանք պետք է ինչ -որ տեղ պահեք: Մեր դեպքում սա պարզապես պարզ տեքստային ֆայլ է: Ավելի պարզ դարձնելու համար ասենք, որ մեր START_POS- ը 1 ԳԲ է (տվյալները, որոնք մենք ունենք), այն, ինչ մենք ուզում ենք պահուստավորել ՝ +2 ԳԲ, իսկ սկավառակի ընդհանուր հզորությունը ՝ 10 ԳԲ:
4, Հաջորդ անգամ, երբ սցենարը կաշխատի VFILE- ով, և այն հետ կընթերցվի (այնպես որ մենք գիտենք, թե որն էր սկզբնական դիրքը, եթե սկավառակը դատարկ չէր) `հաշվարկելու BACKUP_CURRENT- ը, որն ըստ էության հենց այս պահին օգտագործված տարածքի դելտա է: պահեստային սկավառակի վրա ՝ չհաշված մեկնարկային դիրքը, այն, ինչ մենք պահպանել ենք VFILE- ում վերջին փուլում (կրկին սա այն տվյալներն են, որոնք մենք ունեինք սկավառակի վրա, երբ պահուստավորումը սկսվել էր): Ներքինը սցենարը աշխատում է բայթերով, սակայն կես ժամից այն պարզեցնելու համար մենք պահուստավորեցինք 500 ՄԲ տվյալներ, ապա բանաձևը կլինի BACKUP_CURRENT = 1.5 ԳԲ - 1 ԳԲ (սկզբնական վիճակ) => ինչը մեզ վերադարձնում է ճիշտ 500 ՄԲ իրական տվյալները, այսինքն. այն, ինչ մենք պահպանում էինք մինչ այժմ: Դուք կարող եք տեսնել, որ առանց հետևելու, թե սկզբնական տվյալներն ինչ են եղել պահուստավորման սկզբում, այս չափի հաշվարկը ձախողվելու է, քանի որ այն կտեսնի, որ այս պահին օգտագործվող տարածքը 1,5 ԳԲ է ՝ առանց իմանալու, որ 1 գիգ տվյալների ամբողջ ընթացքում սկավառակի վրա է եղել: գալիս է նախորդ պահուստից, այնպես որ ենթադրի, որ սերվերը մեզ ուղարկել է 1.5 ԳԲ տվյալ ՝ 500 ՄԲ -ի փոխարեն:
5, BACKUP_OVERALL- ը կարդացվելու է, այս տվյալները հաշվարկվել են սերվերի կողմից, երբ այն կատարել է սկզբնական չոր rsync (այնպես որ սա արտաքին տվյալների աղբյուր է, որը պարունակում է բայթերի քանակ, որոնք կպահպանվեն Server-> OrangeBOX- ից): Այս արժեքը այս պահին կստուգվի սկավառակի ընդհանուր ԱՆՎԱՐ տարածության համեմատ, և եթե այն գերազանցի այն, ապա LCD- ի վրա կցուցադրվի սխալի հաղորդագրություն, և սցենարը կդադարեցնի կատարումը: Կրկին հիշեք, որ այս սցենարը միայն ցուցադրում է, այն չի միջամտում պահուստավորման գործընթացին: Եթե դուք մաքրում եք ֆայլերը սկավառակի վրա կամ ֆայլերի քանակը փոխվում է հեռակա կարգով, ուստի BACKUP_OVERALL- ը փոխվում է մեկ կետում, այն կշարունակվի:
6, Վերջապես մենք ավարտեցինք երկրորդ մակարդակի ստուգումները, ժամանակն է ինչ -որ բան ցուցադրել: Սցենարը ցուցադրում է տվյալները վահանակի և LCD- ի վրա ՝ օգտագործելով պարզ C ծրագիր: Ֆոնը փոխված է ԿԱԼՈ ՝ նշելով, որ պահուստավորումը վերջապես սկսվեց, և առաջընթացը հաշվարկվեց հետևյալ բանաձևով ՝ PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)): Սա հիմնական տոկոսային հաշվարկն է, որը մենք վերցնում ենք ընթացիկ գումարը, մեր օրինակում `0.5 ԳԲ*100/2 ԳԲ = 25%:
7, Թվերը նաև բայթից փոխակերպվում են Մեգա/Գիգա բայթերի և էկրանն ինքնաբերաբար ցուցադրվում է ՄԲ -ով, եթե այն 1 ԳԲ -ից ցածր է:
8, Մեր դեպքում սա քարտեզագրելու համար մնում է 20 սյունակով LCD- ի 25% -ը: Մեր օրինակում դա կլինի 25 * 20 /100 = 5: Ներկայումս իրականացվում է LCD ծրագրով թարմացումը, որն ամեն անգամ ծրագրին զանգահարելիս ամբողջ էկրանը կվերագծի: Այսպիսով, այս դեպքում էկրանին 5 հեշմարկ նկարելու համար 5 անգամ կընթանա loop- ը, որը կհայտնվի որպես տգեղ թրթռոց յուրաքանչյուր փուլում, դրա փոխարեն ես դուրս եմ գրում հաշվարկված առաջընթացի գծի տվյալները LFILE1 և 2, որոնք այս դեպքում հետո 5 փուլերը կպարունակեն #####, և սա կընթերցվի և կցուցադրվի LCD- ում: Դուք կարող եք LFILE1- ը և 2 -ը տեղադրել նաև ramdisk- ի վրա `sdcard- ը լրացուցիչ գրելու գործողություններից փրկելու համար, այն ինձ համար որևէ խնդիր չի առաջացրել, սցենարը գործում է cron- ից ամեն րոպե մեկ անգամ:
9, Երբ կրկնօրինակումն ավարտում է սերվերի մյուս սցենարը, որն աշխատում է rsync- ով, դիպչում է FFILE- ին (Ավարտել ֆայլը): Հաջորդ հանգույցում backup_progress.sh- ը կցուցադրի, որ կրկնօրինակը ավարտված է և ըստ ցանկության կանչում է այլ սցենար `OrangeBOX- ը փակելու համար: Այս պահին այն ջնջում է իր կողպեքի ֆայլերը ՝ անհնարին դարձնելով հետագա կատարումները, նույնիսկ եթե հաջորդ սցենարը գործարկելիս անջատումը միացված չլինի, այն անմիջապես կդադարեցվի, քանի որ BFILE- ն այնտեղ չէ, և FFILE- ն այնտեղ չէ: Հետևաբար, այն անվերջ կցուցադրի պահուստավորված լրացված հաղորդագրությունը, եթե կրկնօրինակը նորից չվերագործարկվի:
Հեռակա պահուստային սցենար (orange-remote.sh):
Դուք պետք է ստեղծեք ssh բանալին պահեստային և բանալին luks կոդավորման համար սկավառակի համար: Երբ հեռակա պահուստավորումը ձեռքով գործարկում եք առաջին անգամ, այն կփրկի նարնջագույն տուփերի մատնահետքը տանտերերի ֆայլում (այս պահից այն կարող է ինքնաբերաբար գործարկվել cron- ի միջոցով):
DISK = "/dev/disk/by-id/…"
Ձեր կոշտ սկավառակի նույնացուցիչը պարզելու համար գործարկեք uuid, blkid կամ պարզապես փնտրեք համապատասխան/dev/disk/դիրեկտորիաները:
Գրացուցակը, որը ներառում է բացառել, կարող է կարգավորվել, եթե չեք ցանկանում ամեն ինչ պահուստավորել: Սա բավականին տհաճ գործընթաց է, քանի որ rsync- ի համար, եթե ցանկանում եք բացառել կառուցվածքի խորքում գտնվող մեկ ենթաէլեկտորիա, ապա պետք է անեք.
+ /ա
+/a/b +/a/b/c +/a/b/c/d -/a/b/c/d/e +/dir2
Քանի որ այս սցենարը OrangeBOX- ի վրա կատարում է հրամաններ հեռակա կարգով, այն վերահսկողություն չունի այդ կողմից վերադարձվող փոփոխականների վրա, ուստի ես օգտագործում եմ որոշ խելացի հնարքներ, ինչպիսիք են ՝ հեռավոր սկավառակը բացելու հաղորդագրությունը /tmp/contmsg.txt հասցեով, այնուհետև վերլուծել: այն տեսնելու համար, թե արդյոք այն հաջողված էր, եթե ոչ, ապա այն փոխում է rsync երկուականը չկատարելի, այնպես որ rsync- ը չի փորձի տվյալներ վերբեռնել OrangePIs արմատներին `լրացնելով SD քարտը: Նաև լավ պրակտիկա է անփոխարինելի բիթը սահմանել chattr +i /mnt /կրկնօրինակում ՝ դա անհնարին դարձնելու համար:
Չափի նախահաշվարկը տեղի է ունենում Տեղական սերվերի վրա, հետևաբար այս ֆայլը հաջորդ քայլին պետք է ուղարկվի OrangeBOX:
Հիմնական պահուստավորումը սկսվում է որպես ((i = 0; i <100; i ++)) օղակի համար; անել, քանի որ ցածրորակ DSL/Cable ինտերնետային կապերի դեպքում rsync- ը հաճախ կարող է խզվել, ընդմիջում: Եթե այն հաջողությամբ ավարտվի, ապա օղակը կկոտրվի ՝ առանց ավելի շատ կրկնություններ փորձելու: Սա անթերի է աշխատում լավ օպերացիոն համակարգերի հետ, սակայն եթե ինչ -ինչ պատճառներով հեռակառավարվող տուփը լինի պատուհաններ, և NTUSER. DAT- ում պարբերաբար մուտքը մերժվի, ապա rsync- ը կվերադարձնի սխալի կոդը, և այս հանգույցը 100 անգամ կկատարվի և այնուհետև դեռ ձախողվի:
Քայլ 5: Փակում և անելիքների ցուցակ


Իմ հրահանգը ևս մեկ անգամ ցույց է տալիս, թե ինչպես կարող եք ինքնուրույն ստեղծել ավելի լավ, ավելի հարմարեցված սարք 10 $ համակարգչից, որը հաղթահարում է Buffalo- ն իր սեփականությամբ փակված NAS սարքերով, տարօրինակ ներքին միջնորմով, զբաղված տուփով խափանված Linux- ով ՝ անջատված գործիքներով, կառավարվում իրենց պատուհանների ծրագրակազմով, փակ ծրագրակազմով, վատ փաստաթղթերով և աջակցությամբ և անկախ նրանից, թե որքան գումար կծախսեք, երբեք չեք ստանա առաջընթացի ցուցիչ, որը ցույց կտա ձեր կրկնօրինակը ՝ չհաշված, թե որքան թույն է OrangeBox- ը (ես դրա հետ նույնիսկ նարնջագույն CAT5 մալուխ եմ օգտագործում: D):
Երբ մինի համակարգիչները դառնում են ավելի հզոր, միևնույն <100 $ գինը պահպանելով, մենք կարող ենք դրանք օգտագործել ավելի ու ավելի շատ առաջադրանքների համար: Քանի որ Gbe Ethernet նավահանգիստներն այս օրերին բավականին տարածված են 1-2 տարի անց, այս տախտակների վրա հիշողությունը կտրուկ կաճի, և դրանք կարող են օգտագործվել նաև ZFS- ի վրա հիմնված պահուստային համակարգերի համար:
-C ծրագրի կողմից հացահատիկի առաջընթացի ցուցանիշ (տե՛ս WasserStation- ը իմ մյուս նախագծերից մեկը): Այս պահին ընդամենը # hashmark # նիշ օգտագործվում է բնույթի ռեժիմում lcdPuts- ով (lcd, line1), սա կարող է բարելավվել նույնիսկ այն դեպքում, երբ նիշերի LCD- ները օգտագործում են 1 սյունակ 5 մասի բաժանելու համար, և հիմնական C ծրագիրը կարող է պարզապես վերցնել 25 -ի նման մի ամբողջ թիվ և դուրս հանել առաջընթացի բարը պատշաճ կերպով կամ հետագայում բարելավված `օգտագործելով գրաֆիկական LCD
-Հնարավորություն ունենալ շարժական hdd ՝ նոր և նոր պահուստներ ստեղծելու և դրանք տարբեր վայրեր տեղափոխելու համար (եթե տուփը հայտնաբերում է դատարկ սկավառակ, այն ստանալուց հետո այն պետք է ավտոմատ ձևաչափի կոդավորման բանալին):
-Եթե ցանկանում եք տպել ձեր սեփական պատյանը makerbot- ով, OrangeNAS- ը կարող է ձեզ համար հետաքրքիր լինել.
Խորհուրդ ենք տալիս:
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)

Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
RPIEasy - RPI- ի վրա հիմնված բազմազգ սարք ՝ 6 քայլ

RPIEasy - RPI- ի վրա հիմնված բազմասենսորային սարք. Եթե որևէ մեկը ծրագրում է ինքնուրույն որոշ սենսորներ ստեղծել, ապա հանրաճանաչ ESP8266- ից այն էժան և ցածր սպառման «Raspberry Pi Zero W» - ն է: մոդելը նույնպես զգալի տարբերակ է: RPI Zero W- ն արժե մոտ 10 ԱՄՆ դոլար, և դրա էներգիայի սպառումը
Անվտանգ ավելի լավ. Երկաթուղային կայարաններն ավելի անվտանգ դարձնել `7 քայլ

Անվտանգ ավելի լավ. Երկաթուղային կայարաններն ավելի անվտանգ դարձնել. Այս խնդիրը լուծելու համար մենք ստեղծեցինք Safer Better- ը: Մենք օգտագործում էինք թրթռման տվիչներ, շարժման տվիչներ և
Պելտիերի վրա հիմնված սմարթֆոնի հովացուցիչ սարք. 10 քայլ (նկարներով)

Peltier- ի վրա հիմնված սմարթֆոնի հովացուցիչ: Բարև, այնտեղ: Բարի գալուստ: Վերջին տարիներին սմարթֆոնների տեխնոլոգիան առաջընթաց է ապրել ՝ այդքան էներգիա հավաքելով շատ փոքր ոտնահետքերի մեջ, ինչը հանգեցնում է մեկ խնդրի ՝ ավելորդ ջերմության: Սմարթֆոնի ֆիզիկական սահմանափակումը սահմանափակում է առավելագույն ջերմությունը, որը կարող է
Արեգակնային ճառագայթման սարք (SID). Arduino- ի վրա հիմնված արևային տվիչ `9 քայլ

Արեգակնային ճառագայթման սարք (SID). Arduino- ի վրա հիմնված արևային տվիչ. Արևի ճառագայթման սարքը (SID) չափում է արևի պայծառությունը և հատուկ նախագծված է դասարանում օգտագործվելու համար: Դրանք կառուցված են Arduinos- ի միջոցով, ինչը թույլ է տալիս դրանք ստեղծել բոլորի կողմից ՝ կրտսեր ուսանողներից մինչև մեծահասակներ: Այս ինստ