Мазмуну:
- 1 -кадам: Аппараттык бөлүктөр
- 2 -кадам: Аппараттык Дизайн
- 3 -кадам: Иштетүү системасы
- 4 -кадам: Программалык камсыздоонун дизайны
- 5 -кадам: Жабуу жана Жасала турган иштердин тизмеси
Video: OrangeBOX: OrangePI негизделген коопсуз камдык сактоочу түзмөк: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
OrangeBOX-бул ар кандай серверлер үчүн алыскы сактоочу камдык куту.
Сиздин серверге инфекция жуккан, бузулган, тазаланган жана сиздин бардык маалыматтарыңыз дагы эле OrangeBOX коопсуздугунда жана эч ким эч нерсе кылбай эле прогресстин индикаторун көрүп, резервдик түзүлүш сыяктуу миссияны каалабайт. түтүн аягында чыкпайт:)).
OrangeBOX - бул менин биринчи долбоорум, ал негизинен аппараттык эмес, программалык камсыздоо. Бул негизинен атайын орнотулган УК, LCDи тиркелген.
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 кутусун колдондум)
- Orange PI Zero же андан жакшыраак (эгер сиз башка моделди колдонсоңуз GPIO pinout өзгөрүшү мүмкүн)
- 2x20 RGB LCD экрандары
- Ар кандай SFF 3.5/ LFF 2.55 USB диск
- Sata -> USB адаптери. Эсиңизде болсун, OrangePI максималдуу диск кубаттуулугуна жогорку чек койбойт, бирок USB-SATA көпүрөлөрү көп (2TB max). Мен колдонгон кызгылт сары PI Zero 28 MB/s максималдуу эффективдүү өткөрүү ылдамдыгы менен бир гана USB 2.0 портуна ээ. Мен USB3.0 тандап алдым (келечектеги жаңыртууларга даярдалган) -> SATA көпүрөсү (бренд эскерилбейт) жана ал чекти жабат, андыктан JMicron JMS567 чипке негизделген көпүрөлөр сыяктуу чоң дисктерди колдоп жаткандыгы далилденген көпүрөнү тандап алуу жакшы.. Сатып алуудан мурун өзүңүздүн изилдөөңүздү кылыңыз. Мен бул долбоордо 2TB sata дискти колдонуу менен ылдамдык жана катуу диск чеги менен жашай алам (эгер сиз чоңураак дисктерди койсоңуз, ал таанылат, бирок ОС анын биринчи 2ТБын гана көрөт, андыктан калган сыйымдуулук жоголгон).
- 12V 2.5 A же андан жогору ампер адаптери. Стандарттык LFF SATA драйвы үчүн OPI Zero жана 1.5A чокусу үчүн 500mA кадимки колдонууну эсептеңиз. Чоң өлчөм эч качан оорутпайт. Менин орнотуумда 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ди колдонуунун эң жакшы кеңеши. ЖКнын С коду жана бардык кабык сценарийлери башка UNIX тутумдарына көчмө.
2 -кадам: Аппараттык Дизайн
Yamaha кутусу мунун баарын сактоо үчүн жетиштүү болчу, анда Orange PI PC же кадимки Raspi форма-фактор тактасы үчүн жетиштүү орун болмок эмес.
Ethernet кутучанын артындагы кеңейтүүчү менен чыгарылды. Orange PI нөлүнүн 100мбит/с Ethernet интерфейси бар экенин унутпаңыз, эгер тезирээк кааласаңыз, Asus Tinkerboard/RPI3B+/Башка Orange PI моделдери сыяктуу башка тактаны колдонушуңуз керек болот.
Туура эмес PIN чыгаруу - бул долбоордо сиз жасай турган бирден -бир ката, андыктан бармак принциптеринин кээ бир эрежелерин колдонууга арзыйт:
1, Ар дайым ТҮНДӨН АКЫРГА чейин ошол түстүү кабелди колдонууга аракет кылыңыз. Мен өзүм колдобогон эркек-эркек/эркек-аял/аял-ургаачы кабелдердин жетишсиздигинен улам, мен жасай албаган кээ бир долбоорлордо ошол эле "катамды" кетирем жана мен улантуу үчүн 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 графикалык эмес сүрөттөлүштү түшүнүү кыйыныраак болсо да, эң туура багыт.
Сиз ар дайым розеткалардын 2 учун айырмалай аласыз, бир четин Позитивдүү аягы (+3.3/+5V) жана экинчисин ТЕРСИЗ учу (бир GND) -> бул ETHERNET портуна караган туташтыргычтын аягы..
Wiring PI Zero столунан сизге wPI башкалар жок болгон сыяктуу унуткан бир гана тилке керек болот.
Мисалы, LCD_E 15 (wPI 15!) Жана LCD_RS 16 (башкача айтканда wPI 16!) Туташтыруу үчүн туташтыргычтын ПОЗИТИВДҮҮ учтарындагы казыктарды санаңыз (калем же кичинекей отвертка менен жасоо оңой). Бул физикалык түрдө 4 казык жана 5 казыкка түшөт.
4, топтоштуруу. Эгерде колдонулган казыктарды бири -бирине жанаша коюу мүмкүнчүлүгү болсо (аларды топтоштуруу) ар дайым муну тандап алган, бул аларды эки жолу 4x 6x molex коннекторлору болгондо, ысык клейсиз деле башка долбоорлордо кармап турууга мажбур кылат. бир -биринин жанында болгон казыктарды колдонуңуз. Бул жерде сиз жасай ала турган эң жакшы нерсе 2-3s тобу (эски компьютерлерден куткарылган секирүүчү кабелдерди колдонууда идеалдуу).
OrangePI LCD экраны туташуу үчүн колдонулган казыктар:
// WIRINGPI ПИН САНДАРЫН КОЛДОНУҢУЗ
#define LCD_E 15 // Иштетүү Pin #define LCD_RS 16 // Каттоо тандоо пин #define LCD_D4 5 // Маалымат пин 4 #define LCD_D5 6 // Маалымат пин 5 #define LCD_D6 10 // Маалымат пин 6 #define LCD_D7 11 // Маалымат пин 7
RGB жарыкты башкаруу үчүн колдонулган казыктар
$ G жаз 10
$ G жаз 4 1 $ G жаз 7 1
Orange PI нөлдүк wPI казыктары 1, 4, 7. Бул ЖК стандарттык оңдоого салыштырмалуу көк же жарыктын жашыл жарыктандыруучу ЖКсына салыштырмалуу жасай ала турган бир гана сыйкырлуу, ал жерде сизде катод бар, ал GNDге 3 үчүн 3кө түшүрүлөт. түстөр. Кызыл, жашыл жана көк. Кайсынысы күйгүзүлгөнүн айкалыштыруу менен, сиз бул негизги түстөрдөн ар кандай түстөрдү аралаштыра аласыз, бирок түстөрдүн жарыктыгын башкара албаганыңыз үчүн (анын күйгүзүлгөн же өчүрүлгөн) жогорку четтеринде гана көлөкө жок.
Кошумча түстөрдү аралаштыруу: кызылды жашылга кошуу сары түшүм берет; кызгыл көк түскө кызыл кошуу; көк түскө жашыл кошуу көк түс берет; үч негизги түстү кошуу ак түс берет.
3 -кадам: Иштетүү системасы
OrangeBOX жүктөлөт жана Armbian линукс (Debian Stretch негизделген) 4.14.18-sunxi ядросу коопсуз файерлуу чөйрө менен, VPNге туташат жана серверден алыскы камдык буйруктарды күтөт.
Дизайн принциптери:
-Толук луктарга негизделген диск шифрлөө (түзмөктө камдык дисктин ачуу ачкычы жок. Ал убактылуу серверден коч /dev /shmге көчүрүлөт, диск ачылып, ачкыч өчүрүлөт. Камдык көчүрмөнү аяктагандан кийин диск жабылып, OrangeBox автоматтык түрдө 1 мүнөттө өчөт.)
-Бардык буйруктар жана ачкычтар алыскы серверден жөнөтүлөт (түзмөктө vpn тастыктамасы гана бар), алыстан серверге эч кандай мүмкүнчүлүк жок, ал тургай, бул түзмөктөн ssh firewall.
-Жергиликтүү файл тутумдары шифрленген эмес, бирок жүктөө үчүн пайдалуу эч нерсе жок, анткени 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
Кутуңузду өчүрүп күйгүзүңүз жана чыныгы ачык программалык камсыздоо бекер системасына ээ болуу үчүн systemdди алып салыңыз.
apt-get remove --purge --auto-remove systemd
Кээ бир пакеттерди орнотуңуз
apt-get install cryptsetup vim htop rsync экраны gcc кылуу
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 watchdog орнотуу
/Etc/default/watchdog карап жатасыз # Күзөтчү жүктөө учурунда башталабы? 0 же 1 run_watchdog = 1 # Күзөтчүнү токтоткондон кийин wd_keepalive башталсынбы? 0 же 1 run_wd_keepalive = 1 # Күзөтчүнү иштетүүдөн мурун модулду жүктөңүз watchdog_module = "none" # Бул жерде кошумча күзөтчү параметрлерин көрсөтүңүз (manpage караңыз).
/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] root 14613 0.0 0.2 1432 1080? SLs 13:31 0:00/usr/sbin/watchdog
Сыноо:
Калган маалыматты дискке жазуу үчүн баарын токтотуп, шайкештештирүүнү & синхрондоштурууну жана шайкештештирүүнү тактаңыз. Андан кийин негизги маселе катары:
echo 1> /dev /watchdog
Бир нече секунддан кийин машина кайра жүктөлүшү керек.
Колдонмодо айтылгандай:
o Процесс столу толукпу?
o Бош эс жетиштүүбү? o Бөлүнүүчү эстутум жетиштүүбү? o Кээ бир файлдар жеткиликтүүбү? o Берилген интервалдын ичинде кээ бир файлдар өзгөрдүбү? o Орточо жумуш жүктөмү өтө чоңбу? o Файлдык таблицанын толуп кетиши байкалдыбы? o Процесс дагы эле иштеп жатабы? Процесс pid файлы менен аныкталат. o Кээ бир IP даректери пингге жооп береби? o Тармактык интерфейстер трафикти кабыл алабы? o Температура өтө бийикпи? (Температура маалыматтары дайыма эле жеткиликтүү боло бербейт.) O Колдонуучу аныктаган буйрукту каалагандай текшерүү үчүн аткарыңыз. o /etc/watchdog.d табылган бир же бир нече сыноо/оңдоо буйруктарын аткарыңыз. Бул буйруктар аргументти текшерүү же оңдоо менен чакырылат. Эгерде бул текшерүүлөрдүн бирөөсү аткарылбаса, күзөтчү өчүрүүгө алып келет. Колдонуучу экиликтен башка бул тесттердин бирөө бир мүнөттөн ашык созулса, машина дагы өчүрүлөт.
Бул күзөтчү кадимки x86 архитектурасында жакшы иштеши мүмкүн, бирок Raspberry PI, Orange PI сыяктуу ARMге негизделген такталарда мага сансыз жолу ийгиликсиз болгон. Система кароолчу илинип турган асма штаттарга өтө алат. Келгиле, жөн эле конфигурациялап алалы, балким, ал жылдар бою apt-get жаңыртуусу менен жакшырат:(
4 -кадам: Программалык камсыздоонун дизайны
Камдык көчүрүү процессинин өзү rsyncке негизделген (эң мыкты камдык курал), SERVER-> OrangeBOXтен маалымат алынат.
Rsyncтен маалыматтарды алуу ЖКда басылып чыккан камдык көчүрүү боюнча прогресстин тилкесине ээ болуу үчүн долбоордун бирден -бир татаал бөлүгү болгон.
Камдык прогрессти эсептөөнүн 3 мүмкүн болгон жолу бар болчу:
1, https://wintelguy.com/transfertimecalc.pl сыяктуу формулаларды колдонуп, которуунун болжолдуу убактысын аныктаңыз
Өткөрүү убактысы (д: ч: м: с): 0: 02: 44: 00
Салыштыруу үчүн: Ар кандай тармактык шилтемелер боюнча 123 ГБ файлды өткөрүүнүн болжолдуу убактысы (d: h: m: s): T1/DS1 line (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, каталогдун өлчөмүн текшерүү, биз буга чейин канча маалыматты шайкештештиргенибизди аныктайт. Жүздөгөн ГБ кичинекей файлдар менен өтө жай иштей алат (эгер Linuxто du -s аны кайра иштетсеңиз, кээ бир кэштелет)
Хост A -> Сервердин маалыматтарынын камдык көчүрмөсү сакталууга тийиш Директорлор: 235GB
Host B -> Orange box кардарынын маалыматы бизде азыр бар Data dir: 112GB
Дельтанын көлөмү 123 ГБ.
3, Эгерде файл тутуму биздин жагдайга окшош болсо/dev/mapper/камдык болсо, анда биздин файлдык тутумду колдонуунун жалпы индикаторунан пайдаланып, биздин камдык көчүрүүбүздүн кандай жүрүп жаткандыгын жана бул чындыгында бат эле ылдамдыгын аныктай алабыз. Бул учурда бизге rsync stdoutту каалаган жерден өткөрүүнүн кажети жок, жөн гана кургак rsyncти иштетип, анын бүтүшүн күтө туруңуз, дельтаны байт менен эсептеңиз жана бизде резервдик дискте жана voila бар бош орун менен текшерип көрүңүз. азыр жакшы графикти түзүңүз. Бул мен тандаган ыкма болчу жана бул үчүн менин сценарийим:
#!/bin/bash
NLD тарабынан OrangeBOX үчүн # Камдык Прогресс Калкулятору # Version: 0.2 (2018/03/05) # # Аны cron # * * * * * /home/orange/backup_progress.sh &>/dev/null # # Бул скрипт маалыматтарды ЖКда көрсөтүү үчүн гана жооптуу, ал # программасы менен кыйыр түрдө позиция жана кулпу файлдары аркылуу байланышат. 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 = $? } function red () {sudo /bin /lcdcolor red} function green () {sudo /bin /lcdcolor green} function blue () {sudo /bin /lcdcolor blue} # Таза абал (bootup_display.sh тарабынан жүктөөдө коюлган). Эч кандай камдык көчүрүү жүрбөй жатат, # статус ЖКны бузбаңыз. Улантуучу камдык бар болгон учурда гана прогрессти көрсөтүңүз => Баштоо файлы жок жана фин файлы жок = эгерде [! -f $ BFILE] && [! -f $ FFILE]; анда 1 fi # дан чыккыла # Эгерде камдык көчүрмөнү бүтүрсө, бул скрипт муну көрсөтүп, кулпуларды алып салат # кийинки инициацияга чейин кайра иштей албайт. эгер [-f $ FFILE]; анда жашыл $ LCD "Камдык көчүрүү" "** Аякталды **" echo "Камдык Аткарылды" rm -rf $ BFILE $ TFILE $ FFILE $ LFILE1 $ LFILE2 $ VFILE # Эгерде [$ SHUTDOWN == "1"] камдык тазалоо аяктады; анда жаңыртуу "Өчүрүү сценарийи аткарылууда …" /home/orange/shutdown.sh & fi exit 0 fi # Ушул учурдан тартып скрипт ӨЗҮНӨН камдык бар болсо гана иштейт # андыктан бардык каталар ЖКга чыгарылат жана скриптке себеп болот # алдыруу үчүн, бирок ал backup.lck файлын алып салбайт, ошондуктан бул жерге кайра -кайра кирип, шарттарды жокко чыгарат. is_mount $ BACKUP_DRIVE эгер [$ status -ne 0]; анда кызыл $ LCD "ERR: Камдык диск" "орнотулган эмес!" echo "Камдык диск орнотулган эмес" чыгуу 1 fi if [! -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 if!
Бул жерде код жөнөкөй болгону менен, ал эмне кылаары тууралуу кээ бир сүрөттөмөлөр келтирилген:
1, Эгерде BFILE же FFILE жок болсо (так башталгандан кийинки абал), бул эч кандай резервдик процесс жок экенин көрсөтүп турат, андыктан эч нерсе кылбаңыз. Ошентип, сиз хостинг, ip, uptime ж.
2, is_mount $ BACKUP_DRIVE бөлүмүнө өтөлү. Эстеткич, бул жерге жетүүнүн бирден -бир жолу, BFILEдин бар болушу үчүн резервдик көчүрүү башталды. Эми код жөн эле ар кандай каталарды текшерет, камдык диск орнотулганбы ?, биз камдык кыла турган нерсенин жалпы көлөмү дисктен ашып кетеби? же башка каталар. Эсиңизде болсун, бул DISPLAY гана программасы, анын өлчөмү резервдик көчүрмөлөрдөн ашып кетсе да, ал эч нерсени токтотпойт.
3, OK бардык ката текшерүүлөрү пайыздык графикти эсептөө үчүн тазаланды. Биринчиден, скрипт азыр резервдик файл тутумунда байтта колдонулган мейкиндиктин "сүрөтүн" алат жана аны VFILEде сактайт. Мунун максаты эмне: bash скрипти жарандыгы жок, ал өлүм жазасына тартуунун ортосундагы маалыматтарды жоготот, андыктан мурунку аткаруунун кээ бир маалыматтарын "эстеп" калгыңыз келсе, аны бир жерге сактоо керек. Биздин учурда бул жөн эле тексттик файл. Жөнөкөй кылуу үчүн, айталы, биздин START_POS 1 ГБ (биздеги маалыматтар), биз камдык сактагыбыз келген нерсе +2 ГБ жана жалпы диск кубаттуулугу 10 ГБ.
4, Кийинки жолу VFILE сценарийи иштегенде жана бул кайра окулат (андыктан диск бош болбогондо баштапкы абал кандай болгонун билебиз), азыр колдонулган мейкиндиктин дельтасы болгон BACKUP_CURRENTти эсептөө үчүн резервдик дискте минус баштапкы позицияда, биз акыркы турда VFILEде сактап калганыбыз (бул камдык көчүрүү башталганда дискте болгон маалыматтар). Скрипт ички байт менен иштейт, бирок жарым сааттан кийин жөнөкөй кылуу үчүн биз 500 Мб маалыматтын камдык көчүрмөсүн түздүк, анда формула BACKUP_CURRENT = 1.5GB - 1GB (баштапкы абал) => болот, бул бизге чыныгы маалыматтарды 500 МБ кайтарып берет, б.а. ушул убакка чейин биз колдогон нерселер. Сиз баштапкы маалыматтын камдык көчүрмөсүнүн башында эмне болгонун көзөмөлдөбөстөн, бул өлчөмдү эсептөө ишке ашпай турганын көрө аласыз, анткени ал учурда дискте 1 гига маалымат бар экенин билбестен, азыр колдонулган мейкиндик 1,5 ГБ экенин көрөт. мурунку камдык көчүрмөдөн келгендиктен, сервер бизге 500 МБнын ордуна 1,5 ГБ маалыматтарды жөнөткөн деп болжолдонот.
5, BACKUP_OVERALL окулат, бул маалыматтар баштапкы кургак rsyncти жасаганда сервер тарабынан эсептелген (ошондуктан бул Server-> OrangeBOXтон камдала турган байттын көлөмүн камтыган тышкы маалымат булагы). Бул маани учурда дисктеги жалпы бош орунга карата текшерилет жана эгер андан ашып кетсе, анда lcdде ката тууралуу билдирүү пайда болот жана скрипт аткарууну токтотот. Дагы бир жолу эсиңизде болсун, бул скрипттин баары дисплейде гана, ал камдык көчүрүү процессине тоскоолдук кылбайт. Эгерде сиз дисктеги файлдарды тазаласаңыз же файлдардын өлчөмү алыстан өзгөрсө, анда BACKUP_OVERALL бир убакта өзгөрөт, ал улантылат.
6, Акыры, биз экинчи деңгээлдеги текшерүүлөрдү бүтүрдүк, бир нерсени көрсөтүү убактысы келди. Скрипт консолдогу жана LCDдеги маалыматты жөнөкөй C колдонмосу аркылуу көрсөтөт. Фон BLUEга которулду, бул камдык акыры башталганын жана прогресс төмөнкү формула менен эсептелинген PROGRESS = $ ((($ BACKUP_CURRENT * 100) / $ BACKUP_OVERALL)). Бул биздин учурдагы сумманы алган негизги пайыздык эсептөө, биздин мисалда 0.5GB*100/2GB = 25%.
7, Сандар да байттан Mega/Giga байтына которулат жана 1 ГБдан төмөн болсо, экран автоматтык түрдө МБда көрсөтүлөт.
8, Муну биздин картада калтыруу үчүн калган нерсе - бул 20 мамычалуу LCDдеги 25%. Бул биздин мисалда 25 * 20/100 = 5 болмок. Учурда LCD программасы менен жаңыртуу ишке ашты, бул сиз программаны чакырган сайын ал бүт экранды кайра тартып чыгат. Демек, бул учурда ал 5 жолу хэшмаркты # экранда тартуу үчүн 5 жолу циклди иштетет, бул ар бир раундда жагымсыз жылтылдап көрүнөт, анын ордуна мен эсептелген прогресс тилкесинин маалыматтарын LFILE1 жана 2ге жазам. 5 раунд ##### камтыйт жана бул кайра окулат жана ЖКда көрсөтүлөт. Сиз sdcardды кошумча жазуу операцияларынан сактоо үчүн LFILE1 жана 2ди ramdiskке койсоңуз болот, бул мен үчүн эч кандай көйгөй жараткан жок, сценарий 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
+/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/Cable интернет байланышы болгон учурда rsync көбүнчө үзүлүшү мүмкүн. Эгер ал ийгиликтүү аяктаса, цикл башка кайталоолорду колдонбостон үзүлөт. Бул жакшы иштөө тутумдары менен кынтыксыз иштейт, бирок эгерде кандайдыр бир себептерден улам алыскы кутуча терезелер болсо жана NTUSER. DATтагыдай эле кирүүгө тыюу салынса, анда rsync ката кодун кайтарып берет жана бул цикл 100 жолу аткарылып, анан дагы иштебей калат.
5 -кадам: Жабуу жана Жасала турган иштердин тизмеси
Менин инструктивдүү көрсөтмөм, 10 долларлык компьютерден кантип жакшыраак жана ыңгайлаштырылган түзмөк түзсөңүз болот, ал NAS аппараттары кулпуланган Буффалодон тозокту жеңет, кызыктай ички бөлүштүрүү, боштук кутусу бузулган линукстар, сегменттөө шаймандары, башкарылган Windows программалык камсыздоосу, жабык программалык камсыздоо, начар документтер жана колдоо жана канча акча сарптасаңыз да, эч качан OrangeBox канчалык кооз көрүнбөгөндүгүн эске албаган камдык көчүрмөсүн көрсөтүүчү прогресс индикаторуна ээ боло албайсыз (мен аны менен бирге CAT5 кызгылт сары кабелин да колдоном: D).
Мини компьютерлер барган сайын күчтүү болуп, <100 $ баасын сактап, биз аларды барган сайын көбүрөөк тапшырмалар үчүн колдоно алабыз. Gbe Ethernet порттору 1-2 күндүн ичинде абдан кеңири таралгандыктан, бул такталардагы эс кескин жогорулайт жана аларды ZFS негизиндеги резервдик тутумдар үчүн да колдонсо болот.
-C программасы боюнча дан эгиндеринин прогресс көрсөткүчү (WasserStation менин башка долбоорумдун бирин караңыз). Азыр lcdPuts (lcd, line1) менен мүнөздөгү режимде колдонулган # hashmark # символу, муну LCD тилкелерин колдонуп, 1 тилкени 5 бөлүккө бөлүү үчүн өркүндөтсө болот, ал эми негизги С программасы 25 сыяктуу бүтүн санды алып чыгып кетиши мүмкүн прогресс тилкеси графикалык ЖК аркылуу туура же андан ары жакшыртылат
-Жаңы жана жаңы камдык көчүрмөлөрдү түзүү жана аларды башка жерлерге жылдыруу үчүн алынуучу hddге ээ болуу мүмкүнчүлүгү (эгер кутуча бош дисктин бар экендигин аныктап алса, анда аны шифрлөө ачкычы менен автоматтык түрдө форматташ керек).
-Эгерде сиз өз ишиңизди makerbot менен басып чыгаргыңыз келсе, OrangeNAS сиз үчүн кызыктуу болушу мүмкүн:
Сунушталууда:
Суу эскертүүсү - кайыгыңызды сактоочу түзмөк: 5 кадам (сүрөттөр менен)
Суу эскертүүсү - Сиздин Кайыкты сактоочу түзмөк: Эгер сиз кайыктын ээси болсоңуз, акыры кайыкты кургактыкка алып келүүңүздө бекем сооронуч бар. Ал жерге батып кете албайт. Башка бардык жерде толкундардын астында тайып жок болуу тенденциясын жеңүү үчүн дайыма күрөш жүрөт. Кыш мезгилинде бул жерде Алас
Ардуиного негизделген байланышсыз инфракызыл термометр - IR негизделген термометр Arduino колдонуу: 4 кадам
Ардуиного негизделген байланышсыз инфракызыл термометр | IR негизделген термометр Arduino колдонуу: Салам балдар бул көрсөтмөлөрдө биз ардуинону колдонобуз. ошол сахнада температура
Камдык көчүрмөлөр жана жаңыртуулар үчүн Raspberry Piден Cloud Serverге SSH / SCP коопсуз туташуусу: 3 кадам
Камдык көчүрмөлөр жана жаңыртуулар үчүн Raspberry Piден Cloud Serverге SSH / SCP коопсуз туташуусу: Бул нускаманын максаты Raspberry Piден алыскы булут серверине (жана тескерисинче) кантип автоматтык жана коопсуз туташууну көрсөтүү. камдык көчүрмөлөр жана жаңыртуулар ж
Телефонуңузду жана гаджетти кантип коопсуз жана коопсуз кылуу керек: 4 кадам
Телефонуңузду жана гаджетти кантип коопсуз жана коопсуз кылуу керек: дээрлик бардыгын жоготкон адамдан (албетте, апыртылган) .Ошондуктан, моюнга алуу убактысы, менин мурунку сүйлөмүм айткандай, мен абдан олдоксонмун. Эгерде мага бир нерсе байланып калбаса, анда мен аны туура эмес жайгаштырып жиберүү мүмкүнчүлүгү чоң, унутуу бир жерде
Камдык камдык тутум - жашоону кичине жеңилдетүү үчүн! 3 кадам
Камдык камдык тутум - бул жашоону кичине жеңилдетүү үчүн!: Бул Нускамада сизге сырткы дисктин камдык көчүрмөсүн (мисалы, SD карт, USB Drive ж. толугу менен өзүңүздүн жеке керектөөңүз үчүн колдонуңуз жана жашооңузду дагы оңдоңуз