ΠΡΠΎ ΠΎΠ±Π·ΠΎΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. Π‘Π°ΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ hashget (Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅) ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
ΠΠΎ Π·Π°ΠΊΠΎΠ½Ρ ΠΆΠ°Π½ΡΠ°, Π½Π°ΡΠ½Ρ ΡΡΠ°Π·Ρ Ρ ΠΈΠ½ΡΡΠΈΠ³ΠΈ β ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
Data sample
unpacked size
.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 Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ «Hello world»?
ΠΠΎΡΠ΅ΠΌΡ Π² ΠΌΠΎΠ΅ΠΌ Π±ΡΠΊΠ°ΠΏΠ΅ Π΅ΡΡΡ 16-ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ½ΡΠΉ /usr/sbin/mysqld? ΠΠ΅ΡΠΆΠ΅Π»ΠΈ Π² ΡΡΠΎΠΌ ΠΌΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ½Π΅ Π²ΡΠΏΠ°Π»Π° ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΡ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΈ Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ β ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΡΠ²Π°? Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅Ρ. ΠΠ½ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΠ½Π°Π΄Π΅ΠΆΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ debian (Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΈ Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π½ΠΈ Π² ΠΊΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ΄Π΅Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Ρ), Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡΡ (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ ΠΈΡ ) Π΄ΡΡΠ³ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΎΠ². Π’ΠΎΡΠ½ΠΎ Π»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ 10 000 000 + 1’ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°?
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ tar -c
/ tar -x
. (ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ lossless ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°)
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ 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 Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅Π±ΠΈΠ°Π½ΠΎΠ²ΡΠΊΠΈΠ΅ ΠΠ‘, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π° Π½ΠΈΡ Π΅ΡΡΡ ΡΠ°ΠΌΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.
Π€Π°ΠΉΠ»Ρ-ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ (Ρ ΠΈΠ½ΡΡ)
ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²Π°Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ hashget, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ hint-ΡΠ°ΠΉΠ» hashget-hint.json ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ:
{
"project": "wordpress.org",
"url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}
ΠΠ°Π»Π΅Π΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π°ΡΡ ΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ (Π΅ΡΠ»ΠΈ Π½Π΅ Π±ΡΠ» ΡΠ°Π½Π΅Π΅), ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΡΠ΄ΡΡ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ· Π°ΡΡ ΠΈΠ²Π°. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ· vim ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΡΠΊΠ°ΠΏΠ΅. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π· Ρ Π΅ΡΡΡΠΌΠΌΡ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ) β ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π΅ «ΠΊΠ°ΠΊ Π΅ΡΡΡ» Π½Π΅ Π±ΡΠ΄Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Ρ.
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ hint ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²Π΅ΡΡΠΈΠΈ 1.0 ΡΠ΄Π΅Π»Π°Π»ΠΈ Ρ ΠΈΠ½Ρ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° mypackage-1.0.tar.gz, ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΡΡΡΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΡ 1.1, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ, Π° Ρ ΠΈΠ½Ρ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ. ΠΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ. ΠΠ΅Π΄ΡΠΏΠ»ΠΈΡΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ) Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 1.0.
ΠΠ²ΡΠΈΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ hint-ΡΠ°ΠΉΠ» β Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊ. ΠΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ hashget-hint.json (ΠΈΠ»ΠΈ .hashget-hint.json Ρ ΡΠΎΡΠΊΠΎΠΉ) ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. ΠΠΎ ΡΡΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ URL ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½, ΠΈ hashget Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ (Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½ΡΡΠ΅)
HashServer
ΠΡΠ»ΠΎ Π±Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ, ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ hashget ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡ
Π΅ΠΌΡ Ρ
HashServer β Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡ
Π΅ΠΌΡ, Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΉ, ΡΠ»ΡΠΆΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ΅Π³ΠΊΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ (ΠΎΠΏΡΠΈΠ΅ΠΉ --hashserver
Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ
ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΡΠΊΠ°ΠΏΡ, Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΠ΅
--submit
ΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ! Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π±ΡΠΊΠ°ΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°ΡΡ hashget, Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π°ΡΡ
ΠΈΠ²Π°.
ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅ΡΠ³Π°ΡΡ Π²ΡΠ΅ hashget-Π±ΡΠΊΠ°ΠΏΡ Π·Π° Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ (Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ --expires 2019-06-01
, ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄Π°ΡΡ (c 00:00), ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½. Π‘Π°ΠΌ Π°ΡΡ
ΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ Π΄Π°ΡΡ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡ (Π₯ΠΎΡΡ hashget ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ URLΡ Π²ΡΠ΅Ρ
Π±Π΅ΠΊΠ°ΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°Ρ ΠΏΡΠΎΡΡΡ
Π»ΠΈ/ΠΏΡΠΎΡΡΡ
Π½ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π½Π° Π»ΡΠ±ΡΡ Π΄Π°ΡΡ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ 1Π³ΠΎ ΡΠΈΡΠ»Π° Π΄Π΅Π»Π°ΡΡ ΡΡΠ»Π» Π±ΡΠΊΠ°ΠΏ, ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΌΠ΅ΡΡΡΠ° β ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡ Π΅ΠΌΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠΊΠ°ΠΏΠ°.
ΠΡΠ»ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½ΠΎΠ²ΡΠ΅ Π±ΡΠΊΠ°ΠΏΡ β Π±ΡΠ΄Π΅Ρ ΡΡ Π΅ΠΌΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π±ΡΠΊΠ°ΠΏΠΎΠ².
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΡ Π΅ΠΌ, hashget ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΠ΅ΠΊΠ°ΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ ΠΈ Π·Π° ΡΡΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ), ΠΈ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΊΠ°ΡΠ°ΡΡ).
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ Π΄Π΅Π±ΠΈΠ°Π½ΠΎΠ²ΡΠΊΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ² (
Hashget ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΠΠ¨ΠΠΠ£ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊΠΈΠ΅ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ β ΡΠ΅ ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ.
FilePool ΠΈ Glacier
ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ
$ 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), Π½ΠΎ ΠΈ,
ΠΠΎΡΠ»Π΅ Π°ΠΏΠ»ΠΎΠ°Π΄Π° Π±ΡΠΊΠ°ΠΏΠ° Π½Π° Π³Π»Π°ΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ Upload ID ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ URL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
hashget --submit Glacier_Upload_ID --file /tmp/my-glacier-backup.tar.gz --project glacier --hashserver --expires 2019-09-01
Π’Π΅ΠΏΠ΅ΡΡ Π½ΠΎΠ²ΡΠ΅ (Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅) Π±ΡΠΊΠ°ΠΏΡ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΡΠΎΡ Π±ΡΠΊΠ°ΠΏ ΠΈ Π±ΡΠ΄ΡΡ ΠΊΠΎΡΠΎΡΠ΅. ΠΠΎΡΠ»Π΅ tar ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π΄ΠΈΡΡΠ±ΡΠΊΠ°ΠΏΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΎΠ½ ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ:
hashget --info /tmp/unpacked/ list
ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π»Π»-ΡΠΊΡΠΈΠΏΡΠΎΠΌ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΠ· Π³Π»Π°ΡΡΠ΅ΡΠ° Π²ΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² pool ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: hashget -u /tmp/unpacked —pool /tmp/pool
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΎΠ²ΡΠΈΠ½ΠΊΠ° Π²ΡΠ΄Π΅Π»ΠΊΠΈ
Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β Π²Ρ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ»Π°ΡΠΈΡΡ Π·Π° Π±ΡΠΊΠ°ΠΏΡ (Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΠ΅ Π³Π΄Π΅-ΡΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Π·Π° Π΄Π΅Π½ΡΠ³ΠΈ). ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ β Π³ΠΎΡΠ°Π·Π΄ΠΎ-Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅.
ΠΠΎ ΡΡΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΠΏΠ³ΡΠ΅ΠΉΠ΄ ΡΡ Π΅ΠΌΡ Π±ΡΠΊΠ°ΠΏΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π· Π±ΡΠΊΠ°ΠΏΡ Ρ Π½Π°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠ΅ β ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π΅ΠΆΠ΅ΠΌΠ΅ΡΡΡΠ½ΡΠΉ Π±ΡΠΊΠ°ΠΏ, Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΉ. Π₯ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π½Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΡΠ°Π½Π΅Π΅, Π° 5 Π»Π΅Ρ. Π Π°Π½ΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈ Π² ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ Π½ΠΎ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ «Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΌ» Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (Glacier), ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π³ΠΎΡΡΡΠ΅ΠΌ, ΠΎΡΠΊΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π±ΡΡΡΡΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π±ΡΠΊΠ°ΠΏ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π·Π° ΠΌΠΈΠ½ΡΡΡ, Π° Π½Π΅ Π·Π° Π΄Π΅Π½Ρ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ². ΠΡΠ»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΌ Π±ΡΠΊΠ°ΠΏΠΎΠ² β ΡΠΌΠΎΠΆΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ Π² 2-3 Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡΡ.
ΠΠ°ΠΊ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?
ΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ Π½Π° Π³ΠΈΡΠ»Π°Π± ΡΡΡΠ°Π½ΠΈΡΠΊΡ pip3 install hashget[plugins]
) ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ°Π΅ΠΌ-Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ quick-start. ΠΡΠΌΠ°Ρ, Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠΈ ΡΠ΄Π΅Π»Π°ΡΡ β Π·Π°ΠΉΠΌΠ΅Ρ ΠΌΠΈΠ½ΡΡ 10-15. ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΆΠ°ΡΡ ΡΠ²ΠΎΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΈ, ΡΠ΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ, Ρ
ΠΈΠ½Ρ-ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ ΡΠΆΠΈΠΌΠ°Π»ΠΎΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠ»Π°ΠΌΠΈ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Ρ
Π΅ΡΠ΅ΠΉ ΠΈ Ρ
Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ, Π° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠΊΠ°ΠΏΠ° ΠΏΠΎΠ²Π΅ΡΡ
Π²ΡΠ΅ΡΠ°ΡΠ½Π΅Π³ΠΎ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com