මෙය විශේෂාංග විස්තර කිරීමට දළ විශ්ලේෂණයකි. Hashget හි සැබෑ භාවිතය (ඉතා සරල) විස්තර කර ඇත
සංසන්දනය
ප්රභේදයේ නීතියට අනුව, මම කුතුහලය සමඟ වහාම ආරම්භ කරමි - ප්රති results ල සංසන්දනය කිරීම:
දත්ත නියැදිය
ඇසුරුම් නොකළ ප්රමාණය
.tar.gz
hashget.tar.gz
WordPress-5.1.1
43 Mb.
11 Mb (26%)
155 Kb ( 0.3% )
Linux කර්නලය 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% )
පරමාදර්ශී සහ ඵලදායී උපස්ථයක් කුමක් විය යුතුද යන්න පිළිබඳ පසුබිම
මම අලුතින් නිර්මාණය කළ අතථ්ය යන්ත්රයක උපස්ථයක් සාදන සෑම අවස්ථාවකම, මම යම්කිසි වැරැද්දක් කරන බවට හැඟීමක් මා තුළ හොල්මන් විය. මගේ මිල කළ නොහැකි, නොනැසී පවතින නිර්මාණශීලීත්වය "Hello world" යන පාඨය සහිත තනි පේළියක index.html වන පද්ධතියෙන් මට විශාල උපස්ථයක් ලැබෙන්නේ ඇයි?
මගේ උපස්ථයේ 16 MB /usr/sbin/mysqld ඇත්තේ ඇයි? මෙම වැදගත් ලිපිගොනුව තබා ගැනීමේ ගෞරවය මේ ලෝකයේ මට තිබිය හැකිද, මම අසමත් වුවහොත් එය මනුෂ්යත්වයට අහිමි වනු ඇත්ද? බොහෝ දුරට නැත. එය ඉතා විශ්වාසදායක ඩේබියන් සේවාදායකයන් මත ගබඩා කර ඇත (විශ්වසනීයත්වය සහ කාලය මට සැපයිය හැකි දේ සමඟ සැසඳිය නොහැක), මෙන්ම අනෙකුත් පරිපාලකයින්ගේ උපස්ථවල (ඒවායින් මිලියන ගණනක්). විශ්වසනීයත්වය වැඩි දියුණු කිරීම සඳහා මෙම වැදගත් ගොනුවේ 10+ 000 වැනි පිටපතක් සෑදීමට අපට අවශ්යද?
පොදුවේ tar -c
/ tar -x
. (වෙනත් වචන වලින් කිවහොත්, මෙය පාඩු රහිත ඇසුරුම්කරණයකි)
Hashget ක්රියා කරන ආකාරය
hashget සතුව පැකේජය සහ HashPackage යන සංකල්ප ඇත, ඔවුන්ගේ උපකාරයෙන් එය අඩුකිරීමක් සිදු කරයි.
පැකේජය (ප්ලාස්ටික් බෑගය). අන්තර්ජාලයෙන් ආරක්ෂිතව බාගත කළ හැකි ගොනුවක් (සාමාන්යයෙන් .deb හෝ .tar.gz සංරක්ෂිතයක්) සහ ගොනු එකක් හෝ කිහිපයක් ලබා ගත හැක.
HashPackage — පැකේජ URL සහ එහි ඇති ගොනු වල හැෂ් එකතුව (sha256) ඇතුළුව, පැකේජයක් නියෝජනය කරන කුඩා JSON ගොනුවක්. උදාහරණයක් ලෙස, 5 megabyte mariadb-server-core පැකේජයක් සඳහා, hashpackage ප්රමාණය කිලෝබයිට් 6 ක් පමණි. දහස් ගුණයකින් පමණ අඩුය.
අනුපිටපත් කිරීම — අනුපිටපත් ගොනු නොමැතිව සංරක්ෂිතයක් නිර්මාණය කිරීම (මූලික පැකේජය බාගත කළ හැක්කේ කොතැනදැයි ඩීඩප්ලිකේටරය දන්නේ නම්, එය සංරක්ෂිතයෙන් අනුපිටපත් අඩු කරයි).
ඇසුරුම්කරණය
ඇසුරුම් කරන විට, ඇසුරුම් කර ඇති බහලුමේ ඇති සියලුම ගොනු පරිලෝකනය කර, ඒවායේ හෑෂ් එකතු කිරීම් ගණනය කරනු ලබන අතර, එම එකතුව දන්නා HashPackage එකක තිබේ නම්, ගොනුව පිළිබඳ පාර-දත්ත (නම, හැෂ්, ප්රවේශ හිමිකම්, ආදිය) සුරකිනු ලැබේ. විශේෂ ගොනුවක .hashget-restore.json, එය ලේඛනාගාරයට ද ඇතුළත් වනු ඇත.
සරලම අවස්ථාවේ දී, ඇසුරුම්කරණය තාර වලට වඩා සංකීර්ණ නොවේ:
hashget -zf /tmp/mybackup.tar.gz --pack /path/to/data
ඉවත් කිරීම
ඉවත් කිරීම අදියර දෙකකින් සිදු කෙරේ. පළමුව සුපුරුදු තාර ඇසිරීම:
tar -xf mybackup.tar.gz -C /path/to/data
ඉන්පසු ජාලයෙන් ප්රතිසාධනය කරන්න:
hashget -u /path/to/data
ප්රතිසාධනය කරන විට, hashget විසින් .hashget-restore.json ගොනුව කියවා, අවශ්ය පැකේජ බාගත කර, ඒවා අසුරා, අවශ්ය ගොනු උපුටා ගනිමින්, අවශ්ය හිමිකරු/කණ්ඩායම/අවසර සහිතව, අවශ්ය මාර්ගවල ඒවා ස්ථාපනය කරයි.
වඩා දුෂ්කර දේවල්
ඉහත විස්තර කර ඇති දේ දැනටමත් “තාර මෙන් අවශ්ය නමුත් මගේ ඩේබියන් මෙගාබයිට් 4කට පැකට් කිරීමට” ප්රමාණවත්ය. වඩාත් සංකීර්ණ දේවල් පසුව බලමු.
සුචිගත කිරීම
Hashget සතුව තනි HashPackage එකක් නොතිබුනේ නම්, එය සරලව කිසිවක් අනුපිටපත් කිරීමට නොහැකි වනු ඇත.
ඔබට HashPackage එකක් අතින් සෑදිය හැක (සරලව: hashget --submit https://wordpress.org/wordpress-5.1.1.zip -p my
), නමුත් වඩාත් පහසු ක්රමයක් තිබේ.
අවශ්ය hashpackage ලබා ගැනීම සඳහා, අදියරක් ඇත සුචිගත කිරීම (එය විධානය සමඟ ස්වයංක්රීයව ක්රියාත්මක වේ --pack
) සහ හූරිස්ටික්ස්. සුචිගත කිරීමේදී, හෑෂ්ජෙට් සෑම ගොනුවක්ම ඒ ගැන උනන්දුවක් දක්වන පවතින සියලුම හූරිස්ටික් වලට “පෝෂණය” කරයි. Heuristics හට HashPackage එකක් සෑදීමට ඕනෑම පැකේජයක් සුචිගත කළ හැක.
උදාහරණයක් ලෙස, Debian heuristic ගොනුව /var/lib/dpkg/status වලට ආදරය කරන අතර ස්ථාපිත debian පැකේජ හඳුනා ගනී, ඒවා සුචිගත කර නොමැති නම් (ඒවා සඳහා HashPackage නිර්මාණය කර නොමැත), ඒවා බාගත කර සුචිගත කරයි. ප්රතිඵලය ඉතා හොඳ ප්රයෝගයකි - නවතම පැකේජ තිබුණත්, Hashget සෑම විටම ඩේබියන් මෙහෙයුම් පද්ධති ඵලදායී ලෙස අඩු කරයි.
ඉඟි ගොනු
ඔබේ ජාලය ඔබේ හිමිකාර පැකේජ භාවිතා කරන්නේ නම් හෝ hashget heuristics හි ඇතුළත් නොවන පොදු පැකේජයක් භාවිතා කරන්නේ නම්, ඔබට එයට සරල hashget-hint.json ඉඟි ගොනුවක් එකතු කළ හැක:
{
"project": "wordpress.org",
"url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}
ඊළඟට, ලේඛනාගාරයක් නිර්මාණය කරන සෑම අවස්ථාවකම, පැකේජය සුචිගත කරනු ලැබේ (එය කලින් නොතිබුනේ නම්), සහ පැකේජ ගොනු සංරක්ෂිතයෙන් අනුපිටපත් කරනු ලැබේ. ක්රමලේඛනය අවශ්ය නොවේ, සෑම දෙයක්ම vim වලින් කළ හැකි අතර සෑම උපස්ථයක්ම සුරැකිය හැක. හැෂ් සම් ප්රවේශයට ස්තූතිවන්ත වන්නට, පැකේජයෙන් සමහර ගොනු දේශීයව වෙනස් කළහොත් (උදාහරණයක් ලෙස, වින්යාස ගොනුවක් වෙනස් කර ඇත), එවිට වෙනස් කරන ලද ගොනු “පවතින පරිදි” සංරක්ෂිතයේ සුරකිනු ඇති අතර ඒවා කප්පාදු නොකරනු ඇත.
ඔබේම පැකේජ සමහරක් කාලානුරූපව යාවත්කාලීන කර ඇත්නම්, නමුත් වෙනස්කම් ඉතා විශාල නොවේ නම්, ඔබට ඉඟි කළ හැක්කේ ප්රධාන අනුවාද සඳහා පමණි. උදාහරණයක් ලෙස, 1.0 අනුවාදයේ ඔවුන් mypackage-1.0.tar.gz වෙත ඉඟියක් ලබා දුන් අතර, එය සම්පූර්ණයෙන්ම අනුකරණය කරනු ඇත, පසුව ඔවුන් 1.1 අනුවාදය නිකුත් කළ අතර එය තරමක් වෙනස් නමුත් ඉඟිය යාවත්කාලීන නොවීය. ඒකට කමක් නැහැ. අනුපිටපත් කරනු ලබන්නේ 1.0 අනුවාදයට ගැලපෙන (ප්රතිසාධනය කළ හැකි) ගොනු පමණි.
හූරිස්ටික් ක්රියා කරන ආකාරය පිළිබඳ අභ්යන්තර යාන්ත්රණය අවබෝධ කර ගැනීම සඳහා ඉඟි ගොනුව සකසන හියුරිස්ටික් හොඳ උදාහරණයකි. එය hashget-hint.json ගොනු (හෝ තිතක් සහිත .hashget-hint.json) පමණක් සකසන අතර අනෙක් සියල්ල නොසලකා හරියි. මෙම ගොනුවෙන්, එය කුමන පැකේජ URL සුචිගත කළ යුතුද යන්න තීරණය කරයි, සහ hashget එය සුචිගත කරයි (එය දැනටමත් එසේ කර නොමැති නම්)
HashServer
උපස්ථ නිර්මාණය කිරීමේදී සම්පූර්ණ සුචිගත කිරීම සිදු කිරීම තරමක් ශ්රම-දැඩි වනු ඇත. මෙය සිදු කිරීම සඳහා, ඔබ එක් එක් පැකේජය බාගත කර, එය ඉවත් කර, එය සුචිගත කළ යුතුය. එබැවින් hashget සමඟ යෝජනා ක්රමයක් භාවිතා කරයි
HashServer යනු යෝජනා ක්රමයේ විකල්ප මූලද්රව්යයකි, තීරණාත්මක නොවේ, එය නිධිය මත බර පැටවීම වේගවත් කිරීමට සහ අඩු කිරීමට පමණක් සේවය කරයි. පහසුවෙන් අබල කළ හැක (විකල්ප --hashserver
පරාමිතීන් නොමැතිව). ඊට අමතරව, ඔබට පහසුවෙන් කළ හැකිය
වර්ධක සහ අවකල උපස්ථ, සැලසුම් කළ යල්පැන
--submit
සහ ඔබ අවසන්! Hashget නිර්මාණය කරන මීළඟ උපස්ථයේ මෙම සංරක්ෂිතයේ ගොනු ඇතුළත් නොවේ.
නමුත් මෙය එතරම් හොඳ ප්රවේශයක් නොවේ, මන්ද එය ප්රතිසාධනය කිරීමේදී අපට සමස්ත ඉතිහාසයේ සියලුම හැෂ්ගෙට් උපස්ථ අදින්නට සිදුවනු ඇති බැවින් (එක් එක් එකකට අවම වශයෙන් එක් අද්විතීය ගොනුවක්වත් තිබේ නම්). මේ සඳහා යාන්ත්රණයක් තිබේ --expires 2019-06-01
, සහ මෙම දිනයෙන් පසු (00:00 සිට), එය භාවිතා නොකෙරේ. මෙම දිනයෙන් පසුව සංරක්ෂිතය මකා දැමිය නොහැක (හැෂ්ජෙට් හට මේ මොහොතේ හෝ ඕනෑම දිනයක දිරාපත් වී ඇති/පහසු වී ඇති සියලුම උපස්ථවල URL පහසුවෙන් පෙන්විය හැක).
උදාහරණයක් ලෙස, අපි 1 වන දින සම්පූර්ණ උපස්ථයක් සාදා එය මාසය අවසන් වන තෙක් ජීවිත කාලය සමඟ සුචිගත කළහොත්, අපට අවකල්ය උපස්ථ ක්රමයක් ලැබෙනු ඇත.
අපි නව උපස්ථ එකම ආකාරයෙන් සුචිගත කළහොත්, වර්ධක උපස්ථ යෝජනා ක්රමයක් ඇත.
සාම්ප්රදායික යෝජනා ක්රම මෙන් නොව, Hashget ඔබට යටින් පවතින මූලාශ්ර කිහිපයක් භාවිතා කිරීමට ඉඩ සලසයි. පෙර උපස්ථ (ඇත්නම්) සහ පොදු ගොනු (බාගත හැකි දේ) වලින් ගොනු අඩු කිරීමෙන් උපස්ථය අඩු කරනු ලැබේ.
කිසියම් හේතුවක් නිසා අපි Debian සම්පත් වල විශ්වසනීයත්වය විශ්වාස නොකරන්නෙමු නම් (
Hashget ඔබේ අභිමතය පරිදි විශ්වාසදායක ප්රතිසාධන මූලාශ්ර මත පමණක් රඳා පවතී. ඔබ විශ්වාස කරන ඒවා භාවිතා කරනු ඇත.
FilePool සහ Glacier
යාන්ත්රණය
$ hashget -u . --pool /tmp/pool
හෝ
$ hashget -u . --pool http://myhashdb.example.com/
දේශීය නාමාවලියක සංචිතයක් සෑදීමට, ඔබට නාමාවලියක් සාදා එයට ගොනු විසි කිරීමට අවශ්ය වේ, හැෂ් භාවිතා කර එයට අවශ්ය දේ හෑෂ්ගෙට් විසින්ම සොයා ගනු ඇත. HTTP හරහා සංචිතයට ප්රවේශ වීමට, ඔබ විශේෂ ආකාරයකින් symlinks සෑදිය යුතුය; මෙය එක් විධානයකින් සිදු කෙරේ (hashget-admin --build /var/www/html/hashdb/ --pool /tmp/pool
) HTTP FilePool යනු ස්ථිතික ගොනු වේ, එබැවින් ඕනෑම සරල වෙබ් සේවාදායකයකට එය සේවය කළ හැකිය, සේවාදායකයේ පැටවීම පාහේ ශුන්ය වේ.
FilePool වලට ස්තූතියි, ඔබට මූලික සම්පත් ලෙස http(s) සම්පත් පමණක් භාවිතා කළ හැක, නමුත්
ග්ලැසියරයට උපස්ථය උඩුගත කිරීමෙන් පසුව, අපි එහි උඩුගත කිරීමේ හැඳුනුම්පත ලබාගෙන එය URL එකක් ලෙස භාවිතා කරමු. උදාහරණ වශයෙන්:
hashget --submit Glacier_Upload_ID --file /tmp/my-glacier-backup.tar.gz --project glacier --hashserver --expires 2019-09-01
දැන් නව (අවකල) උපස්ථ මෙම උපස්ථය මත පදනම් වන අතර කෙටි වනු ඇත. Diffbackup තාර ඉවත් කිරීමෙන් පසුව, එය රඳා පවතින සම්පත් මොනවාදැයි අපට දැක ගත හැක:
hashget --info /tmp/unpacked/ list
මෙම ගොනු සියල්ල ග්ලැසියරයේ සිට තටාකයට බාගත කර සාමාන්ය ප්රතිසාධනය ක්රියාත්මක කිරීමට ෂෙල් ස්ක්රිප්ට් එකක් භාවිතා කරන්න: hashget -u /tmp/unpacked —pool /tmp/pool
ක්රීඩාව ඉටිපන්දම වටිනවාද?
සරලම අවස්ථාවෙහිදී, ඔබ උපස්ථ සඳහා අඩු මුදලක් ගෙවනු ඇත (ඔබ මුදල් සඳහා වලාකුළෙහි කොතැනක හෝ ගබඩා කරන්නේ නම්). සමහර විට බොහෝ, බොහෝ අඩු.
නමුත් එය එකම දෙය නොවේ. ප්රමාණය ගුණාත්මක බවට හැරේ. ඔබගේ උපස්ථ යෝජනා ක්රමයට උසස් තත්ත්වයේ උත්ශ්රේණියක් ලබා ගැනීමට ඔබට මෙය භාවිතා කළ හැක. උදාහරණයක් ලෙස, අපගේ උපස්ථ දැන් කෙටි බැවින්, අපට මාසික උපස්ථ නොව දෛනික ඒවා සෑදිය හැක. ඒවා පෙර මෙන් මාස හයක් නොව වසර 5ක් ගබඩා කරන්න. මීට පෙර, ඔබ එය මන්දගාමී නමුත් ලාභ "සීතල" ගබඩා (ග්ලැසියර්) තුළ ගබඩා කර ඇත, දැන් ඔබට එය උණුසුම් ගබඩා තුළ ගබඩා කළ හැකිය, ඔබට සෑම විටම ඉක්මනින් උපස්ථයක් බාගත කර විනාඩි කිහිපයකින් එය යථා තත්වයට පත් කළ හැකිය, දිනකට නොවේ.
ඔබට උපස්ථ ගබඩාවේ විශ්වසනීයත්වය වැඩි කළ හැකිය. අපි දැනට ඒවා එක් ගබඩා පහසුකමක ගබඩා කරන්නේ නම්, උපස්ථ පරිමාව අඩු කිරීමෙන්, ගබඩා පහසුකම් 2-3 ක ගබඩා කර ඒවායින් එකක් හානි වුවහොත් වේදනා රහිතව ජීවත් වීමට අපට හැකි වේ.
උත්සාහ කර භාවිතා කිරීම ආරම්භ කරන්නේ කෙසේද?
gitlab පිටුවට යන්න pip3 install hashget[plugins]
) සහ ඉක්මන් ආරම්භය කියවා ක්රියාත්මක කරන්න. සියලුම සරල දේවල් කිරීමට මිනිත්තු 10-15 ක් ගතවනු ඇතැයි මම සිතමි. එවිට ඔබට ඔබේ අතථ්ය යන්ත්ර සම්පීඩනය කිරීමට උත්සාහ කළ හැකිය, සම්පීඩනය ශක්තිමත් කිරීමට අවශ්ය නම් ඉඟි ගොනු සාදන්න, ඔබ කැමති නම් තටාක සමඟ සෙල්ලම් කරන්න, දේශීය හැෂ් දත්ත සමුදායක් සහ හැෂ් සේවාදායකයක්, සහ ඊළඟ දවසේ බලන්න වර්ධක උපස්ථයේ ප්රමාණය ඊයේට වඩා ඉහළින් පවතිනු ඇත.
මූලාශ්රය: www.habr.com