Π‘ΠΊΡŠΡΠ΅Ρ‚Π΅ Π±Π΅ΠΊΡŠΠΏΠΈΡ‚Π΅ с 99.5% с hashget

hashget β€” Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½, ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€, която Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈΡ‚Π΅ копия, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° схСми Π·Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎ ΠΈ Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π½Π΅ само.

Π’ΠΎΠ²Π° Π΅ ΠΎΠ±Π·ΠΎΡ€Π½Π° статия Π·Π° описаниС Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅. Π‘Π°ΠΌΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° hashget (доста просто) Π΅ описано Π² README ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ wiki-докумСнтацията.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅

Π‘ΠΏΠΎΡ€Π΅Π΄ Танровия Π·Π°ΠΊΠΎΠ½, Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с ΠΈΠ½Ρ‚Ρ€ΠΈΠ³Π°Ρ‚Π° β€” сравняванС Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π”Π°Π½Π½ΠΈ
Ρ€Π°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€
.tar.gz
hashget .tar.gz

WordPress-5.1.1
43 Mb
11 Mb ( 26% )
155 Kb ( 0.3% )

Linux kernel 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% )

ΠŸΡ€Π΅Π΄ΠΈΡΡ‚ΠΎΡ€ΠΈΡ, какъв трябва Π΄Π° бъдС идСалният ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ бСкъп

ВсСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π°Π²Π΅Ρ… бСкъп Π½Π° новосъздадСна Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Π½Π΅ ΠΌΠ΅ Π½Π°ΠΏΡƒΡΠΊΠ°ΡˆΠ΅ усСщанСто, Ρ‡Π΅ Π½Π΅Ρ‰ΠΎ правя Π½Π΅ Ρ‚Π°ΠΊΠ°. Π—Π°Ρ‰ΠΎ ΠΈΠΌΠ°ΠΌ обСмист бСкъп ΠΎΡ‚ систСма, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠ΅Ρ‚ΠΎ Π±Π΅Π·Ρ†Π΅Π½Π½ΠΎ Π½Π΅Ρ‚Π»Π΅Π½Π½ΠΎ творчСство Π΅ СдинствСният index.html с тСкста "Π—Π΄Ρ€Π°Π²Π΅ΠΉ свят"?

Π—Π°Ρ‰ΠΎ Π² моя бСкъп ΠΈΠΌΠ° 16-ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² /usr/sbin/mysqld? НС ΠΌΠΈ Π»ΠΈ сС ΠΏΠ°Π΄Π½Π° чСстта Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌ Ρ‚ΠΎΠ·ΠΈ Π²Π°ΠΆΠ΅Π½ Ρ„Π°ΠΉΠ», ΠΈ Π°ΠΊΠΎ Π½Π΅ сС справя β€” Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС Π·Π°Π³ΡƒΠ±Π΅Π½ Π·Π° човСчСството? Най-вСроятно Π½Π΅. Π’ΠΎΠΉ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π½Π° високо Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° debian (надСТдността ΠΈ бСзпроблСмността Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС сравняват с Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠ³Π° Π΄Π° осигуря Π°Π·), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия (ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΎΡ‚ тях) Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ администратори. НуТно Π»ΠΈ Π΅ Π΄Π° създавамС 10 000 000 + 1-Π²Π° копия Π½Π° Ρ‚ΠΎΠ·ΠΈ Π²Π°ΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» Π·Π° повишаванС Π½Π° надСТдността?

По ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ hashget Ρ€Π΅ΡˆΠ°Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ΠŸΡ€ΠΈ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ β€” Ρ‚ΠΎΠΉ създава ΠΌΠ½ΠΎΠ³ΠΎ малък бСкъп. ΠŸΡ€ΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ β€” напълно Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠ²Π°Π½Π° систСма, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π½Π° Ρ‚Π°Π·ΠΈ, която Π±ΠΈ Π±ΠΈΠ»Π° ΠΏΡ€ΠΈ tar -c / tar -x. (Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, Ρ‚ΠΎΠ²Π° Π΅ Π±Π΅Π·Π·Π°Π³ΡƒΠ±Π½Π° компрСсия)

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ hashget

Π’ hashget ΠΈΠΌΠ° понятия Package ΠΈ HashPackage, с тяхна ΠΏΠΎΠΌΠΎΡ‰ Ρ‚ΠΎΠΉ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° дСдупликация.

Package (ΠΏΠ°ΠΊΠ΅Ρ‚). Π€Π°ΠΉΠ» (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π°Ρ€Ρ…ΠΈΠ² .deb ΠΈΠ»ΠΈ .tar.gz), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ бСзопасно Π΄Π° бъдС свалСн ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

HashPackage β€” малък JSON Ρ„Π°ΠΉΠ», прСдставляващ Package, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ URL Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Ρ…Π΅Ρˆ-сумитС (sha256) Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ. НапримСр, Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° mariadb-server-core с Ρ€Π°Π·ΠΌΠ΅Ρ€ 5 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° hashpackage Π΅ само 6 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°. ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ хиляда ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ.

ДСдупликация β€” създаванС Π½Π° Π°Ρ€Ρ…ΠΈΠ² Π±Π΅Π· Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (Π°ΠΊΠΎ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π·Π½Π°Π΅, ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС свалСн оригиналният ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΠΎΠΉ намалява Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΈΡ‚Π΅ Π² Π°Ρ€Ρ…ΠΈΠ²Π°).

Π—Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°

ΠŸΡ€ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ сС ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ опакования ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, изчисляват сС Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Ρ…Π΅Ρˆ стойности ΠΈ Π°ΠΊΠΎ стойността бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π° Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ извСстнитС HashPackage, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° Ρ„Π°ΠΉΠ»Π° (ΠΈΠΌΠ΅, Ρ…Π΅Ρˆ, ΠΏΡ€Π°Π²Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ Ρ‚.Π½.) сС Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ Π² спСциалСн Ρ„Π°ΠΉΠ» .hashget-restore.json, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‰Π΅ бъдС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π°Ρ€Ρ…ΠΈΠ²Π°.

Π‘Π°ΠΌΠΎΡ‚ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π² Π½Π°ΠΉ-простия случай ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π΅ ΠΏΠΎ-слоТно ΠΎΡ‚ tar:

hashget -zf /tmp/mybackup.tar.gz --pack /path/to/data

Π Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅

Π Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² Π΄Π²Π° Π΅Ρ‚Π°ΠΏΠ°. ΠŸΡŠΡ€Π²ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ tar Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅:

tar -xf mybackup.tar.gz -C /path/to/data

слСд Ρ‚ΠΎΠ²Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°:

hashget -u /path/to/data

ΠŸΡ€ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ hashget Ρ‡Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° .hashget-restore.json, изтСгля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Π³ΠΈ ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, установявайки Π³ΠΈ Π½Π° Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ мСста, с Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ owner/group/permissions.

По-слоТни Π½Π΅Ρ‰Π°

Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ описано ΠΏΠΎ-Π³ΠΎΡ€Π΅ β€” Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π·Π° Ρ‚Π΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌ Π΅ "искам ΠΊΠ°Ρ‚ΠΎ tar, Π½ΠΎ Π΄Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π° моя Debian Π² 4 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°". По-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-слоТни Π½Π΅Ρ‰Π°.

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€Π°Π½Π΅

Ако hashget ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ нямашС Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ HashPackage, Ρ‚ΠΎΠΉ просто нямашС Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€Π° Π½ΠΈΡ‰ΠΎ.

Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° HashPackage ΠΌΠΎΠΆΠ΅ Π΄Π° станС ΠΈ Ρ€ΡŠΡ‡Π½ΠΎ (просто: hashget --submit https://wordpress.org/wordpress-5.1.1.zip -p my), Π½ΠΎ ΠΈΠΌΠ° ΠΈ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½.

Π—Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ hashpackage, ΠΈΠΌΠ° Π΅Ρ‚Π°ΠΏ индСксиранС (Ρ‚ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС изпълнява ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° --pack) ΠΈ Свристики. ΠŸΡ€ΠΈ индСксиранС hashget "ΠΏΡ€Π΅Π΄Π»Π°Π³Π°" всСки Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Свристики, ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΎ интСрСсуват. ЕвристикитС слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° индСксират някой Package, Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ HashPackage.

НапримСр, дСбиянската Свристика ΠΎΠ±ΠΈΡ‡Π° Ρ„Π°ΠΉΠ»Π° /var/lib/dpkg/status ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° инсталиранитС debian ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈ Π°ΠΊΠΎ Ρ‚Π΅ Π½Π΅ са индСксирани (Π·Π° тях Π½Π΅ са създадСни HashPackage), Π³ΠΈ изтСгля ΠΈ индСксира. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС ΠΌΠ½ΠΎΠ³ΠΎ приятСн Π΅Ρ„Π΅ΠΊΡ‚ β€” hashget Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€Π° дСбиянскитС ОБ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

ЀайловС-подсказки (hintовС)

Ако Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π²ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° някакъв ваш собствСн ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² СвристикитС Π½Π° hashget, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ прост hint-Ρ„Π°ΠΉΠ» hashget-hint.json ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Π΅Ρ†:

{
    "project": "wordpress.org",
    "url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π°, всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС създава Π°Ρ€Ρ…ΠΈΠ², ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Ρ‰Π΅ бъдС индСксиран (Π°ΠΊΠΎ Π½Π΅ Π΅ Π±ΠΈΠ» индСксиран ΠΏΡ€Π΅Π΄ΠΈ) ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΠ²Π°. НС Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, всичко ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΎΡ‚ vim ΠΈ Π΄Π° сС спСсти Π² всяко ΠΊΠΎΠΏΠΈΠ΅. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° с Ρ…Π΅ΡˆΡΡƒΠΌΠΈ, Π°ΠΊΠΎ някои Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ» с конфигурация) β€” Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π² Π°Ρ€Ρ…ΠΈΠ²Π° "ΠΊΠ°ΠΊΡ‚ΠΎ са", Π±Π΅Π· Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΈ.

Ако ваш собствСн ΠΏΠ°ΠΊΠ΅Ρ‚ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ hint само Π·Π° основнитС вСрсии. НапримСр, Π² вСрсия 1.0 Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ hint с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° mypackage-1.0.tar.gz, ΠΈ Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС напълно Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½Π° вСрсия 1.1, която ΠΌΠ°Π»ΠΊΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°, Π° hint Π½Π΅ Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½. Няма Π½ΠΈΡ‰ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ. Π”Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Ρ‚ сС само Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ (ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΡ‚) с вСрсия 1.0.

Евристиката, която ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° hint Ρ„Π°ΠΉΠ»Π° β€” Π΅ Π΄ΠΎΠ±ΡŠΡ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° СвристикитС. Вя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° само Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ hashget-hint.json (ΠΈΠ»ΠΈ .hashget-hint.json с Ρ‚ΠΎΡ‡ΠΊΠ°) ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° всички останали. По Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» сС опрСдСля, ΠΊΠΎΠΉ URL Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° трябва Π΄Π° бъдС индСксиран, Π° hashget Π³ΠΎ индСксира (Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ)

HashServer

Π‘ΠΈ Π±ΠΈΠ»ΠΎ доста Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° напълно индСксиранС. Π—Π° Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС свали всСки ΠΏΠ°ΠΊΠ΅Ρ‚, Π΄Π° сС Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π° ΠΈ индСксира. Π—Π°Ρ‚ΠΎΠ²Π° hashget ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° схСма с HashServer. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° инсталиран debian ΠΏΠ°ΠΊΠ΅Ρ‚, Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ HashPackage, ΠΏΡŠΡ€Π²ΠΎ сС ΠΏΡ€Π°Π²ΠΈ ΠΎΠΏΠΈΡ‚ просто Π΄Π° сС свали HashPackage ΠΎΡ‚ Ρ…Π΅ΡˆΡΡŠΡ€Π²Π΅Ρ€Π°. И само Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ β€” hashget сам сваля ΠΈ Ρ…Π΅ΡˆΠΈΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΈ Π³ΠΎ ΠΊΠ°Ρ‡Π²Π° Π½Π° hashserver, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ слСд Ρ‚ΠΎΠ²Π° hashserver Π΄Π° Π³ΠΎ прСдоставя).

HashServer Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ схСмата, Π½Π΅ Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½, слуТи ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° ускорСниС ΠΈ намаляванС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π°. ЛСсно ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ (с опция --hashserver Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ). ОсвСн Ρ‚ΠΎΠ²Π°, лСсно ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° си Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ собствСн hashserver.

Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ ΠΈ Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия, ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ остаряванС

hashget позволява ΠΌΠ½ΠΎΠ³ΠΎ лСсно Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ схСма Π½Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ ΠΈ Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия.Π—Π°Ρ‰ΠΎ Π΄Π° Π½Π΅ индСксирамС самото Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ (с всички ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅)? Π•Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° --submit ΠΈ всичко Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ! БлСдващият Π±Π΅ΠΊΠ°ΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ създадС hashget, няма Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Π°Ρ€Ρ…ΠΈΠ².

Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ ΠΏΡ€ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Ρ‰Π΅ трябва Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ всички hashget-Π±Π΅ΠΊΠ°ΠΏΠΈ ΠΎΡ‚ цялата история (Π°ΠΊΠΎ във всСки ΠΈΠΌΠ° ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Ρ„Π°ΠΉΠ»). Π—Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ остаряванС Π½Π° Π±Π΅ΠΊΡŠΠΏΠΈΡ‚Π΅. ΠŸΡ€ΠΈ индСксиранС ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ Π΄Π°Ρ‚Π° Π½Π° остаряванС Π½Π° HashPackage --expires 2019-06-01, ΠΈ слСд Π½Π°ΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ Π΄Π°Ρ‚Π° (ΠΎΡ‚ 00:00), Ρ‚ΠΎΠΉ няма Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½. Бамият Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° слСд Ρ‚Π°Π·ΠΈ Π΄Π°Ρ‚Π° (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ hashget ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ URL-адрСситС Π½Π° всички бСкъпи, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΈΠ·Ρ‚Π΅ΠΊΠ»ΠΈ/Ρ‰Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΠ°Ρ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π½Π° всяка Π΄Π°Ρ‚Π°).

НапримСр, Π°ΠΊΠΎ Π½Π° 1-Π²ΠΎ число сС Π½Π°ΠΏΡ€Π°Π²ΠΈ пълСн Π±Π΅ΠΊΠ°ΠΏ ΠΈ Π΄Π° сС индСксира с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ края Π½Π° мСсСца β€” Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ схСма Π½Π° Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π΅Π½ Π±Π΅ΠΊΠ°ΠΏ.

Ако ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° индСксирамС ΠΈ Π½ΠΎΠ²ΠΈΡ‚Π΅ бСкъпи β€” Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ схСма Π½Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ бСкъпи.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ схСми, hashget позволява Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ няколко основни ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°. Π‘Π΅ΠΊΡŠΠΏΡŠΡ‚ Ρ‰Π΅ бъдС ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΠΊΡ€Π°Ρ‰Π°Π²Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ бСкъпи (Π°ΠΊΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΈΠ²Π°), ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС изтСглят).

Ако ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ сС довСрявамС Π½Π° надСТдността Π½Π° Debian рСсурситС (https://snapshot.debian.org/) ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³Π° дистрибуция, ΠΌΠΎΠΆΠ΅ΠΌ просто Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ вСднъТ пълСн Π±Π΅ΠΊΠ°ΠΏ с всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ Π½Π° Π½Π΅Π³ΠΎ (ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΉΠΊΠΈ хСвристиката). Π‘Π΅Π³Π°, Π°ΠΊΠΎ всички ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ дистрибуции сС ΠΎΠΊΠ°ΠΆΠ°Ρ‚ Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ (Π² сувСнирния Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π·ΠΎΠΌΠ±ΠΈ апокалипсис), Π½ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ бСкъпи са Π² Ρ€Π΅Π΄ β€” Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ ΠΎΡ‚ всякакъв ΠΊΡ€Π°Ρ‚ΡŠΠΊ Π΄ΠΈΡ„-Π±Π΅ΠΊΠ°ΠΏ, Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΉΠΊΠΈ само Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎ-Ρ€Π°Π½Π½ΠΈ бСкъпи.

Hashget Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° само Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΏΠΎ Π’ΠΠ¨Π•Π’Πž усмотрСниС. ΠšΠ°ΠΊΡ‚ΠΎ смятатС, Ρ‡Π΅ са Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ β€” Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ.

FilePool ΠΈ Glacier

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ FilePool позволява Π΄Π° Π½Π΅ сС ΠΎΠ±Ρ€ΡŠΡ‰Π° постоянно към външни ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π·Π° изтСглянС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΠ°ΠΏΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ hashget -u . --pool /tmp/pool

ΠΈΠ»ΠΈ

$ hashget -u . --pool http://myhashdb.example.com/

Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡƒΠ» Π² Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° дирСктория β€” Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ просто Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ дирСктория ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² нСя, hashget сам ΠΏΠΎ Ρ…Π΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΡƒ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡƒΠ»Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΏΡ€Π΅Π· HTTP, трябва ΠΏΠΎ спСциалСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ симлинковС, Ρ‚ΠΎΠ²Π° става с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° (hashget-admin --build /var/www/html/hashdb/ --pool /tmp/pool). Бамият HTTP FilePool β€” Ρ‚ΠΎΠ²Π° са статични Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС обслуТван ΠΎΡ‚ всСки прост уСбсСрвСр, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΡƒΠ»Π°.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° FilePool ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ основни рСсурси Π½Π΅ само рСсурси Π½Π° http(s), Π½ΠΎ ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Amazon Glacier.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° бСкъпа Π² Π³Π»Π΅Ρ‚Ρ‡Π΅Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ нСговия Upload ID ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ URL. НапримСр:

hashget --submit Glacier_Upload_ID --file /tmp/my-glacier-backup.tar.gz --project glacier --hashserver --expires 2019-09-01

Π‘Π΅Π³Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ (Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ) бСкъпи Ρ‰Π΅ сС основават Π½Π° Ρ‚ΠΎΠ·ΠΈ бСкъп ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΈ. Π‘Π»Π΅Π΄ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° дифСрСнциалния бСкъп ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈ рСсурси сС основава:

hashget --info /tmp/unpacked/ list

ΠΈ просто със shell скрипт Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠΌ ΠΎΡ‚ Π³Π»Π΅Ρ‚Ρ‡Π΅Ρ€Π° всичкитС Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΡƒΠ» ΠΈ Π΄Π° стартирамС ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅: hashget -u /tmp/unpacked --pool /tmp/pool

Π‘Ρ‚Ρ€ΡƒΠ²Π° Π»ΠΈ си усилиСто

Π’ Π½Π°ΠΉ-простия случай β€” просто Ρ‰Π΅ ΠΏΠ»Π°Ρ‰Π°Ρ‚Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π° бСкъпи (Π°ΠΊΠΎ Π³ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ някъдС Π² ΠΎΠ±Π»Π°ΠΊΠ° Π·Π° ΠΏΠ°Ρ€ΠΈ). МоТС Π±ΠΈ β€” ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ.

Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ всичко. ΠšΠ°ΠΊΡ‚ΠΎ количСството ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² качСство. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ качСствСн ΡŠΠΏΠ³Ρ€Π΅ΠΉΠ΄ Π½Π° схСмата Π·Π° бСкъпи. НапримСр, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π±Π΅ΠΊΡŠΠΏΠΈΡ‚Π΅ Π½ΠΈ сСга са ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΈ β€” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π΅ мСсСчСн бСкъп, Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π΅Π½. Π”Π° Π³ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ Π½Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ, Π° 5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠŸΡ€Π΅Π΄ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ…ΠΌΠ΅ Π² Π±Π°Π²Π΅Π½, Π½ΠΎ Π΅Π²Ρ‚ΠΈΠ½ "студСн" Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (Glacier), сСга ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ Π² Π³ΠΎΡ€Π΅Ρ‰ΠΎ, ΠΎΡ‚ ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ бСкъп ΠΈ Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π° Π½Π΅ Π·Π° Π΄Π΅Π½.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ надСТдността Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π΅ΠΊΡŠΠΏΠΈΡ‚Π΅. Ако Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π³ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π² Π΅Π΄Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΎΠ±Π΅ΠΌΠ° Π½Π° Π±Π΅ΠΊΡŠΠΏΠΈΡ‚Π΅ β€” ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π² 2-3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΆΠΈΠ²Π΅Π΅ΠΌ, Π°ΠΊΠΎ Π΅Π΄Π½ΠΎ ΠΎΡ‚ тях сС ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ.

Как Π΄Π° ΠΏΡ€ΠΎΠ±Π²Π°Ρ‚Π΅ ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅?

Π’Π»ΠΈΠ·Π°Ρ‚Π΅ Π½Π° страницата Π½Π° GitLab https://gitlab.com/yaroslaff/hashget, инсталиратС с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° (pip3 install hashget[plugins]) ΠΈ просто Ρ‡Π΅Ρ‚Π΅ΠΌ-изпълнявамС quick-start. Мисля, Ρ‡Π΅ всичкитС лСсни Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ, Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 10-15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° компрСсирамС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈΡ‚Π΅ си, Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, hint-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π° Π΄Π° сС компрСсират ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅, Π΄Π° ΠΏΠΎΠΈΠ³Ρ€Π°Π΅ΠΌ с ΠΏΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅, Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° Π±Π°Π·Π° ΠΎΡ‚ Ρ…Π΅ΡˆΠΎΠ²Π΅ ΠΈ Ρ…Π΅ΡˆΡΠ΅Ρ€Π²Π΅Ρ€Π°, Π°ΠΊΠΎ Π½ΠΈ Π΅ интСрСсно, Π° Π½Π° слСдващия Π΄Π΅Π½ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ какъв Ρ‰Π΅ Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° инкрСмСнталния бСкъп Π²ΡŠΡ€Ρ…Ρƒ Π²Ρ‡Π΅Ρ€Π°ΡˆΠ½ΠΈΡ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster