He ʻatikala kēia e wehewehe i nā hiʻohiʻona. Ua wehewehe ʻia ka hoʻohana maoli ʻana i ka hashget (maʻalahi loa).
Kūlike
E like me ke kānāwai o ke ʻano, e hoʻomaka koke wau me ka hoʻohālikelike - hoʻohālikelike i nā hopena:
Laʻana ʻikepili
ka nui wehe ʻole ʻia
.tar.gz
hashget.tar.gz
WordPress-5.1.1
43 Mb
11 Mb (26%)
155 Kb ( 0.3% )
Linux nernel 5.0.4
934 Mb
161 Mb (20%)
4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM
724 Mb
165 Mb (23%)
4.1 Mb ( 0.5% )
ʻO ka ʻaoʻao e pili ana i kahi hoʻihoʻi kūpono a kūpono hoʻi
I kēlā me kēia manawa aʻu i hoʻopaʻa ai i kahi mīkini virtual hou i hana ʻia, ua hauʻoli wau i ka manaʻo ua hana hewa wau. No ke aha e loaʻa iaʻu kahi kākoʻo kiʻekiʻe mai ka ʻōnaehana, kahi o kaʻu kumu kumu kūʻai ʻole a pau ʻole he laina hoʻokahi index.html me ka kikokikona "Aloha honua"?
No ke aha he 16 MB /usr/sbin/mysqld i kaʻu waihona? He mea hiki anei ia'u ma keia ao ka hanohano o ka malama ana i keia waihona ko'iko'i, a ina e haule au, lilo ia i kanaka? ʻAʻole paha. Mālama ʻia ia ma nā kikowaena debian hilinaʻi nui (ʻo ka hilinaʻi a me ka hoʻomau ʻana ʻaʻole hiki ke hoʻohālikelike ʻia i ka mea hiki iaʻu ke hāʻawi), a me nā backups (miliona o lākou) o nā admins ʻē aʻe. Pono anei mākou e hana i 10+ kope mua o kēia faila koʻikoʻi e hoʻomaikaʻi i ka hilinaʻi?
ʻO ka maʻamau tar -c
/ tar -x
. (Ma nā huaʻōlelo ʻē aʻe, ʻo kēia ka pahu poho ʻole)
Pehea e hana ai ka hashget
Loaʻa i ka hashget nā manaʻo o Package a me HashPackage, me kā lākou kōkua e hana i ka deduplication.
pūʻolo (eke 'ūlina). He waihona (maʻa mau he .deb a i ʻole .tar.gz waihona) hiki ke hoʻoiho paʻa ʻia mai ka Pūnaewele, a mai kahi a i ʻole nā faila e loaʻa ai.
HashPackage - kahi faila JSON liʻiliʻi e hōʻike ana i kahi Pūʻulu, me ka URL o ka pūʻolo a me nā helu hash (sha256) o nā faila mai ia mea. No ka laʻana, no kahi pūʻolo mariadb-server-core 5 megabyte, ʻo ka nui o ka hashpackage he 6 kilobytes wale nō. Ma kahi o hoʻokahi tausani manawa i emi iho.
Hoʻopau hou - ka hana ʻana i kahi waihona me ka ʻole o nā faila ʻelua (inā ʻike ka dedulicator i kahi e hoʻoiho ʻia ai ka pūʻolo kumu, hoʻemi ia i nā kope mai ka waihona).
Hoʻopili ʻia
I ka hoʻopaʻa ʻana, nānā ʻia nā faila a pau mai ka papa kuhikuhi i hoʻopaʻa ʻia, helu ʻia kā lākou mau helu hash, a inā ʻike ʻia ka huina ma kekahi o nā HashPackages i ʻike ʻia, a laila mālama ʻia nā metadata e pili ana i ka faila (inoa, hash, kuleana komo, etc.) ma kahi faila kūikawā .hashget-restore.json, e hoʻokomo pū ʻia i loko o ka waihona.
I ka hihia maʻalahi, ʻaʻole i ʻoi aku ka paʻakikī o ka paʻi ma mua o ka tar:
hashget -zf /tmp/mybackup.tar.gz --pack /path/to/data
Unpacking
Hana ʻia ka wehe ʻana i ʻelua mau ʻāpana. ʻO ka wehe mua ʻana i ka tar maʻamau:
tar -xf mybackup.tar.gz -C /path/to/data
a laila hoʻihoʻi mai ka pūnaewele:
hashget -u /path/to/data
I ka hoʻihoʻi ʻana, heluhelu ʻo hashget i ka faila .hashget-restore.json, hoʻoiho i nā pūʻolo pono, wehe iā lākou, a wehe i nā faila pono, e hoʻokomo iā lākou i nā ala i makemake ʻia, me ka mea nona ka mea pono / hui / ʻae.
ʻOi aku nā mea paʻakikī
Ua lawa ka mea i wehewehe ʻia ma luna nei no ka poʻe "makemake e like me ka tar, akā e hoʻopili i kaʻu Debian i 4 megabytes." E nānā kākou i nā mea paʻakikī ma hope.
Papa kuhikuhi helu
Inā ʻaʻole loaʻa kahi HashPackage hoʻokahi i ka hashget, a laila ʻaʻole hiki iā ia ke wehe i kekahi mea.
Hiki iā ʻoe ke hana i kahi HashPackage me ka lima (maʻalahi: hashget --submit https://wordpress.org/wordpress-5.1.1.zip -p my
), akā aia kahi ala maʻalahi.
I mea e loaʻa ai ka hashpackage pono, aia kahi pae hōʻike helu (Hoʻokō ʻia ia me ke kauoha --pack
) a heuristics. I ka helu ʻana, hashget "feeds" i kēlā me kēia faila i loaʻa i nā heuristic āpau i makemake ʻia. Hiki i nā Heuristics ke kuhikuhi i kēlā me kēia Pūʻulu e hana i kahi HashPackage.
No ka laʻana, makemake ka Debian heuristic i ka faila /var/lib/dpkg/status a ʻike i nā pūʻolo debian i hoʻokomo ʻia, a inā ʻaʻole i kuhikuhi ʻia (ʻaʻohe HashPackage i hana ʻia no lākou), hoʻoiho a kuhikuhi iā lākou. He hopena maikaʻi loa ka hopena - e hoʻopau mau ʻo hashget i nā Debian OSes, ʻoiai inā loaʻa iā lākou nā pūʻulu hou loa.
Nā waihona kuhikuhi
Inā hoʻohana kāu pūnaewele i kekahi o kāu mau pūʻolo waiwai a i ʻole kahi pūʻolo lehulehu ʻaʻole i hoʻokomo ʻia i ka heuristics hashget, hiki iā ʻoe ke hoʻohui i kahi faila hashget-hint.json hint maʻalahi iā ia e like me kēia:
{
"project": "wordpress.org",
"url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}
A laila, i kēlā me kēia manawa i hana ʻia kahi waihona, e kuhikuhi ʻia ka pūʻolo (inā ʻaʻole ia ma mua), a e hoʻopau ʻia nā faila mai ka waihona. ʻAʻole pono ka polokalamu, hiki ke hana i nā mea āpau mai vim a mālama i kēlā me kēia waihona. E ʻoluʻolu e hoʻomaikaʻi i ka hoʻokokoke ʻana o ka hash sum, inā hoʻololi ʻia kekahi mau faila mai ka pōʻai i ka wahi (no ka laʻana, hoʻololi ʻia kahi faila), a laila e mālama ʻia nā faila i hoʻololi ʻia i loko o ka waihona "e like me" a ʻaʻole e ʻoki ʻia.
Inā hōʻano hou ʻia kekahi o kāu mau pūʻolo ponoʻī i kēlā me kēia manawa, akā ʻaʻole nui loa nā loli, hiki iā ʻoe ke kuhikuhi wale no nā mana nui. No ka laʻana, ma ka mana 1.0 ua hana lākou i kahi hōʻailona e kuhikuhi ana i ka mypackage-1.0.tar.gz, a e hoʻopau loa ia, a laila hoʻokuʻu lākou i ka mana 1.1, he ʻokoʻa iki, akā ʻaʻole i hōʻano hou ʻia ka hint. ʻaʻole pilikia. Hoʻopau wale ʻia nā faila i kūlike (hiki ke hoʻihoʻi ʻia i) mana 1.0.
He laʻana maikaʻi ka heuristic e hoʻoponopono ana i ka faila hint no ka hoʻomaopopo ʻana i ke ʻano o loko o ke ʻano o ka hana heuristic. Hana wale ia i nā faila hashget-hint.json (a i ʻole .hashget-hint.json me kahi kiko) a nānā ʻole i nā mea ʻē aʻe. Mai kēia faila, hoʻoholo ʻo ia i ka URL o ka pūʻolo e kuhikuhi ʻia, a kuhikuhi ʻo hashget iā ia (inā ʻaʻole ia i hana pēlā)
HashServer
He mea paʻakikī loa ka hana ʻana i ka helu kuhikuhi piha i ka wā e hana ana i nā waihona. No ka hana ʻana i kēia, pono ʻoe e hoʻoiho i kēlā me kēia pūʻolo, wehe iā ia, a kuhikuhi iā ia. No laila hoʻohana ʻo hashget i kahi hoʻolālā me
ʻO HashServer kahi mea koho o ka papahana, ʻaʻole koʻikoʻi, lawelawe wale ia e wikiwiki a hoʻemi i ka ukana ma nā waihona. Hoʻopaʻa maʻalahi (koho --hashserver
me ka ʻole o nā ʻāpana). Eia hou, hiki iāʻoe ke maʻalahi
Nā waihona hoʻonui a me ka ʻokoʻa, i hoʻolālā ʻia ka obsolescence
--submit
a ua pau ʻoe! ʻAʻole e hoʻokomo ʻia nā faila mai kēia waihona i ka waihona aʻe a hashget i hana ai.
Akā ʻaʻole kēia he ala maikaʻi loa, no ka mea, i ka wā e hoʻihoʻi ai, pono mākou e huki i nā backup hashget āpau i ka mōʻaukala holoʻokoʻa (inā loaʻa i kēlā me kēia ma kahi o hoʻokahi faila kūʻokoʻa). Aia kekahi mīkini no kēia --expires 2019-06-01
, a ma hope o kēia lā (mai 00:00), ʻaʻole ia e hoʻohana. ʻAʻole hiki ke hoʻopau ʻia ka waihona ponoʻī ma hope o kēia lā (ʻOiai hiki i ka hashget ke hōʻike maʻalahi i nā URL o nā backup āpau i popopo i kēia manawa a i kekahi lā).
No ka laʻana, inā mākou e hana i kahi hoʻihoʻi piha ma ka 1st a kuhikuhi iā ia me ke ola a hiki i ka hopena o ka mahina, e loaʻa iā mākou kahi hoʻolālā kākoʻo ʻokoʻa.
Inā mākou e kuhikuhi i nā mea hoʻihoʻi hou ma ke ʻano like, e loaʻa kahi hoʻolālā o nā waihona hoʻohui.
ʻAʻole like me nā papahana kuʻuna, hiki i ka hashget ke hoʻohana i nā kumu kumu kumu. E hoʻemi ʻia ka waihona ma o ka hoʻemi ʻana i nā faila mai nā backup mua (inā loaʻa) a me nā faila lehulehu (he aha ka mea hiki ke hoʻoiho ʻia).
Inā no kekahi kumu ʻaʻole mākou e hilinaʻi i ka hilinaʻi o nā kumuwaiwai Debian (
Ke hilinaʻi wale nei ʻo Hashget i nā kumu hoʻihoʻi hilinaʻi ma kou manaʻo. E hoʻohana ʻia nā mea āu e manaʻo ai he hilinaʻi.
FilePool a me Glacier
Hana
$ hashget -u . --pool /tmp/pool
ai ole ia,
$ hashget -u . --pool http://myhashdb.example.com/
No ka hana ʻana i loko o kahi papa kuhikuhi kūloko, pono ʻoe e hana i kahi papa kuhikuhi a hoʻolei i nā faila i loko, ʻo hashget ponoʻī e ʻike i ka mea e pono ai me ka hoʻohana ʻana i nā hashes. I mea e hiki ai ke komo i ka loko ma o HTTP, pono ʻoe e hana i nā symlinks ma kahi ala kūikawā; hana ʻia kēia me hoʻokahi kauoha (hashget-admin --build /var/www/html/hashdb/ --pool /tmp/pool
). ʻO HTTP FilePool ponoʻī nā faila static, no laila hiki i kēlā me kēia kikowaena pūnaewele maʻalahi ke lawelawe iā ia, ʻaneʻane ʻole ka ukana ma ke kikowaena.
Mahalo iā FilePool, hiki iā ʻoe ke hoʻohana ʻaʻole wale nā kumu waiwai http (s) ma ke ʻano he kumu kumu, akā pū kekahi
Ma hope o ka hoʻouka ʻana i ka waihona i ka glacier, loaʻa iā mākou kāna Upload ID a hoʻohana iā ia ma ke ʻano he URL. ʻo kahi laʻana:
hashget --submit Glacier_Upload_ID --file /tmp/my-glacier-backup.tar.gz --project glacier --hashserver --expires 2019-09-01
I kēia manawa e hoʻokumu ʻia nā waihona hou (ʻokoʻa) ma luna o kēia waihona a ʻoi aku ka pōkole. Ma hope o ka wehe ʻana i ka diffbackup, ʻike mākou i nā kumuwaiwai e hilinaʻi nei:
hashget --info /tmp/unpacked/ list
a e hoʻohana wale i kahi hōʻailona shell e hoʻoiho i kēia mau faila mai Glacier a i ka loko wai a holo i ka hoʻihoʻi maʻamau: hashget -u /tmp/unpacked —pool /tmp/pool
Pono anei ka pāʻani i ke kukui?
Ma ka hihia maʻalahi, e uku liʻiliʻi ʻoe no nā backup (inā mālama ʻoe iā lākou ma kahi o ke ao no ke kālā). Nui paha, emi mai.
Akā ʻaʻole ʻo ia wale nō ka mea. Huli ka nui i ka maikaʻi. Hiki iā ʻoe ke hoʻohana i kēia no ka loaʻa ʻana o kahi hoʻonui kiʻekiʻe i kāu hoʻolālā hoʻihoʻi. No ka laʻana, no ka pōkole o kā mākou waihona, ʻaʻole hiki iā mākou ke hana i nā hoʻopaʻa mahina, akā i kēlā me kēia lā. E mālama iā lākou ʻaʻole no ʻeono mahina, e like me ka wā ma mua, akā no 5 mau makahiki. Ma mua, ua mālama ʻoe iā ia i loko o kahi waihona "anu" lohi a maʻalahi (Glacier), i kēia manawa hiki iā ʻoe ke mālama iā ia i loko o kahi mālama wela, kahi e hiki ai iā ʻoe ke hoʻoiho koke i kahi waihona a hoʻihoʻi iā ia i nā minuke, ʻaʻole i ka lā.
Hiki iā ʻoe ke hoʻonui i ka hilinaʻi o ka waihona waihona. Inā mākou e mālama iā lākou i loko o hoʻokahi hale mālama, a laila ma ka hoʻemi ʻana i ka nui o nā waihona, hiki iā mākou ke mālama iā lākou i loko o 2-3 mau hale mālama a ola me ka ʻeha ʻole inā e pōʻino kekahi o lākou.
Pehea e ho'āʻo ai a hoʻomaka e hoʻohana?
E hele i ka ʻaoʻao gitlab pip3 install hashget[plugins]
) a heluhelu wale a hoʻokō i ka hoʻomaka wikiwiki. Manaʻo wau he 10-15 mau minuke e hana i nā mea maʻalahi a pau. A laila hiki iā ʻoe ke hoʻāʻo e hoʻopaʻa i kāu mau mīkini virtual, hana i nā faila hint inā pono e hoʻoikaika i ka hoʻopili ʻana, pāʻani me nā loko, kahi waihona hash kūloko a me kahi server hash inā makemake ʻoe, a i ka lā aʻe e ʻike i ka nui o ka waihona hoʻonui. ma luna o ko nehinei.
Source: www.habr.com