Агуулгын хүснэгт:

OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж: 5 алхам
OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж: 5 алхам

Видео: OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж: 5 алхам

Видео: OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж: 5 алхам
Видео: The Ubuntu Orange Box 2024, Арваннэгдүгээр
Anonim
OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж
OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж
OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж
OrangeBOX: OrangePI дээр суурилсан найдвартай нөөцлөлтийн төхөөрөмж

OrangeBOX бол дурын серверт зориулагдсан алсын зайн хадгалах нөөц хайрцаг юм.

Таны сервер халдвар авсан, гэмтсэн, устгагдсан байж магадгүй бөгөөд таны бүх өгөгдөл OrangeBOX дээр аюулгүй хэвээр байгаа бөгөөд нөөцлөх төхөөрөмж гэх мэт боломжгүй зүйл бол дургүй байгаа бөгөөд юу ч хийхгүйгээр ахиц дэвшлийн үзүүлэлтийг харахыг хүсэхгүй байна. эцэст нь утаа гарахгүй:)).

OrangeBOX бол техник хангамжийн хакердахаас илүү ихэвчлэн програм хангамжаар хийгдсэн миний анхны төсөл юм. Энэ нь үндсэндээ LCD хавсаргасан тусгайлан бүтээсэн NAS юм.

Алхам 1: Тоног төхөөрөмжийн эд анги

Тоног төхөөрөмжийн эд анги
Тоног төхөөрөмжийн эд анги
Тоног төхөөрөмжийн эд анги
Тоног төхөөрөмжийн эд анги
Тоног төхөөрөмжийн эд анги
Тоног төхөөрөмжийн эд анги

Orange PI zero бол нээлттэй эх сурвалж бүхий нэг самбар бүхий компьютер юм. Энэ нь Android 4.4, Ubuntu, Debian дээр ажиллах боломжтой. Энэ нь AllWinner H2 SoC -ийг ашигладаг бөгөөд 256MB/512MB DDR3 SDRAM (256MB хувилбар нь Стандарт хувилбар юм. Orange Pi Zero нь технологийг ашиглан бүтээхийг хүсч буй хүмүүст зориулагдсан бөгөөд үүнийг зөвхөн хэрэглэж чаддаггүй. Энэ бол таны энгийн, хөгжилтэй, хэрэгтэй хэрэгсэл юм. Та эргэн тойрныхоо ертөнцийг хяналтандаа авахын тулд үүнийг ашиглаж болно (https://www.orangepi.org/orangepizero/). Тиймээс үүнийг үргэлжлүүлэх нь бидэнд зориулагдсан болно:)

  • Металл/хуванцар/модон хайрцаг (би хуучин Yamaha гадаад cd-rw хайрцаг ашигласан)
  • Улбар шар өнгийн PI тэг буюу түүнээс дээш (хэрэв та өөр загвар ашиглавал GPIO -ийн холболт өөрчлөгдөж магадгүй)
  • 2x20 RGB LCD дэлгэц
  • Аливаа SFF 3.5/ LFF 2.55 USB хөтөч
  • Sata -> USB адаптер. OrangePI нь хөтчийн дээд багтаамжид дээд хязгаар тавьдаггүй боловч USB-SATA-аас олон гүүр (хамгийн ихдээ 2TB) ашигладаг гэдгийг санаарай. Миний ашигладаг улбар шар өнгийн PI Zero нь зөвхөн нэг USB 2.0 порттой бөгөөд хамгийн их дамжуулах хурд нь 28 MB/s байна. Би USB3.0 (ирээдүйн шинэчлэлтэд бэлтгэгдсэн) -> SATA гүүрийг (брэндийг дурдахгүй) сонгосон бөгөөд энэ нь хязгаарыг тогтоосон тул JMicron JMS567 чип дээр суурилсан гүүр гэх мэт илүү том хөтчийг дэмжиж байгаа нь батлагдсан гүүрийг сонгох нь дээр.. Худалдан авахаасаа өмнө өөрөө судалгаа хий. Би энэ төсөлд 2TB sata драйв ашиглан хурд, хатуу дискний хязгаарлалттай амьдарч чадна (хэрэв та илүү том диск оруулбал үүнийг таних болно, гэхдээ OS нь зөвхөн эхний 2TB -ийг харах болно, тиймээс үлдсэн багтаамж нь байх болно. алдсан).
  • 12V 2.5 А ба түүнээс дээш хүчдэлийн адаптер. OPI Zero -ийн 500mA хэвийн хэрэглээг тооцоолох ба стандарт LFF SATA драйверын 1.5A оргил үе. Хэт их хэмжээ нь хэзээ ч өвддөггүй. Миний тохиргоонд Yamaha psu (12+5V -ийн аль алинд нь хангалттай гүйдэл өгөх боломжтой байсан) харамсалтай нь дэлбэрсэн: (GND руу шилжих гол шилжүүлэгчийг нэг секундын турш ангилсны улмаас би ердийн адаптер дээр нааж өгөх шаардлагатай болсон. наад зах нь хайрцгийг хэдхэн граммаар хөнгөн болгосон.
  • Бак хөрвүүлэгч 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 pinout нь өөр тул энэ бичлэгийн хамрах хүрээнээс гадуур байна.

Та үүнийг бас SATA холбогчтой шинэ Orange PI Plus2 ашиглан бүтээх боломжтой бөгөөд sata-> usb хөрвүүлэгчийг хязгаарлалтын хамт ашиглахаа больж болно. Хэрэв та FreeBSD эсвэл бусад BSD ашиглахаар төлөвлөж байгаа бол тэдний техник хангамжийн дэмжлэг хязгаарлагдмал тул Orange PI цуврал нь хамгийн сайн сонголт биш байж магадгүй (жишээлбэл та ачаалахдаа USB зөөгч ашиглах хэрэгтэй). BSD -ийн хувьд энэ нь Raspberry PI ашиглах хамгийн сайн зөвлөгөө юм. LCD -ийн C код болон бүх бүрхүүлийн скриптүүд хоёулаа бусад UNIX системд зөөврийн байдаг.

Алхам 2: Тоног төхөөрөмжийн дизайн

Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн

Yamaha хайрцаг нь энэ бүхнийг хадгалахад хангалттай байсан бөгөөд улбар шар өнгийн PI компьютер эсвэл ердийн Raspi форма-фактор самбарт хангалттай зай байхгүй болно.

Ethernet -ийг хайрцагны ар талд сунгагчтай хамт гаргаж ирэв. Улбар шар PI тэг нь зөвхөн 100mbit/s Ethernet интерфэйстэй гэдгийг санаарай. Хэрэв та хурдан ажиллахыг хүсч байвал Asus Tinkerboard/RPI3B+/Бусад улбар шар PI загвар гэх мэт өөр самбар ашиглах шаардлагатай болно.

Буруу ПИН код гаргах нь таны энэ төсөлд хийж болох цорын ганц алдаа бөгөөд тиймээс зарим дүрмийг баримтлах нь зүйтэй юм.

1, Үргэлж ижил өнгөтэй кабелийг ENDээс END хүртэл ашиглахыг хичээгээрэй. Би өөрөө хийдэггүй төслүүддээ ижил "алдаа" гаргадаг, учир нь надад хангалттай урт эрэгтэй-эрэгтэй/эрэгтэй-эмэгтэй/эмэгтэй-эмэгтэй кабель байхгүй бөгөөд би үргэлжлүүлэхийн тулд 2-ийг нөхдөг. хэлхээ. Хэрэв та ажлаа зохих ёсоор баримтжуулаагүй бол энэ нь хэдэн жилийн дараа толгой өвдөхөд хүргэж, засвар хийх, шинэчлэх шаардлагатай болдог.

2, холбогчдод халуун цавуу түрхээрэй. Эдгээр arduino-starter иж бүрдэл загварын мм/mf/ff кабелийг чанарын өндөр түвшинд ашиглахгүй байгаа тохиолдолд холбогч тасрах нь элбэг байдаг. Хэрэв та энэ төхөөрөмжийг удаан хугацааны турш ашиглах болно гэдгийг мэдэх юм бол (эвдрэх хүртэл нь ашиглах боломжтой болов уу?), Дараа нь хамт байлгахын тулд OrangePI болон LCD холбогчдод бага зэрэг халуун цавуу түрхсэн нь дээр. Шаардлагатай бол үүнийг дараа нь амархан хайлуулж/зурж болно.

3, OrangePI тэг утас Муу мэдээ бол Orange PI pinout нь Raspberry PI 0/1/2/3 -тэй адил биш бөгөөд бусад Orange PI загваруудын хооронд ялгаа байдаг. Хамгийн сайн арга бол утас номын сан (Orange PI Zero хувилбар) авах явдал юм. Зураг нь жаахан ойлгомжгүй байж магадгүй, гэхдээ эдгээр нь миний олж мэдсэн хамгийн сайн зураг байв. Нэг нь нөгөөгийнхөө 180 градусын толь юм. Хэдийгээр CLI график бус дүрсийг ойлгох нь илүү хэцүү байж болох ч хамгийн зөв чиглэл юм.

Та нэг төгсгөлийг (+3.3/+5V) ЭСРЭГ төгсгөл гэж үзээд нөгөө үзүүрийг СӨӨГИЙН төгсгөл (нэг GND) гэж үзээд залгууруудын 2 үзүүрийг үргэлж ялгаж болно -энэ бол 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 ПИН ДУГААРЫГ АШИГЛАХ

#define LCD_E 15 // Идэвхжүүлэх Pin #define LCD_RS 16 // Бүртгүүлэх сонгосон зүү #define LCD_D4 5 // Мэдээллийн зүү 4 #LCD_D5 6 тодорхойлох // Мэдээллийн зүү 5 #LCD_D6 10 тодорхойлох // Мэдээллийн зүү 6 #LCD_D7 11 тодорхойлох // Өгөгдлийн зүү 7

RGB арын гэрлийг хянахад ашигладаг тээглүүр

$ G бич 10

$ G бичих 4 1 $ G бичих 7 1

Улбар шар өнгийн PI тэг wPI тээглүүр 1, 4, 7. Энэхүү LCD дэлгэц нь цэнхэр эсвэл ногоон арын гэрэлтүүлэгтэй LCD дэлгэцтэй харьцуулахад хийж болох цорын ганц ид шид юм. өнгө. Улаан, ногоон, цэнхэр. Аль нэгийг асаасан хослолыг өөрчилснөөр та эдгээр үндсэн өнгөнүүдээс өөр өнгийг хольж болно, гэхдээ өнгөний тод байдлыг хянах боломжгүй тул (зөвхөн асаалттай эсвэл унтраасан) өндөр сүүдэрт сүүдэрлэх боломжгүй.

Нэмэлт өнгө холих: улаан өнгийг ногоон дээр нэмэх нь шар өнгөтэй болно; цэнхэр дээр улаан өнгийг нэмэхэд ягаан өнгөтэй болно; цэнхэр дээр ногоон нэмэх нь хөх өнгөтэй болно; Бүх гурван үндсэн өнгийг нийлүүлснээр цагаан өнгөтэй болно.

Алхам 3: Үйлдлийн систем

Үйлдлийн систем
Үйлдлийн систем

OrangeBOX нь ачаалагдаж, Armbian linux (Debian Stretch дээр суурилсан) 4.14.18-sunxi цөм нь хамгаалалтын галт хана хамгаалагдсан орчинтой, VPN-тэй холбогдож серверээс алсын нөөц командыг хүлээж байдаг.

Дизайн зарчим:

-Бүрэн luks дээр суурилсан диск шифрлэлт (төхөөрөмж өөрөө нөөц дискийг нээх түлхүүр агуулаагүй болно. Үүнийг алсын серверээс ram /dev /shm руу түр хуулж, драйвыг нээж, түлхүүрийг устгах болно. Нөөцлөлт дууссаны дараа драйвер хаагдаж, OrangeBox автоматаар 1 минутын дараа унтардаг.)

-Бүх тушаал, түлхүүрийг алсын серверээс илгээдэг (төхөөрөмж нь зөвхөн vpn сертификат агуулдаг), энэ төхөөрөмжөөс ssh ч гэсэн алсын сервер рүү хандах эрхгүй байдаг.

-Дотоод файлын системийг ачаалах боломжтой байхын тулд шифрлээгүй боловч ямар ч ашигтай зүйл агуулаагүй бөгөөд VPN холболтыг нөгөө талаас нь хязгаарласан тул төхөөрөмжийг бүрэн алдсан ч халдагч юу ч хийж чадахгүй.

Https://www.armbian.com/orange-pi-zero/ дээрээс Armbian Stretch татаж аваарай.

Системийг ажиллуулах:

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

Жинхэнэ нээлттэй эхийн bloatware үнэгүй системтэй болохын тулд хайрцгаа дахин ачаалж, systemd -ийг устгаарай.

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

Зарим багцыг суулгаарай

apt-get install 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 -g улбар шар улбар шар

Таныг хардаггүй манаач нохой

apt-get installd dogd

/Etc/default/watchdog -ийг харж байна # Ачаалах үед ажиглагчийг эхлүүлэх үү? 0 эсвэл 1 run_watchdog = 1 # Харуул хамгаалагчийг зогсоосны дараа wd_keepalive -г эхлүүлэх үү? 0 эсвэл 1 run_wd_keepalive = 1 # Watchdog -ийг эхлүүлэхийн өмнө модулийг ачаална уу watchdog_module = "none" # Харуулын нэмэлт сонголтыг энд зааж өгнө үү (manpage -ийг үзнэ үү).

/Etc/watchdog.conf руу харж байна

# Наад зах нь эдгээрийг идэвхжүүл

хамгийн их ачаалал-1 = 24 хамгийн их ачаалал-5 = 18 хамгийн их ачаалал-15 = 12

/etc/init.d/watchdog эхлэх

Хамгийн багадаа 1 цөмийн утас, 1 процесс байх ёстой:

root 42 0.0 0.0 0 0? Би <10:50 0:00 [манаач] root 14613 0.0 0.2 1432 1080? SLs 13:31 0:00/usr/sbin/манаач

Туршилт:

Үлдсэн өгөгдлийг диск рүү бичихийн тулд бүх зүйлийг зогсоож, синхрончлох && sync && sync хийхээ мартуузай. Дараа нь үндсэн асуудлын хувьд:

echo 1> /dev /watchdog

Хэдэн секундын дараа машин дахин асах ёстой.

Гарын авлагад дурдсанаар:

o Процессийн хүснэгт дүүрэн байна уу?

o Чөлөөт санах ой хангалттай байна уу? o Хуваарилах санах ой хангалттай байна уу? o Зарим файлд хандах боломжтой юу? o Өгөгдсөн интервал дотор зарим файлууд өөрчлөгдсөн үү? o Дундаж ажлын ачаалал хэт өндөр байна уу? o Файлын хүснэгт дүүрсэн үү? o Процесс үргэлжилж байна уу? Процессийг pid файлаар тодорхойлдог. o Зарим IP хаяг ping -д хариулдаг уу? o Сүлжээний интерфэйсүүд урсгалыг хүлээн авдаг уу? o Температур хэт өндөр байна уу? (Температурын өгөгдөл үргэлж байдаггүй.) O Хэрэглэгчийн тодорхойлсон тушаалыг гүйцэтгэн дурын тест хийх. o /etc/watchdog.d дээрээс олдсон нэг буюу хэд хэдэн туршилтын/засварлах командыг гүйцэтгэх. Эдгээр тушаалуудыг аргументын тест эсвэл засварын хамт дууддаг. Хэрэв эдгээр шалгалтуудын аль нэг нь амжилтгүй болбол ажиглагч нохой хаагдах болно. Хэрэглэгчийн тодорхойлсон хоёртын хувилбараас бусад эдгээр туршилтуудын аль нэг нь нэг минутаас илүү үргэлжилсэн тохиолдолд машиныг дахин ачаалах болно.

Энэ харуулын нохой нь x86 -ийн ердийн архитектур дээр сайн ажиллаж байсан боловч ARM дээр суурилсан Raspberry PI, Orange PI гэх мэт самбар дээр тоолж баршгүй олон удаа бүтэлгүйтсэн юм. Систем нь харуулын нохой хүртэл өлгөөтэй байгаа байдалд шилжиж болно. Үүнийг зүгээр л тохируулцгаая, магадгүй энэ нь хэдэн жилийн турш apt-get шинэчлэлтээр сайжрах болно:(

Алхам 4: Програм хангамжийн дизайн

Програм хангамжийн дизайн
Програм хангамжийн дизайн

Нөөцлөх процесс нь өөрөө rsync дээр суурилсан (урьд өмнө зохион бүтээсэн хамгийн сайн нөөц хэрэгсэл) өгөгдлийг SERVER-> OrangeBOX-ээс түлхдэг.

Rsync -аас өгөгдлийг гаргаж авах нь LCD дээр хэвлэсэн нөөцлөлтийн талаархи ахиц дэвшилтэт мөртэй байх төслийн цорын ганц бэрхшээлтэй хэсэг байв.

Нөөцлөлтийн явцыг тооцоолох 3 боломжит арга байсан:

1, https://wintelguy.com/transfertimecalc.pl гэх мэт томъёог ашиглан шилжүүлгийн ойролцоо хугацааг тодорхойлох.

Шилжүүлгийн цаг (d: h: m: s): 0: 02: 44: 00

Харьцуулахын тулд: 123 GB файлыг өөр сүлжээний холбоосоор дамжуулах тооцоолсон хугацаа (d: h: m: s): T1/DS1 шугам (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

Хэрэв rsync дууссан бол тооцооллыг зогсоох скриптэд дохио өгнө. Энэ арга нь зүгээр л ойролцоо бөгөөд найдвартай биш, мөн холболтын хурд засаагүй, удаашруулж, дахин хурдасгаж чадна. Энэ бол зөвхөн онолын тооцоо юм.

2, Бид аль хэдийн хичнээн өгөгдлийг синхрончилсон болохыг тодорхойлохын тулд лавлах дээрх хэмжээг шалгаж байна. Хэдэн зуун ГБ хэмжээтэй жижиг файлуудын тусламжтайгаар маш удаан ажиллах боломжтой (хэдийгээр Линукс дээрх du -s хэрэв та үүнийг дахин ажиллуулбал зарим кэш хийдэг)

Хост А -> Нөөцлөх серверийн өгөгдөл Data dir: 235GB

Хост Б -> Улбар шар өнгийн хайрцагны үйлчлүүлэгчийн мэдээлэл одоогоор бидэнд байгаа Data dir: 112GB

Дельта нь 123 ГБ юм.

3, Хэрэв файлын систем нь манай тохиолдолд/dev/mapper/нөөцлөлтөд зориулагдсан бол бид файлын системийн ашиглалтын ерөнхий үзүүлэлтүүдийн давуу талыг ашиглан нөөцлөлт хэрхэн явагдаж байгааг тодорхойлох боломжтой бөгөөд энэ нь үнэхээр хурдан юм. Энэ тохиолдолд бидэнд rsync stdout -ийг хаана ч хамаагүй суулгах шаардлагагүй, зүгээр л хуурай rsync ажиллуулаад дуустал нь хүлээгээрэй, дельтагаа байтаар тооцоолж, нөөц диск болон voila дээр байгаа хоосон зайг шалгаад үзээрэй. одоо сайхан зургийн график хий. Энэ бол миний сонгосон арга бөгөөд миний скрипт энд байна:

#!/bin/bash

NLD -ээс OrangeBOX -ийн # Нөөцлөх явцын тооцоолуур # Хувилбар: 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 = "" # Драйвын хэмжээг байтаар (хоёрдогч шалгах) LCD = "sudo /bin /lcd" функц is_mount () {grep -q "$ 1" /proc /mounts status = $? } функц улаан () {sudo /bin /lcdcolor red} функц ногоон () {sudo /bin /lcdcolor green} функц цэнхэр () {sudo /bin /lcdcolor blue} # Тодорхой төлөв (bootup_display.sh -ээр ачаалах үед тохируулагдсан). Нөөцлөлт хийгдээгүй байна, # статусын LCD -ийг бүү алдаарай. Нөөц үргэлжилж байгаа тохиолдолд л явцыг харуулна => Эхлэх файл байхгүй, 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 # Энэ цэгээс эхлэн тасралтгүй нөөцлөлт байгаа тохиолдолд скриптийг ЗӨВХӨН гүйцэтгэнэ. # цуцлах боловч энэ нь backup.lck файлыг устгахгүй тул энд # дахин дахин орж, нөхцлүүдийг арилгах болно. is_mount $ BACKUP_DRIVE бол [$ status -ne 0]; дараа нь улаан $ LCD "ERR: Нөөцлөх драйвер" "суулгаагүй байна!" echo "Нөөцлөх драйвер холбогдоогүй байна" 1 fi гарах бол [! -s $ TFILE]; дараа нь улаан $ LCD "ERR: transfer" "хоосон" echo "Тээврийн хэмжээг тооцоолох файл хоосон байна." гарах 1 fi BACKUP_OVERALL = $ (head -1 $ TFILE | tr -d '\ n') if [-z $ BACKUP_OVERALL]; дараа нь улаан $ LCD "ERR: Хэмжээг дахин унших" "" серверээс хүчингүй "echo" Нөөцлөлтийн ерөнхий хэмжээг дахин унших хүчингүй байна 1 "гарах 1 fi бол!

Хэдийгээр код нь энгийн боловч энд юу хийж байгааг тайлбарлах болно.

1, Хэрэв BFILE эсвэл FFILE байхгүй бол (энэ нь тодорхой эхлүүлсний дараах байдал юм) нөөцлөх процесс байхгүй байгааг илтгэж байгаа тул ямар ч зүйлийг бүү хий. Ингэснээр та хостын нэр, ip, uptime гэх мэт ачаалах талаар хэрэгтэй бүх мэдээллийг графикаар оруулах боломжтой бөгөөд энэ нь эвдрэхгүй болно.

2, is_mount $ BACKUP_DRIVE хэсэг рүү орцгооё. Бидэнд ирсэн цорын ганц арга бол нөөцлөлтийг эхлүүлсэн бөгөөд ингэснээр BFILE байдаг. Одоо код нь янз бүрийн алдааг шалгадаг бөгөөд энэ нь нөөц драйвыг суулгасан уу ?, бидний нөөцлөх гэж байгаа зүйлийн нийт хэмжээ нь дискнээс давсан уу? эсвэл бусад алдаа. Энэ бол зөвхөн DISPLAY програм бөгөөд хэмжээ нь нөөцлөлтөөс хэтэрсэн байсан ч юу ч цуцлахгүй гэдгийг санаарай.

3, OK бүх алдааны шалгалтууд графикийг тооцоолох цагийг цэвэрлэв. Нэгдүгээрт, скрипт яг одоо нөөц файлын систем дээр байтаар ашиглагдаж буй орон зайн "агшин зургийг" аваад VFILE дээр хадгална. Үүний зорилго нь юу вэ: bash скрипт нь харьяалалгүй, цаазаар авах хооронд өгөгдлийг алддаг тул хэрэв та өмнөх гүйцэтгэлийн зарим өгөгдлийг "санаж" байхыг хүсч байвал үүнийг хаа нэг газар хадгалах хэрэгтэй. Манай тохиолдолд энэ бол энгийн текст файл юм. Үүнийг хялбарчлахын тулд манай START_POS бол 1GB (бидэнд байгаа өгөгдөл), нөөцлөхийг хүсч буй зүйл бол +2GB, хөтчийн нийт багтаамж 10GB юм гэж бодъё.

4, Дараагийн удаа скрипт ажиллаж байх үед VFILE байгаа бөгөөд үүнийг буцааж унших болно (ингэснээр хөтөч хоосон биш байсан тохиолдолд эхлэх байрлал ямар байсныг бид мэднэ) яг одоо ашиглаж буй орон зайн дельта болох BACKUP_CURRENT -ийг тооцоолох болно. нөөц дискийг хасах эхний байрлалыг хасах нь сүүлийн шатанд VFILE дээр хадгалсан зүйл юм (энэ нь нөөцлөлт эхлэх үед хөтөч дээр байсан өгөгдөл юм). Скрипт нь дотооддоо байтаар ажилладаг боловч хагас цагийн дараа хялбар болгохын тулд бид 500MB өгөгдлийг нөөцөлсөн бол томъёо нь BACKUP_CURRENT = 1.5GB - 1GB (анхны төлөв) => байх бөгөөд энэ нь бидэнд яг 500 MB бодит өгөгдлийг буцааж өгдөг. бидний өнөөг хүртэл нөөцөлсөн зүйл. Нөөцлөлтийн эхэн үед анхны өгөгдөл юу байсныг ажиглахгүйгээр энэ хэмжээг тооцоолох нь бүтэлгүйтэх болно, учир нь яг одоо ашиглаж буй орон зай нь 1.5 ГБ хэмжээтэй бөгөөд дискэн дээр 1 гига өгөгдөл байсныг мэдээгүй байж магадгүй юм. Өмнөх нөөц хуулбараас ирсэн тул сервер бидэнд 500МБ -ийн оронд 1.5GB өгөгдөл илгээсэн гэж үзэх болно.

5, BACKUP_OVERALL-ийг унших болно, энэ өгөгдлийг анхны хуурай rsync хийх үед сервер тооцоолсон болно (ингэснээр энэ нь Server-> OrangeBOX-ээс нөөцлөгдөх байтын хэмжээг агуулсан гадаад мэдээллийн эх үүсвэр юм). Энэ утгыг диск дээрх нийт ҮНЭГҮЙ орон зайтай харьцуулан шалгах бөгөөд хэрэв үүнээс хэтэрсэн бол lcd дээр алдааны мэдэгдэл гарч, скрипт гүйцэтгэлийг зогсооно. Энэ скрипт нь зөвхөн ЗӨВХӨН дэлгэц дээр харагддаг бөгөөд энэ нь нөөцлөлтийн процесст саад болохгүй гэдгийг дахин санаарай. Хэрэв та диск дээрх файлуудыг цэвэрлэж эсвэл файлын хэмжээ алсаас өөрчлөгддөг бол BACKUP_OVERALL нь нэг удаа өөрчлөгдөх болно.

6, Эцэст нь бид ямар нэгэн зүйлийг харуулах цаг болсон хоёр дахь шатны шалгалтыг хийж дууслаа. Скрипт нь энгийн C програмыг ашиглан консол болон lcd дээрх өгөгдлийг харуулдаг. Нөөцлөлт эхэлж, явцыг дараах томъёогоор тооцоолсон PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)) арын дэвсгэрийг Цэнхэр болгож сольсон. Энэ бол одоогийн дүнг авч буй үндсэн хувийн тооцоо бөгөөд бидний жишээн дээр 0.5GB*100/2GB = 25%байна.

7, Тоонуудыг байтаас Mega/Giga байт болгон хөрвүүлдэг бөгөөд хэрэв 1ГБ -аас бага бол дэлгэц автоматаар MB хэлбэрээр харагдана.

8, Манай тохиолдолд үүнийг зураглахад үлдсэн зүйл бол 20 баганын LCD дэлгэц дээрх 25% юм. Энэ нь бидний жишээн дээр 25 * 20/100 = 5 байх болно. Одоогийн байдлаар LCD програмын шинэчлэлт хийгдэж байгаа бөгөөд та дуудлага хийх бүрт дэлгэцийг бүхэлд нь дахин зурах болно. Тиймээс энэ тохиолдолд дэлгэц дээр 5 hashmarks # зурахын тулд 5 удаа давталт хийх бөгөөд энэ нь тойрог бүрт муухай анивчдаг бөгөөд үүний оронд би тооцоолсон явцын мөрийн өгөгдлийг LFILE1 ба 2 -т бичдэг. 5 тойрог нь ##### байх бөгөөд үүнийг буцааж уншиж, LCD дэлгэц дээр харуулна. Та sdcard -ийг нэмэлт бичих үйлдлээс аврахын тулд LFILE1 ба 2 -ийг ramdisk дээр байрлуулж болно, энэ нь надад ямар ч асуудал үүсгэсэнгүй, скрипт cron -ээс минут тутамд нэг удаа ажилладаг.

9, Нөөцлөлт нь rsync ажилладаг серверээс нөгөө скриптийг дуусгасны дараа FFILE (Finish File) дээр хүрнэ. Дараагийн давталтад 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 нь SDcard-ийг дүүргэсэн OrangePIs rootfs руу өгөгдөл оруулахыг оролдохгүй. Үүнийг хийх боломжгүй болгохын тулд chattr +i /mnt /backup дээр өөрчлөгдөөгүй битийг тохируулах нь сайн туршлага юм.

Хэмжээний урьдчилсан тооцоог сервер дээр локал хэлбэрээр хийдэг тул дараагийн алхамд энэ файлыг OrangeBOX руу илгээх шаардлагатай болно.

Үндсэн нөөцлөлтийг ((i = 0; i <100; i ++)); Учир нь чанар муутай DSL/Кабелийн интернет холболт rsync ихэвчлэн эвдэрч болзошгүй тул хугацаа нь дуусдаг. Хэрэв энэ нь амжилттай дууссан бол давталт дахин хийхгүйгээр давталт тасрах болно. Энэ нь сайн үйлдлийн системтэй өөгүй ажилладаг боловч хэрэв ямар нэгэн шалтгаанаар алсын хайрцаг цонхтой байж, NTUSER. DAT дээрх шиг хандалтыг хориглодог бол rsync нь алдааны кодыг буцааж өгөх бөгөөд энэ давталтыг 100 удаа ажиллуулж, амжилтгүй хэвээр байх болно.

Алхам 5: Хаах ба хийх ажлын жагсаалт

Хаах ба хийх ажлын жагсаалт
Хаах ба хийх ажлын жагсаалт
Хаах ба хийх ажлын жагсаалт
Хаах ба хийх ажлын жагсаалт

Миний зааварчилгаа нь 10 долларын үнэтэй компьютерээс илүү сайн, илүү тохируулгатай төхөөрөмжийг хэрхэн яаж бүтээхийг Буффало мужийн өмчлөлийн түгжээтэй NAS төхөөрөмжүүд, хачирхалтай дотоод хуваалт, завгүй хайрцганд тахир дутуу болсон линукс, сегментийн хэрэгслүүдээр хэрхэн яаж зохицуулж болохыг дахин харуулж байна. Тэдний цонхны програм хангамж, хаалттай програм хангамж, муу бичиг баримт, дэмжлэг, хичнээн их мөнгө зарцуулахаас үл хамааран OrangeBox нь ямар сайхан харагдаж байгааг дурдахгүйгээр нөөцлөлтийг харуулсан ахиц дэвшил гаргах үзүүлэлт хэзээ ч гарахгүй (би улбар шар өнгийн CAT5 кабелийг ашиглаж байсан: D).

Мини компьютерууд улам л хүчирхэг болсноор <100 долларын үнийн түвшинг хэвээр хадгалж, бид тэдгээрийг улам олон ажилд ашиглах боломжтой болно. Gbe Ethernet портууд 1-2 жилийн дараа нэлээд түгээмэл байдаг тул эдгээр самбар дээрх санах ой эрс нэмэгдэх бөгөөд үүнийг ZFS дээр суурилсан нөөц системд ашиглах боломжтой болно.

-С хөтөлбөрийн үр тарианы явцын нарийн үзүүлэлт (WasserStation -ийн миний бусад төслийн нэгийг үзнэ үү). Яг одоо lcdPuts (lcd, line1) ашиглан тэмдэгтийн горимд ашиглагддаг # hashmark # тэмдэгтүүдийг үүнийг LCD тэмдэгтүүдийг ашиглан 1 баганыг 5 хэсэгт хуваахад сайжруулж болох бөгөөд үндсэн C програм нь 25 шиг бүхэл тоог авч зурж болно. График LCD ашиглан ахиц дэвшлийг зөв эсвэл цаашид сайжруулах

-Шинэ болон шинэ нөөцлөлтүүдийг үүсгэх, өөр өөр байршилд шилжүүлэх зориулалттай зөөврийн hdd-тэй байх боломж (хэрэв хайрцаг хоосон дискийг илрүүлсэн бол түүнийг хүлээн авсны дараа шифрлэх түлхүүрээр автоматаар форматлах ёстой).

-Хэрэв та өөрийн хэргийг makerbot ашиглан хэвлэхийг хүсч байвал OrangeNAS танд сонирхолтой байж магадгүй:

Зөвлөмж болгож буй: