НамалСтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈΡ‚Π΅ копия с 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 ядро ​​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 MB /usr/sbin/mysqld Π² Π°Ρ€Ρ…ΠΈΠ²Π° ΠΌΠΈ? Наистина Π»ΠΈ Π΅ възмоТно Π½Π° Ρ‚ΠΎΠ·ΠΈ свят Π°Π· Π΄Π° ΠΈΠΌΠ°ΠΌ чСстта Π΄Π° пазя Ρ‚ΠΎΠ²Π° Π²Π°ΠΆΠ½ΠΎ досиС ΠΈ Π°ΠΊΠΎ Π½Π΅ успСя, Ρ‚ΠΎ Π΄Π° бъдС Π·Π°Π³ΡƒΠ±Π΅Π½ΠΎ Π·Π° човСчСството? Най-вСроятно Π½Π΅. Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π° сС Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ debian ΡΡŠΡ€Π²ΡŠΡ€ΠΈ (чиято надСТдност ΠΈ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎΡΡ‚ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС сравняват с Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠ³Π° Π΄Π° осигуря), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия (ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΎΡ‚ тях) Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ администратори. Наистина Π»ΠΈ трябва Π΄Π° създадСм 10 000 000+ ΠΏΡŠΡ€Π²ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π²Π°ΠΆΠ΅Π½ Ρ„Π°ΠΉΠ», Π·Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ надСТдността?

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

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

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

ΠŸΠ°ΠΊΠ΅Ρ‚ (Π½Π°ΠΉΠ»ΠΎΠ½ΠΎΠ² ΠΏΠ»ΠΈΠΊ). Π€Π°ΠΉΠ» (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ .deb ΠΈΠ»ΠΈ .tar.gz Π°Ρ€Ρ…ΠΈΠ²), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ сигурно ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

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

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

Опаковка

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

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

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, изтСгля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Π³ΠΈ ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ инсталира Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π°, с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ собствСник/Π³Ρ€ΡƒΠΏΠ°/Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

По-Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ Π½Π΅Ρ‰Π°

ΠžΠΏΠΈΡΠ°Π½ΠΎΡ‚ΠΎ ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ β€žΠΈΡΠΊΠ°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Ρ‚Ρ€Π°Π½, Π½ΠΎ Π΄Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ моя Debian Π² 4 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°.β€œ НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-слоТнитС Π½Π΅Ρ‰Π° ΠΏΠΎ-късно.

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

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

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

Π—Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ нСобходимия Ρ…Π΅Ρˆ-ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈΠΌΠ° Π΅Ρ‚Π°ΠΏ индСксиранС (изпълнява сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° --pack) И Свристика. ΠšΠΎΠ³Π°Ρ‚ΠΎ индСксира, hashget β€žΠΏΠΎΠ΄Π°Π²Π°β€œ всСки Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π° всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Свристики, ΠΊΠΎΠΈΡ‚ΠΎ сС интСрСсуват ΠΎΡ‚ Π½Π΅Π³ΠΎ. Евристиката слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° индСксира всСки ΠΏΠ°ΠΊΠ΅Ρ‚, Π·Π° Π΄Π° създадС HashPackage.

НапримСр, Свристиката Π½Π° Debian харСсва Ρ„Π°ΠΉΠ»Π° /var/lib/dpkg/status ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° инсталиранитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Debian ΠΈ Π°ΠΊΠΎ Ρ‚Π΅ Π½Π΅ са индСксирани (няма създадСн HashPackage Π·Π° тях), Π³ΠΈ изтСгля ΠΈ индСксира. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΡƒΠ±Π°Π² Π΅Ρ„Π΅ΠΊΡ‚ - hashget Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠΈΡ€Π° Debian OS Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

ΠŸΠΎΠ΄ΡΠΊΠ°Π·Π²Π°Ρ‰ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Ако Π²Π°ΡˆΠ°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° някои ΠΎΡ‚ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈΠ»ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² хСвристиката Π½Π° hashget, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Ρ„Π°ΠΉΠ» с подсказки 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. ΠšΠΎΠ³Π°Ρ‚ΠΎ бъдС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ инсталиран ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° Debian, Π°ΠΊΠΎ Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π² локалния HashPackage, ΠΏΡŠΡ€Π²ΠΎ сС ΠΏΡ€Π°Π²ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° просто изтСглянС Π½Π° HashPackage ΠΎΡ‚ Ρ…Π΅Ρˆ ΡΡŠΡ€Π²ΡŠΡ€Π°. И само Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, hashget сам изтСгля ΠΈ Ρ…Π΅ΡˆΠΈΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΈ Π³ΠΎ ΠΊΠ°Ρ‡Π²Π° Π½Π° 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) рСсурси ΠΊΠ°Ρ‚ΠΎ основни рСсурси, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Амазонски Π»Π΅Π΄Π½ΠΈΠΊ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Ρ‡ΠΈΠΌ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π»Π΅Π΄Π½ΠΈΠΊΠ°, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ нСговия ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π° ΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ URL адрСс. НапримСр:

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

Π‘Π΅Π³Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ (Π΄ΠΈΡ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ) Π°Ρ€Ρ…ΠΈΠ²ΠΈ Ρ‰Π΅ сС Π±Π°Π·ΠΈΡ€Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π°Ρ€Ρ…ΠΈΠ² ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΈ. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ tar Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π° diffbackup, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈ рСсурси Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°:

hashget --info /tmp/unpacked/ list

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

Π˜Π³Ρ€Π°Ρ‚Π° струва Π»ΠΈ си свСщта?

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

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

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

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

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

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€