{"id":86904,"date":"2020-07-01T07:42:30","date_gmt":"2020-07-01T05:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud"},"modified":"2020-07-01T07:42:30","modified_gmt":"2020-07-01T05:42:30","slug":"kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","title":{"rendered":"Si si GitLab ndihmon n\u00eb krijimin e backup-eve p\u00ebr depo t\u00eb m\u00ebdha NextCloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr!<\/p>\n<p><\/p>\n<p>Sot d\u00ebshiroj t\u00eb flas p\u00ebr p\u00ebrvoj\u00ebn ton\u00eb n\u00eb automatizimin e ruajtjes s\u00eb rezervave t\u00eb t\u00eb dh\u00ebnave t\u00eb m\u00ebdha t\u00eb depozitave Nextcloud n\u00eb konfiguracione t\u00eb ndryshme. Un\u00eb punoj si CTO n\u00eb \"Molinia AK\", ku merremi me menaxhimin e konfigurimeve t\u00eb sistemeve IT; p\u00ebr ruajtjen e t\u00eb dh\u00ebnave p\u00ebrdoret Nextcloud, p\u00ebrfshir\u00eb nj\u00eb struktur\u00eb t\u00eb shp\u00ebrndar\u00eb me rezervim.<\/p>\n<p><\/p>\n<p>Problemet q\u00eb rrjedhin nga ve\u00e7orit\u00eb e instalimeve jan\u00eb q\u00eb ka shum\u00eb t\u00eb dh\u00ebna. Versionimi q\u00eb ofron Nextcloud, ruajtja, arsyet subjektive dhe t\u00eb tjera krijojn\u00eb shum\u00eb kopje.<\/p>\n<p><\/p>\n<h2 id=\"predystoriya\">Historia e m\u00ebparshme<\/h2>\n<p><\/p>\n<p>Gjat\u00eb administrimit t\u00eb Nextcloud, del n\u00eb pah problemi i organizimit t\u00eb nj\u00eb ruajtjeje efektive q\u00eb duhet patjet\u00ebr t\u00eb jet\u00eb e kriptuar, pasi t\u00eb dh\u00ebnat jan\u00eb t\u00eb vlefshme.<\/p>\n<p><\/p>\n<p>Ne ofrojm\u00eb opsione p\u00ebr ruajtjen e backups te ne ose te klienti n\u00eb makinat e tij t\u00eb ndara nga Nextcloud, \u00e7ka k\u00ebrkon nj\u00eb qasje fleksibile dhe t\u00eb automatizuar ndaj administrimit.<\/p>\n<p><\/p>\n<p>Ka shum\u00eb klient\u00eb, t\u00eb gjith\u00eb me konfigurime t\u00eb ndryshme, dhe \u00e7do nj\u00ebri n\u00eb platformat e veta dhe me ve\u00e7orit\u00eb e veta. K\u00ebtu, metodika standarde kur e gjith\u00eb platforma ju takon, dhe backups b\u00ebhen nga crontab, nuk funksionon mir\u00eb.<\/p>\n<p><\/p>\n<p>S\u00eb pari, le t\u00eb shohim t\u00eb dh\u00ebnat hyr\u00ebse. Na duhen:<\/p>\n<p><\/p>\n<ul>\n<li>Shkall\u00ebzueshm\u00ebria n\u00eb aspektin e nj\u00eb nodi ose disa. P\u00ebr instalime t\u00eb m\u00ebdha, ne p\u00ebrdorim minio si depo.<\/li>\n<li>T\u00eb jemi n\u00eb dijeni t\u00eb problemeve me ekzekutimin e backup-eve.<\/li>\n<li>Duhet t\u00eb ruajm\u00eb backup te klient\u00ebt dhe\te ne.<\/li>\n<li>T\u00eb zgjidhim shpejt dhe leht\u00eb problemet.<\/li>\n<li>Klient\u00ebt dhe instalimet dallojn\u00eb shum\u00eb nga nj\u00ebri-tjetri \u2014 nuk arrihet nj\u00ebllojshm\u00ebri.<\/li>\n<li>Shpejt\u00ebsia e rikuperimit duhet t\u00eb jet\u00eb minimale n\u00eb dy skenar\u00eb: rikuperimi i plot\u00eb (disaster), nj\u00eb dosje \u2014 e fshir\u00eb gabimisht.<\/li>\n<li>Funksioni i deduplication-it \u00ebsht\u00eb i detyruesh\u00ebm.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Si si GitLab ndihmon n\u00eb krijimin e backup-eve p\u00ebr depo t\u00eb m\u00ebdha NextCloud\" src=\"\/wp-content\/uploads\/2020\/07\/1a0048e3295fef94ddca28e50612e3cb.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb zgjidhur problemin e menaxhimit t\u00eb backup-eve, ne lidhem me GitLab. M\u00eb shum\u00eb n\u00eb lidhje me k\u00ebt\u00eb m\u00eb posht\u00eb. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Sigurisht, nuk jemi t\u00eb par\u00ebt q\u00eb zgjidhim nj\u00eb problem t\u00eb till\u00eb, por na duket se p\u00ebrvoja jon\u00eb praktike e vuajtur mund t\u00eb jet\u00eb e interesant\u00eb dhe jemi t\u00eb gatsh\u00ebm ta ndajm\u00eb at\u00eb.<\/p>\n<p><\/p>\n<p>Duke pasur parasysh se n\u00eb kompanin\u00eb ton\u00eb \u00ebsht\u00eb miratuar politika e opensource, ne k\u00ebrkuam nj\u00eb zgjidhje me kod t\u00eb hapur. N\u00eb k\u00ebmbim, ne ndajm\u00eb zhvillimet tona dhe i publikojm\u00eb ato. P\u00ebr shembull, n\u00eb GitHub ka <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/molnia-com\/nextcloud-safe-trash\">pluginin ton\u00eb p\u00ebr Nextcloud<\/a><\/noindex>, t\u00eb cilin e instalojm\u00eb te klient\u00ebt, duke forcuar ruajtjen e t\u00eb dh\u00ebnave n\u00eb rast t\u00eb fshirjes aksidentale ose t\u00eb q\u00ebllimshme.<\/p>\n<p><\/p>\n<h2 id=\"sredstva-bekapirovaniya\">Mjetet e backup-it<\/h2>\n<p><\/p>\n<p>K\u00ebrkimi i metodave p\u00ebr zgjidhje e filluam me zgjedhjen e mjetit p\u00ebr krijimin e backup-it.<\/p>\n<p><\/p>\n<p>Tar-i i zakonsh\u00ebm + gzip nuk funksionon mir\u00eb \u2014 t\u00eb dh\u00ebnat jan\u00eb t\u00eb dyfishta. Inkremeti shpesh p\u00ebrmban shum\u00eb pak ndryshime n\u00eb fakt, dhe shumica e t\u00eb dh\u00ebnave brenda nj\u00eb skedari p\u00ebrs\u00ebritet.<br \/>\nKa nj\u00eb tjet\u00ebr problem \u2014 redundanca e ruajtjes s\u00eb shp\u00ebrndar\u00eb t\u00eb t\u00eb dh\u00ebnave. Ne p\u00ebrdorim minio dhe t\u00eb dh\u00ebnat e tij n\u00eb parim jan\u00eb t\u00eb tep\u00ebrta. Ose duhej b\u00ebr\u00eb backup p\u00ebrmes vet\u00eb minio \u2013 duke e ngarkuar at\u00eb dhe duke p\u00ebrdorur t\u00eb gjitha lidhjet midis sistemit t\u00eb skedar\u00ebve, dhe \u00e7far\u00eb nuk \u00ebsht\u00eb m\u00eb pak e r\u00ebnd\u00ebsishme, ka rrezik t\u00eb harrohet p\u00ebr disa nd\u00ebrtesa dhe meta-informacione. Ose t\u00eb p\u00ebrdorim deduplikimin.<\/p>\n<p><\/p>\n<p>Mjetet e backup-it me deduplikim ekzistojn\u00eb n\u00eb open source (kan\u00eb qen\u00eb n\u00eb habr\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">artikulli<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/420055\/\">n\u00eb k\u00ebt\u00eb tem\u00eb<\/a><\/noindex>) dhe finalist\u00ebt tan\u00eb u b\u00ebn\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/borgbackup.readthedocs.io\/en\/stable\/\">Borg<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/restic.net\/\">Restic<\/a><\/noindex>. P\u00ebr krahasimin ton\u00eb t\u00eb dy aplikacioneve m\u00eb posht\u00eb, nd\u00ebrsa p\u00ebr tani do t\u00eb flasim se si e organizuam gjith\u00eb skem\u00ebn.<\/p>\n<p><\/p>\n<h2 id=\"upravlenie-sozdaniem-rezervnyh-kopiy\">Menaxhimi i krijimit t\u00eb kopjeve rezerv\u00eb<\/h2>\n<p><\/p>\n<p>Borg dhe Restic jan\u00eb t\u00eb mira, por asnj\u00eb nga produktet nuk ka nj\u00eb mekaniz\u00ebm t\u00eb centralizuar menaxhimi. P\u00ebr q\u00ebllimin e menaxhimit dhe kontrollit ne zgjodh\u00ebm nj\u00eb mjet q\u00eb tashm\u00eb \u00ebsht\u00eb implementuar, pa t\u00eb cilin nuk e imagjinojm\u00eb pun\u00ebn ton\u00eb, p\u00ebrfshir\u00eb automatizimin \u2013 ky \u00ebsht\u00eb CI\/CD i njohur \u2013 GitLab.<\/p>\n<p><\/p>\n<p>Ideja q\u00ebndron n\u00eb k\u00ebt\u00eb: n\u00eb \u00e7do nod\u00eb q\u00eb ruan t\u00eb dh\u00ebna Nextcloud vendoset gitlab-runner. Runner-i nis n\u00eb nj\u00eb orar skenarin q\u00eb mbik\u00ebqyr procesin e backup-it, dhe ai nis Borg ose Restic.<\/p>\n<p><\/p>\n<p>\u00c7far\u00eb mor\u00ebm? Nj\u00eb feedback nga realizimi, kontroll t\u00eb rehatsh\u00ebm mbi ndryshimet, detaje n\u00eb rast t\u00eb gabimit.<\/p>\n<p><\/p>\n<p>Ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/molnia-com\/backup-by-runner\">k\u00ebtu n\u00eb GitHub<\/a><\/noindex> ne kemi publikuar shembuj t\u00eb skenar\u00ebve p\u00ebr detyra t\u00eb ndryshme, dhe ne n\u00eb p\u00ebrfundim e lidh\u00ebm me backup-in jo vet\u00ebm t\u00eb Nextcloud, por edhe t\u00eb shum\u00eb sh\u00ebrbimeve t\u00eb tjera. Atje ndodhet gjithashtu planifikuesi, n\u00ebse nuk doni ta konfiguroni manualisht (e as ne nuk duam) dhe .gitlab-ci.yml<\/p>\n<p><\/p>\n<p>N\u00eb API-n\u00eb e GitLab-it aktualisht nuk ka mund\u00ebsi p\u00ebr t\u00eb ndryshuar koh\u00ebzgjatjen e CI\/CD, dhe ajo \u00ebsht\u00eb e vog\u00ebl. Duhet ta rrisim, themi deri n\u00eb <code>1d<\/code>.<\/p>\n<p><\/p>\n<p>Fatmir\u00ebsisht, GitLab di t\u00eb nis\u00eb jo vet\u00ebm me commit-et, por edhe sipas orarit, kjo \u00ebsht\u00eb pik\u00ebrisht ajo q\u00eb na nevoitet.<\/p>\n<p><\/p>\n<p>Tani p\u00ebr skriptin e mb\u00ebshtjell\u00ebs.<\/p>\n<p><\/p>\n<p>Ne vendos\u00ebm k\u00ebto kushte p\u00ebr k\u00ebt\u00eb skript:<\/p>\n<p><\/p>\n<ul>\n<li>Duhet t\u00eb nis\u00eb si me runner-in, ashtu edhe me duar nga konsola me funksionalitet t\u00eb nj\u00ebjt\u00eb.<\/li>\n<li>Duhen patjet\u00ebr trajtues t\u00eb gabimeve:<\/li>\n<li>return code.<\/li>\n<li>k\u00ebrkimi i nj\u00eb string n\u00eb log. P\u00ebr shembull, p\u00ebr ne nj\u00eb gabim mund t\u00eb jet\u00eb nj\u00eb mesazh q\u00eb programi nuk e konsideron fatale.<\/li>\n<li>Trajtimi i timeout. Koha e ekzekutimit duhet t\u00eb jet\u00eb e arsyeshme.<\/li>\n<li>Na nevojitet nj\u00eb log m\u00eb i detajuar. Por vet\u00ebm n\u00eb rast t\u00eb gabimit.<\/li>\n<li>Gjithashtu, b\u00ebhet nj\u00eb s\u00ebr\u00eb testesh para fillimit.<\/li>\n<li>P\u00ebrfitime t\u00eb vogla p\u00ebr leht\u00ebsim, q\u00eb i kemi gjetur t\u00eb dobishme gjat\u00eb mb\u00ebshtetjes:<\/li>\n<li>Fillimi dhe p\u00ebrfundimi regjistrohen n\u00eb logun e makin\u00ebs lokale. Kjo ndihmon n\u00eb lidhjen e gabimeve t\u00eb sistemit me funksionimin e backupit.<\/li>\n<li>Nj\u00eb pjes\u00eb e logut t\u00eb gabimeve, kur ka, jepet n\u00eb stdout, i gjith\u00eb logu shkruhet n\u00eb nj\u00eb sked\u00eb t\u00eb ve\u00e7ant\u00eb. \u00cbsht\u00eb e leht\u00eb t\u00eb shikoni menj\u00ebher\u00eb n\u00eb CI dhe t\u00eb vler\u00ebsoni gabimin n\u00ebse \u00ebsht\u00eb triviale.<\/li>\n<li>Modet p\u00ebr debuggim.<\/li>\n<\/ul>\n<p><\/p>\n<p>Logu i plot\u00eb ruhet si nj\u00eb artefakt n\u00eb GitLab, n\u00ebse nuk ka gabime, at\u00ebher\u00eb logu fshihet. Skripti shkruhet n\u00eb bash.<\/p>\n<p><\/p>\n<p>\u00c7do propozim dhe v\u00ebrejtje mbi opensource do t'ishim t\u00eb lumtur t'i shqyrtonim \u2014 e mir\u00ebpritur.<\/p>\n<p><\/p>\n<h2 id=\"kak-eto-rabotaet\">Si funksionon kjo<\/h2>\n<p><\/p>\n<p>N\u00eb nod\u00ebn q\u00eb b\u00ebhet backup, nis nj\u00eb runner me ekzekutuesin bash. N\u00eb planifikues n\u00eb nj\u00eb repo t\u00eb ve\u00e7ant\u00eb aktivizohet job CI\/CD. Runner-i nis skriptin si nj\u00eb mb\u00ebshtjell\u00ebs universal p\u00ebr k\u00ebto detyra, n\u00eb t\u00eb kalon verifikime t\u00eb vlefshm\u00ebris\u00eb s\u00eb repository-t t\u00eb backupit, pika t\u00eb montimit dhe gjith\u00e7ka q\u00eb d\u00ebshirojm\u00eb, pastaj realizohet backupimi dhe pastrimi i t\u00eb vjetrit. Backup-i p\u00ebrfundimtar d\u00ebrgohet n\u00eb S3.<\/p>\n<p><\/p>\n<p>Ne punojm\u00eb sipas k\u00ebsaj skeme \u2014 kjo \u00ebsht\u00eb nj\u00eb ofrues i jasht\u00ebm AWS ose nj\u00eb analog rus (kjo \u00ebsht\u00eb m\u00eb e shpejt\u00eb dhe t\u00eb dh\u00ebnat nuk e braktisin RF-in). Ose i instalojm\u00eb klientit nj\u00eb klaster t\u00eb ve\u00e7ant\u00eb minio n\u00eb vendin e tij p\u00ebr k\u00ebto q\u00ebllime. Zakonisht k\u00ebshtu b\u00ebjm\u00eb p\u00ebr arsye sigurie, kur klienti nuk d\u00ebshiron q\u00eb t\u00eb dh\u00ebnat t\u00eb braktisin konturin e tij.<\/p>\n<p><\/p>\n<p>Nuk kemi p\u00ebrdorur funksionin e d\u00ebrgimit t\u00eb backupit p\u00ebrmes ssh. Kjo nuk shton siguri, dhe kapacitetet rrjet\u00ebrore t\u00eb ofruesit S3 jan\u00eb shum\u00eb m\u00eb t\u00eb larta se nj\u00eb makin\u00eb ton\u00eb ssh.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb siguruar nga haker\u00ebt n\u00eb makin\u00ebn lokale \u2014 sepse ai mund t\u00eb fshij\u00eb t\u00eb dh\u00ebnat n\u00eb S3, \u00ebsht\u00eb e domosdoshme t\u00eb aktivizohet versionimi.<br \/>\nBackup-i gjithmon\u00eb e enkripton backup-in.<\/p>\n<p><\/p>\n<p>Borg ka nj\u00eb mod pa enkriptim <code>none<\/code>, por ne e rekomandojm\u00eb kategorikisht q\u00eb t\u00eb mos aktivizohet. N\u00eb k\u00ebt\u00eb mod nuk do t\u00eb ket\u00eb vet\u00ebm enkriptim, por ashtu nuk llogaritet checksum-i i asaj q\u00eb shkruhet, dhe k\u00ebshtu integriteti mund t\u00eb verifikohet vet\u00ebm n\u00eb m\u00ebnyr\u00eb indirekte, n\u00ebp\u00ebrmjet indekseve.<\/p>\n<p><\/p>\n<p>Nj\u00eb kontroll i ve\u00e7ant\u00eb b\u00ebhet p\u00ebr integritetin e backup\u00ebve n\u00eb indekse dhe p\u00ebrmbajtje. Kontrolli zhvillohet ngadal\u00eb dhe p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb, prandaj ne e aktivizojm\u00eb at\u00eb ve\u00e7mas nj\u00eb her\u00eb n\u00eb muaj. Mund t\u00eb zgjas\u00eb disa dit\u00eb.<\/p>\n<p><\/p>\n<h2 id=\"ridmi-na-russkom\">Readme n\u00eb rusisht<\/h2>\n<p><\/p>\n<h3 id=\"osnovnye-funkcii\">Funksionet kryesore<\/h3>\n<p><\/p>\n<ul>\n<li><code>prepare<\/code> p\u00ebrgatitja<\/li>\n<li><code>testcheck<\/code> kontrolli i gatishm\u00ebris\u00eb<\/li>\n<li><code>komand\u00eb kryesore<\/code> komanda baz\u00eb<\/li>\n<li><code>forco postskript<\/code> nj\u00eb funksion q\u00eb ekzekutohet n\u00eb fund ose n\u00eb rast t\u00eb nj\u00eb gabimi. P\u00ebrdoret p\u00ebr t\u00eb \u00e7montuar seksionin.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"service-functions\">Funksionet e sh\u00ebrbimit<\/h3>\n<p><\/p>\n<ul>\n<li><code>cleanup<\/code> shkruajm\u00eb gabimet ose fshijm\u00eb skedarin e logut.<\/li>\n<li><code>kontrollo logun<\/code> parsim logun p\u00ebr t\u00eb gjetur nj\u00eb varg me gabim.<\/li>\n<li><code>kthehu<\/code> menaxhuesi i daljes.<\/li>\n<li><code>kontrollo koh\u00ebn e shkaktuar<\/code> kontrolli p\u00ebr skadimin e koh\u00ebs.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"environment\">Mjedisi<\/h3>\n<p><\/p>\n<ul>\n<li><code>VERBOSE=1<\/code> shfaqim gabimet menj\u00ebher\u00eb n\u00eb ekran (stdout).<\/li>\n<li><code>SAVELOGSONSUCCES=1<\/code> ruaj logun n\u00eb rast suksesi.<\/li>\n<li><code>INIT_REPO_IF_NOT_EXIST=1<\/code> Krijojm\u00eb depo, n\u00ebse ajo nuk ekziston. N\u00eb m\u00ebnyr\u00eb default \u00ebsht\u00eb e \u00e7aktivizuar.<\/li>\n<li><code>SKADIMI I KOH\u00cbS<\/code> koha maksimal p\u00ebr operacionin kryesor. Mund ta vendosni si 'm', 'h' ose 'd' n\u00eb fund.<\/li>\n<\/ul>\n<p><\/p>\n<p>Rekrihimi i kopjeve t\u00eb vjetra. N\u00eb m\u00ebnyr\u00eb default:<\/p>\n<p><\/p>\n<ul>\n<li><code>MBAJ DITORE=7<\/code><\/li>\n<li><code>MBAJ JAVORE=4<\/code><\/li>\n<li><code>MBAJ MUJORE=6<\/code><\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"peremennye-vnutri-skripta\">Variablat brenda skriptit<\/h2>\n<p><\/p>\n<ul>\n<li><code>ERROR_STRING<\/code> \u2014 vargu p\u00ebr kontrollin n\u00eb log p\u00ebr gabim.<\/li>\n<li><code>EXTRACT_ERROR_STRING<\/code> \u2014 shprehje p\u00ebr shfaqjen e vargut n\u00eb rast gabimi.<\/li>\n<li><code>KILL_TIMEOUT_SIGNAL<\/code> \u2014 sinjali p\u00ebr t\u00eb vrar\u00eb n\u00ebse skadon koha.<\/li>\n<li><code>KURSIM<\/code> \u2014 sa shum\u00eb vargje me gabime n\u00eb ekran.<\/li>\n<li><code>COLORMSG<\/code> \u2014 ngjyra e mesazhit (e verdh\u00eb n\u00eb m\u00ebnyr\u00eb default).<\/li>\n<\/ul>\n<p><\/p>\n<p>Ky skript, i quajtur wordpress, ka nj\u00eb em\u00ebr t\u00eb caktuar, dhe karakteristika e tij \u00ebsht\u00eb se ai gjithashtu b\u00ebn backup t\u00eb baz\u00ebs mysql. K\u00ebshtu, mund t\u00eb p\u00ebrdoret p\u00ebr instalime nj\u00ebnive\u00e7are t\u00eb Nexcloud, ku mund t\u00eb b\u00ebhet edhe backup i baz\u00ebs. Leht\u00ebsia nuk \u00ebsht\u00eb vet\u00ebm n\u00eb m\u00ebnyr\u00eb q\u00eb gjith\u00e7ka t\u00eb jet\u00eb n\u00eb nj\u00eb vend, por edhe p\u00ebrmbajtja e baz\u00ebs \u00ebsht\u00eb e af\u00ebrt me p\u00ebrmbajtjen e skedave, pasi diferenca e koh\u00ebs \u00ebsht\u00eb minimale.<\/p>\n<p><\/p>\n<h2 id=\"restic-vs-borg\">Restic vs Borg<\/h2>\n<p><\/p>\n<p>Krahasimi midis Borg dhe Restic \u00ebsht\u00eb gjithashtu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454734\/\">k\u00ebtu n\u00eb Habr\u00e9<\/a><\/noindex>, dhe s'kishim q\u00ebllim t\u00eb b\u00ebnim thjesht nj\u00eb tjet\u00ebr, por tonin. Na interesonte si do t\u00eb dukej ajo n\u00eb t\u00eb dh\u00ebnat tona, me specifikat tona. Ne i paraqesim.<\/p>\n<p><\/p>\n<p>Kriteret tona t\u00eb zgjedhjes, p\u00ebrve\u00e7 atyre q\u00eb u p\u00ebrmend\u00ebn tashm\u00eb (deduplication, rikuperim t\u00eb shpejt\u00eb etj.):<\/p>\n<p><\/p>\n<ul>\n<li>Q\u00ebndrueshm\u00ebria ndaj pun\u00ebs s\u00eb nd\u00ebrprer\u00eb. Kontrollimi p\u00ebr kill -9.<\/li>\n<li>Madh\u00ebsia n\u00eb disk.<\/li>\n<li>K\u00ebrkesat p\u00ebr burime (CPU, memorie).<\/li>\n<li>Madh\u00ebsia e blloqeve t\u00eb ruajtura.<\/li>\n<li>Puna me S3.<\/li>\n<li>Kontrolli i integritetit.<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00ebr testim mor\u00ebm nj\u00eb klient me t\u00eb dh\u00ebna reale dhe nj\u00eb madh\u00ebsi totale prej 1,6Tb.<br \/>\nKushtet.<\/p>\n<p><\/p>\n<p>Borg nuk di t\u00eb punoj\u00eb drejtp\u00ebrdrejt me S3, prandaj e montuam si disk fuse, p\u00ebrmes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kahing\/goofys\">goofys<\/a><\/noindex>. Restic d\u00ebrgoi n\u00eb S3 vet\u00eb.<\/p>\n<p><\/p>\n<p>Goofys punon shum\u00eb shpejt dhe mir\u00eb, dhe ka <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kahing\/catfs\">modulin e caches disk<\/a><\/noindex>, q\u00eb gjithashtu e p\u00ebrshpejton pun\u00ebn. Ai \u00ebsht\u00eb n\u00eb faz\u00ebn beta, por, t\u00eb pranoj, kishte r\u00ebnien me humbje t\u00eb t\u00eb dh\u00ebnave n\u00eb testet (t\u00eb tjera). Por leht\u00ebsia \u00ebsht\u00eb se vet\u00eb procedura e backup-it nuk k\u00ebrkon shum\u00eb lexim, p\u00ebrkundrazi shkrim, prandaj cache-in e p\u00ebrdorim vet\u00ebm gjat\u00eb kontrollit t\u00eb integritetit.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb reduktuar ndikimin e rrjetit, p\u00ebrdor\u00ebm nj\u00eb ofrues vendor \u2014 Yandex Cloud.<\/p>\n<p><\/p>\n<p>Rezultatet e testimit t\u00eb krahasimit.<\/p>\n<p><\/p>\n<ul>\n<li>Kill -9 me rinisje m\u00eb pas, t\u00eb dy kaluan me sukses.<\/li>\n<li>Madh\u00ebsia n\u00eb disk. Borg di t\u00eb kompresoj\u00eb, prandaj rezultatet jan\u00eb t\u00eb pritura.<\/li>\n<\/ul>\n<p><\/p>\n<p>Backuper<br \/>\nMadh\u00ebsia<\/p>\n<p>Borg<br \/>\n562Gb<\/p>\n<p>Restic<br \/>\n628Gb<\/p>\n<p><\/p>\n<ul>\n<li>P\u00ebr CPU<br \/>\nBorg vet\u00eb shpenzon pak, me kompresim t\u00eb parazgjedhur, por duhet vler\u00ebsuar s\u00eb bashku me procesin goofys. N\u00eb p\u00ebrmbledhje, ato jan\u00eb t\u00eb krahasueshme dhe konsumojn\u00eb rreth 1.2 b\u00ebrthama n\u00eb nj\u00eb makin\u00eb virtuale t\u00eb testimit t\u00eb nj\u00ebjt\u00eb.<\/li>\n<li>Memoria. Restic rreth 0,5Gb, Borg rreth 200Mb. Por k\u00ebto jan\u00eb t\u00eb padukshme n\u00eb krahasim me keshtjen e skedar\u00ebve t\u00eb sistemit. Prandaj, \u00ebsht\u00eb mir\u00eb t\u00eb alokoni m\u00eb shum\u00eb memorie.<\/li>\n<li>Dallimi n\u00eb madh\u00ebsin\u00eb e blob\u00ebve rezultoi t\u00eb ishte madhor.<\/li>\n<\/ul>\n<p><\/p>\n<p>Backuper<br \/>\nMadh\u00ebsia<\/p>\n<p>Borg<br \/>\nrreth 500Mb<\/p>\n<p>Restic<br \/>\nrreth 5Mb<\/p>\n<p><\/p>\n<ul>\n<li>Puna me S3 nga Restic \u00ebsht\u00eb e shk\u00eblqyer. Puna e Borg me goofys nuk ka probleme, por \u00ebsht\u00eb v\u00ebn\u00eb re se \u00ebsht\u00eb mir\u00eb t\u00eb b\u00ebni umount pas p\u00ebrfundimit t\u00eb rezervimit p\u00ebr t\u00eb shkelur plotesisht keshtjen. Ve\u00e7oria e pun\u00ebs S3 \u00ebsht\u00eb se copat e pap\u00ebrfunduara kurr\u00eb nuk do t\u00eb d\u00ebrgohen n\u00eb bucket, dhe kjo do t\u00eb thot\u00eb se t\u00eb dh\u00ebnat q\u00eb nuk jan\u00eb plot\u00ebsisht ngarkuar rezultojn\u00eb n\u00eb d\u00ebmtime t\u00eb m\u00ebdha.<\/li>\n<li>Kontrolli i integritetit funksionon mir\u00eb n\u00eb t\u00eb dy rastet, por shpejt\u00ebsia ndryshon ndjesh\u00ebm.<br \/>\nRestic \u2013 <strong>3.5 or\u00eb<\/strong>.<br \/>\nBorg, me keshtjen e skedar\u00ebve 100Gb SSD \u2013 <strong>5 or\u00eb<\/strong>. Rezultati \u00ebsht\u00eb p\u00ebraf\u00ebrsisht i nj\u00ebjt\u00eb n\u00eb shpejt\u00ebsi n\u00ebse t\u00eb dh\u00ebnat jan\u00eb n\u00eb diskun lokal.<br \/>\nBorg lexon direkt nga S3 pa kesht\u00eb <strong>33 or\u00eb<\/strong>. M\u00eb t\u00eb ngadalta.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb p\u00ebrfundim, Borg di t\u00eb kompresoj\u00eb dhe ka blob\u00eb m\u00eb t\u00eb m\u00ebdhenj \u2014 \u00e7ka e b\u00ebn ruajtjen dhe operacionet GET\/PUT n\u00eb S3 m\u00eb t\u00eb lira. Por p\u00ebr k\u00ebt\u00eb duhet t\u00eb paguash me nj\u00eb verifikim m\u00eb t\u00eb komplikuar dhe m\u00eb t\u00eb ngadalsh\u00ebm. Sa i p\u00ebrket shpejt\u00ebsis\u00eb s\u00eb rikuperimit \u2014 nuk e v\u00ebrejm\u00eb ndonj\u00eb diferenc\u00eb. Rezervimet pas s\u00eb par\u00ebs (pas s\u00eb par\u00ebs) restic i b\u00ebn pak m\u00eb t\u00eb gjat\u00eb, por jo dometh\u00ebn\u00ebse.<\/p>\n<p><\/p>\n<p>Nj\u00eb nga arsyet kryesore p\u00ebr zgjedhjen ishte madh\u00ebsia e komunitetit.<\/p>\n<p><\/p>\n<p>Dhe ne zgjodh\u00ebm borg.<\/p>\n<p><\/p>\n<h2 id=\"paru-slov-o-szhatii\">Disa fjal\u00eb p\u00ebr kompresimin<\/h2>\n<p><\/p>\n<p>Borg ka n\u00eb arsenalin e tij nj\u00eb algorit\u00ebm t\u00eb shk\u00eblqyer t\u00eb kompresimit \u2014 zstd. N\u00eb cil\u00ebsin\u00eb e kompresimit nuk \u00ebsht\u00eb m\u00eb keq se gzip, por \u00ebsht\u00eb shum\u00eb m\u00eb i shpejt\u00eb. Dhe \u00ebsht\u00eb i krahasuesh\u00ebm n\u00eb shpejt\u00ebsi me lz4 t\u00eb parazgjedhur.<\/p>\n<p><\/p>\n<p>P\u00ebr shembull, dump-i i baz\u00ebs s\u00eb t\u00eb dh\u00ebnave MySQL kompresohet dy her\u00eb m\u00eb mir\u00eb se lz4 me t\u00eb nj\u00ebjt\u00ebn shpejt\u00ebsi. Megjithat\u00eb, p\u00ebrvoja me t\u00eb dh\u00ebna reale tregon se ka nj\u00eb diferenc\u00eb shum\u00eb t\u00eb vog\u00ebl n\u00eb grad\u00ebn e kompresimit t\u00eb nod\u00ebs Nextcloud.<\/p>\n<p><\/p>\n<p>N\u00eb Borg ka nj\u00eb mod t\u00eb bonusit t\u00eb kompresimit \u2014 n\u00ebse skedari ka entropi t\u00eb madhe, at\u00ebher\u00eb kompresimi nuk aplikohet fare, \u00e7ka rrit shpejt\u00ebsin\u00eb e pun\u00ebs. Aktivizohet me opsionin gjat\u00eb krijimit<br \/>\n<code>-C auto,zstd<\/code><br \/>\np\u00ebr algoritmin zstd<br \/>\nK\u00ebshtu me k\u00ebt\u00eb opsion n\u00eb krahasim me kompresimin sipas parazgjedhjes kemi arritur<br \/>\n560Gb dhe 562Gb p\u00ebrkat\u00ebsisht. T\u00eb dh\u00ebnat nga shembulli m\u00eb sip\u00ebr, le t\u00eb kujtojm\u00eb, pa kompresim rezultoi 628Gb. Rezultati me 2Gb diferenc\u00eb na \u00e7uditi pak, por vendos\u00ebm q\u00eb ta zgjedhim gjithsesi. <code>auto,zstd<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"metodika-proverki-bekapa\">Metodologjia e kontrollit t\u00eb backup-it<\/h2>\n<p><\/p>\n<p>Virtualka e nisur nga planifikuesi p\u00ebrfundon direkt te ofruesi ose te klienti, \u00e7ka ul ndjesh\u00ebm ngarkes\u00ebn n\u00eb rrjet. T\u00eb pakt\u00ebn \u00ebsht\u00eb m\u00eb lir\u00eb se sa t\u00eb nisim nj\u00eb nga vetja dhe t\u00eb d\u00ebrgojm\u00eb trafik.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">goofys --cache \"--free:5%:\/mnt\/cache\" -o allow_other --endpoint https:\/\/storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com \/mnt\/goofys\nexport BORG_PASSCOMMAND=\"cat \/home\/borg\/.borg-passphrase\"\nborg list \/mnt\/goofys\/borg1\/\nborg check --debug -p --verify-data \/mnt\/goofys\/borg1\/<\/code><\/pre>\n<p><\/p>\n<p>Me t\u00eb nj\u00ebjtin sistem ne kontrollojm\u00eb skedar\u00ebt me antivirus (postfactum). P\u00ebrdoruesit ngarkojn\u00eb t\u00eb ndryshme n\u00eb Nextcloud dhe jo t\u00eb gjith\u00eb kan\u00eb antivirus. T\u00eb kryesh kontrollin n\u00eb momentin e ngarkimit merr shum\u00eb koh\u00eb dhe pengon biznesin.<\/p>\n<p><\/p>\n<p>Shkall\u00ebzimi arrihet duke nxitur runner-at n\u00eb node t\u00eb ndryshme me etiketat p\u00ebrkat\u00ebse.<br \/>\nN\u00eb monitorimin ton\u00eb mbledhim statuset e backup-eve p\u00ebrmes API GitLab n\u00eb nj\u00eb dritare, n\u00ebse \u00ebsht\u00eb e nevojshme problemet shihen leht\u00ebsisht dhe gjithashtu lokalizohen me leht\u00ebsi.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">P\u00ebrfundim<\/h2>\n<p><\/p>\n<p>Si rezultat, ne e dim\u00eb me siguri q\u00eb backup-et i krijojm\u00eb, q\u00eb backup-et tan\u00eb jan\u00eb valide, problemet q\u00eb ndodhin me to jan\u00eb t\u00eb shpejta p\u00ebr t'u zgjidhur dhe menaxhohen n\u00eb nivelin e administratorit t\u00eb turnit. Backup-et realisht z\u00ebn\u00eb pak hap\u00ebsir\u00eb krahasuar me tar.gz ose Bacula.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508758\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0421\u0422\u041e \u0432 \u00ab\u041c\u043e\u043b\u043d\u0438\u044f \u0410\u041a\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c IT \u0441\u0438\u0441\u0442\u0435\u043c, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Nextcloud. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86905,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86904","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a GitLab \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 NextCloud | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-01T05:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-01T05:42:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Si GitLab ndihmon n\u00eb krijimin e backup-eve p\u00ebr depozitat e m\u00ebdha NextCloud | ProHoster","description":"P\u00ebrsh\u00ebndetje, Habr! Sot dua t\u00eb flas p\u00ebr p\u00ebrvoj\u00ebn ton\u00eb n\u00eb automatizimin e backup-it t\u00eb t\u00eb dh\u00ebnave t\u00eb m\u00ebdha t\u00eb depozitave Nextcloud n\u00eb konfiguracione t\u00eb ndryshme.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a GitLab \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 NextCloud | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-01T05:42:30+00:00","article:modified_time":"2020-07-01T05:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86904","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:03:54","updated":"2022-10-06 09:05:46","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/86904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=86904"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/86904\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/86905"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=86904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=86904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=86904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}