Π‘ΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ бэкапы Π½Π° 99.5% с hashget

hashget β€” это бСсплатный, опСрсорсный Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” похоТая Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ бэкапов, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ схСмы ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ бэкапа ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.

Π­Ρ‚ΠΎ обзорная ΡΡ‚Π°Ρ‚ΡŒΡ для описания возмоТностСй. Π‘Π°ΠΌΠΎ использованиС hashget (довольно простоС) описано Π² README ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ wiki-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

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

По Π·Π°ΠΊΠΎΠ½Ρƒ ΠΆΠ°Π½Ρ€Π°, Π½Π°Ρ‡Π½Ρƒ сразу с ΠΈΠ½Ρ‚Ρ€ΠΈΠ³ΠΈ β€” сравнСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²:

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’ΡƒΡŽ копию этого Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°?

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ hashget ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠŸΡ€ΠΈ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ β€” ΠΎΠ½ создаСт ΠΎΡ‡Π΅Π½ΡŒ малСнький бэкап. ΠŸΡ€ΠΈ распаковкС β€” ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡƒΡŽ систСму, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠΉ, которая Π±Ρ‹Π»Π° Π±Ρ‹ ΠΏΡ€ΠΈ 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. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ установлСнного debian’овского ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ссли ΠΎΠ½ Π½Π΅ найдСтся Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… HashPackage, сначала дСлаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° просто ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ HashPackage с Ρ…Π΅Ρˆ-сСрвСра. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли это Π½Π΅ получаСтся β€” hashget сам скачиваСт ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ (ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π½Π° hashserver, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² дальнСйшСм hashserver Π΅Π³ΠΎ прСдоставлял).

HashServer β€” Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт схСмы, Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ, слуТит ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для ускорСния ΠΈ сниТСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π›Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ (ΠΎΠΏΡ†ΠΈΠ΅ΠΉ --hashserver Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой собствСнный hashserver.

Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ бэкапы, Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ устарСваниС

hashget позволяСт ΠΎΡ‡Π΅Π½ΡŒ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ схСму ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… бэкапов. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π°ΠΌ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сам наш бэкап (со всСми нашими ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ)? Одна ΠΊΠΎΠΌΠ°Π½Π΄Π° --submit ΠΈ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ! Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ бэкап, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаст hashget, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· этого Π°Ρ€Ρ…ΠΈΠ²Π°.

Но это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ восстановлСнии Π½Π°ΠΌ придСтся Π΄Π΅Ρ€Π³Π°Ρ‚ΡŒ всС hashget-бэкапы Π·Π° всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ (Ссли Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»). Для этого Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ устарСвания бэкапов. ΠŸΡ€ΠΈ индСксировании ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ устарСвания HashPackage --expires 2019-06-01, ΠΈ ΠΏΠΎ Π½Π°ΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΡŽ этой Π΄Π°Ρ‚Ρ‹ (c 00:00), ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использован. Π‘Π°ΠΌ Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ послС этой Π΄Π°Ρ‚Ρ‹ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ (Π₯отя hashget ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ URLΡ‹ всСх Π±Π΅ΠΊΠ°ΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас ΠΏΡ€ΠΎΡ‚ΡƒΡ…Π»ΠΈ/ΠΏΡ€ΠΎΡ‚ΡƒΡ…Π½ΡƒΡ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π½Π° Π»ΡŽΠ±ΡƒΡŽ Π΄Π°Ρ‚Ρƒ).

НапримСр, Ссли 1Π³ΠΎ числа Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΡƒΠ»Π» бэкап, ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° мСсяца β€” ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ схСму Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ бэкапа.

Если Ρ‚Π°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ бэкапы β€” Π±ΡƒΠ΄Π΅Ρ‚ схСма ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… бэкапов.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… схСм, hashget позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π±Π°Π·ΠΎΠ²Ρ‹Ρ… источников. Π‘Π΅ΠΊΠ°ΠΏ Π±ΡƒΠ΄Π΅Ρ‚ сокращСн ΠΈ Π·Π° счСт сокращСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… бэкапов (Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ), ΠΈ Π·Π° счСт ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ).

Если ΠΌΡ‹ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ довСряСм надСТности дСбиановских рСсурсов (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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΎΠ²Ρ‹Π΅ (Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅) бэкапы Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° этот бэкап ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΡ€ΠΎΡ‡Π΅. ПослС tar распаковки диффбэкапа ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ рСсурсы ΠΎΠ½ опираСтся:

hashget --info /tmp/unpacked/ list

ΠΈ просто шСлл-скриптом ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ· Π³Π»Π°ΡΡŒΠ΅Ρ€Π° всС эти Ρ„Π°ΠΉΠ»Ρ‹ Π² pool ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ восстановлСниС: hashget -u /tmp/unpacked —pool /tmp/pool

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΎΠ²Ρ‡ΠΈΠ½ΠΊΠ° Π²Ρ‹Π΄Π΅Π»ΠΊΠΈ

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС β€” Π²Ρ‹ просто Π±ΡƒΠ΄Π΅Ρ‚Π΅ мСньшС ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π° бэкапы (Ссли Π²Ρ‹ ΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Π·Π° дСньги). ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ β€” Π³ΠΎΡ€Π°Π·Π΄ΠΎ-Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС.

Но это Π½Π΅ СдинствСнноС. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² качСство. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ качСствСнный Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ схСмы бэкапов. НапримСр, Ρ€Π°Π· бэкапы Ρƒ нас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΡ€ΠΎΡ‡Π΅ β€” ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ СТСмСсячный бэкап, Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹ΠΉ. Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, ΠΊΠ°ΠΊ Ρ€Π°Π½Π΅Π΅, Π° 5 Π»Π΅Ρ‚. РаньшС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈ Π² ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ Π½ΠΎ дСшСвом «Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΌ» Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (Glacier), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² горячСм, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ всСгда быстро ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ бэкап ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π° Π½Π΅ Π·Π° дСнь.

МоТно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния бэкапов. Если сСйчас ΠΌΡ‹ ΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚ΠΎ сократив объСм бэкапов β€” смоТСм Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² 2-3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ, Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… поврСдится.

Как ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ?

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Π³ΠΈΡ‚Π»Π°Π± страничку https://gitlab.com/yaroslaff/hashget, устанавливаСм ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (pip3 install hashget[plugins]) ΠΈ просто Ρ‡ΠΈΡ‚Π°Π΅ΠΌ-выполняСм quick-start. Π”ΡƒΠΌΠ°ΡŽ, всС простыС Π²Π΅Ρ‰ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚ 10-15. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΆΠ°Ρ‚ΡŒ свои Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½Π°Π΄ΠΎ, Ρ…ΠΈΠ½Ρ‚-Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΆΠΈΠΌΠ°Π»ΠΎΡΡŒ сильнСС, ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ΠΏΡƒΠ»Π°ΠΌΠΈ, локальной Π±Π°Π·ΠΎΠΉ Ρ…Π΅ΡˆΠ΅ΠΉ ΠΈ Ρ…Π΅ΡˆΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ, Ссли интСрСсно Π±ΡƒΠ΄Π΅Ρ‚, Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ дСнь ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ бэкапа ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²Ρ‡Π΅Ρ€Π°ΡˆΠ½Π΅Π³ΠΎ.

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