ืืื ืืืืจ ืกืงืืจื ืืชืืืืจ ืืชืืื ืืช. ืืฉืืืืฉ ืืคืืขื ื-hashget (ืื ืคืฉืื) ืืชืืืจ ื
ืืฉืืืื
ืืคื ืืืง ืื'ืื ืจ, ืื ื ืืชืืื ืืื ืขื ืืชืืืื - ืืืฉืืืื ืืื ืืชืืฆืืืช:
ืืืื ื ืชืื ืื
ืืืื ืื ืืจืื
.tar.gz
hashget.tar.gz
ืืืจืืคืจืก-5.1.1
43 Mb
11 ืืื-ืืื (26%)
155 Kb ( 0.3% )
ืืื ืืงืก ืืืื
934 Mb
161 ืืื-ืืื (20%)
4.7 ืืื-ืืื ( 0.5% )
Debian 9 (LAMP) LXC VM
724 Mb
165 ืืื-ืืื (23%)
4.1 ืืื-ืืื ( 0.5% )
ืจืงืข ืขื ืื ืฆืจืื ืืืืืช ืืืืื ืืืืืืื ืืืขืื
ืืื ืคืขื ืฉืขืฉืืชื ืืืืื ืฉื ืืืื ื ืืืจืืืืืืช ืืืฉื ืฉื ืืฆืจื, ืจืืคื ืืืชื ืืชืืืฉื ืฉืื ื ืขืืฉื ืืฉืื ืื ืืกืืจ. ืืื ืื ื ืืงืื ืืืืื ืืื ืืืืขืจืืช, ืฉืื ืืืฆืืจืชืืืช ืืืืชื ื ืกืืืช ืฉืื ืืื index.html ืืฉืืจื ืืืช ืขื ืืืงืกื "ืฉืืื ืขืืื"?
ืืืืข ืืฉ โ16 MB /usr/sbin/mysqld ืืืืืื ืฉืื? ืืื ืืืืช ืืืชืื ืฉืืขืืื ืืื ืืฉ ืื ืืืืื ืืฉืืืจ ืขื ืืชืืง ืืืฉืื ืืื, ืืื ืืืฉื, ืืื ืืืื ืืื ืืฉืืช? ืกืืืจ ืืื ืื ืฉืื. ืืื ืืืืืกื ืืฉืจืชื ืืืืื ืืืื ืื ืืืืืื (ืื ืืคืฉืจ ืืืฉืืืช ืืช ืืืืืื ืืช ืืืจืฆืืคืืช ืฉืืื ืืื ืฉืื ื ืืืื ืืกืคืง), ืืื ืื ืืืืืืืื (ืืืืืื ืื ืืื) ืฉื ืื ืืืื ืืืจืื. ืืื ืื ืื ื ืืืืช ืฆืจืืืื ืืืฆืืจ 10+ ืขืืชืง ืจืืฉืื ืฉื ืงืืืฅ ืืฉืื ืื ืืื ืืฉืคืจ ืืช ืืืืื ืืช?
ืืืจื ืืื tar -c
/ tar -x
. (ืืืืืื ืืืจืืช, ืืืื ืืจืืื ืืื ืืืืื)
ืืื ืืืืฉืื ืขืืื
ื-hashget ืืฉ ืืช ืืืืฉืืื ืฉื Package ื- HashPackage, ืืขืืจืชื ืืื ืืืฆืขืช ืื ืืขืช ืืคืืืืืืช.
ืึฒืึดืืึธื (ืฉืงืืช ืคืืกืืืง). ืงืืืฅ (ืืืจื ืืื ืืจืืืื .deb ืื .tar.gz) ืื ืืชื ืืืืจืื ืืืืืืืช ืืืืื ืืจื ื, ืืืื ื ื ืืชื ืืืฉืื ืงืืืฅ ืืื ืื ืืืชืจ.
HashPackage - ืงืืืฅ JSON ืงืื ืืืืืฆื ืืืืื, ืืืื ืืชืืืช URL ืฉื ืืืืืื ืืกืืืื hash (sha256) ืฉื ืงืืฆืื ืืื ื. ืืืืืื, ืขืืืจ ืืืืืช mariadb-server-core ืฉื 5 ืืื-ืืืื, ืืืื ื-hashpack ืืื 6 ืงืืืืืืื ืืืื. ืืขืจื ืคื ืืืฃ ืคืืืช.
ืื ืืขืช ืืคืืืืช - ืืฆืืจืช ืืจืืืื ืืื ืงืืฆืื ืืคืืืื (ืื ื-deduplicator ืืืืข ืืืื ื ืืชื ืืืืจืื ืืช ืืืืืื ืืืงืืจืืช, ืื ืืคืืืช ืืคืืืืืืช ืืืืจืืืื).
ืืจืืื
ืืขืช ืืืจืืื, ืื ืืงืืฆืื ืืืกืคืจืืื ืื ืืจืืื ื ืกืจืงืื, ืกืืืื ืืืืืื ืฉืืื ืืืืฉืืื, ืืื ืืกืืื ื ืืฆื ืืืื ืื-HashPackages ืืืืืจืื, ื ืฉืืจืื ืืื ื ืชืื ืื ืขื ืืงืืืฅ (ืฉื, hash, ืืืืืืช ืืืฉื ืืื'). ืืงืืืฅ ืืืืื .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
) ื ืืืืจืืกืืืงื. ืืขืช ืืฆืืจืช ืืื ืืงืก, hashget "ืืืื" ืื ืงืืืฅ ืฉื ืืฆื ืืื ืืืืจืืกืืืืช ืืืืื ืืช ืฉืืชืขื ืืื ืืช ืื. ืืืืจ ืืื, Heuristics ืืืืื ืืืืกืืฃ ืื ืืืืื ืืืื ืืงืก ืืื ืืืฆืืจ HashPackage.
ืืืืืื, ืืืืจืืกืืืงื ืฉื ืืืืื ืืืืืช ืืช ืืงืืืฅ /var/lib/dpkg/status ืืืืื ืืืืืืช ืืืืื ืืืชืงื ืืช, ืืื ืื ืื ื ืืกืคื ืืืื ืืงืก (ืื ื ืืฆืจ ืขืืืจื HashPackage), ืืืจืื ืืืืกืืฃ ืืืชื ืืืื ืืงืก. ืืชืืฆืื ืืื ืืคืงื ื ืืื ืืืื - hashget ืชืืื ืืฉืืคื ืืืขืืืืช ืืช ืืขืจืืช ืืืคืขืื ืฉื ืืืืื, ืื ืื ืืฉ ืืื ืืช ืืืืืืืช ืืขืืื ืืืช ืืืืชืจ.
ืงืืฆื ืจืื
ืื ืืจืฉืช ืฉืื ืืฉืชืืฉืช ืืืืง ืืืืืืืืช ืืงื ืืื ืืืช ืฉืื ืื ืืืืืื ืฆืืืืจืืช ืฉืืื ื ืืืืื ืืืืืจืืกืืืงื ืฉื hashget, ืชืืื ืืืืกืืฃ ืื ืงืืืฅ ืจืื ืคืฉืื ืฉื hashget-hint.json ืื:
{
"project": "wordpress.org",
"url": "https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip"
}
ืืืืจ ืืื, ืืื ืคืขื ืฉื ืืฆืจ ืืจืืืื, ืืืืืื ืชืชืืืกืฃ ืืืื ืืงืก (ืื ืืื ืื ืืืืชื ืืขืืจ), ืืงืืืฆื ืืืืืื ืืคืืงื ืืืืจืืืื. ืืื ืฆืืจื ืืชืื ืืช, ืืื ื ืืชื ืืขืฉืืช ื-vim ืืืฉืืืจ ืืื ืืืืื. ืฉืืื ืื ืฉืืืืืช ืืืฉืช ื-hash sum, ืื ืืืง ืืืงืืฆืื ืืืืืืื ืืฉืชื ื ืืืืคื ืืงืืื (ืืืืืื, ืงืืืฅ ืชืฆืืจื ืืฉืชื ื), ืื ืืงืืฆืื ืฉืืฉืชื ื ืืืฉืืจื ืืืจืืืื "ืืืืช ืฉืื" ืืื ืืืชืื.
ืื ืืืง ืืืืืืืืช ืฉืื ืืชืขืืื ืืช ืืขืช ืืขืช, ืื ืืฉืื ืืืื ืืื ื ืืืืืื ืืืืืื, ืชืืื ืืจืืื ืจืง ืขืืืจ ืืจืกืืืช ืขืืงืจืืืช. ืืืืืื, ืืืจืกื 1.0 ืื ืขืฉื ืจืื ืฉืืฆืืืข ืขื mypackage-1.0.tar.gz, ืืืื ืืืืื ืืืืืืื, ืืื ืืืฆืืื ืืช ืืจืกื 1.1, ืฉืืื ืืขื ืฉืื ื, ืืื ืืจืื ืื ืขืืืื. ืื ืืกืืจ. ืจืง ืงืืฆืื ืืชืืืืื (ื ืืชื ืืฉืืืจ) ืืจืกื 1.0 ื ืืืงืื.
ืืืืืจืืกืืืงื ืฉืืขืืืช ืืช ืงืืืฅ ืืจืื ืืื ืืืืื ืืืื ืืืื ืช ืืื ืื ืื ืืคื ืืื ืฉื ืืืคื ืคืขืืืช ืืืืจืืกืืืงื. ืืื ืืขืื ืจืง ืงืืฆื hashget-hint.json (ืื .hashget-hint.json ืขื ื ืงืืื) ืืืชืขืื ืืื ืืฉืืจ. ืืชืื ืงืืืฅ ืื, ืืื ืงืืืข ืืืื ืืชืืืช ืืชืจ ืืืืืื ืืฉ ืืืืกืืฃ ืืืื ืืงืก, ืื-hashget ืืืกืืฃ ืืืชื ืืืื ืืงืก (ืื ืืื ืขืืืื ืื ืขืฉื ืืืช)
HashServer
ืื ืืืื ืื ืขืชืืจ ืขืืืื ืืืฆืข ืืื ืืงืก ืืื ืืขืช ืืฆืืจืช ืืืืืืื. ืืื ืืขืฉืืช ืืืช, ืขืืื ืืืืจืื ืื ืืืืื, ืืคืจืืง ืืืชื ืืืืืกืืฃ ืืืชื ืืืื ืืงืก. ืืื hashget ืืฉืชืืฉ ืืกืืืื ืขื
HashServer ืืื ืืจืืื ืืืคืฆืืื ืื ืฉื ืืกืืืื, ืื ืงืจืืื, ืืื ืืฉืืฉ ืื ืืจืง ืืื ืืืืืฅ ืืืืคืืืช ืืช ืืขืืืก ืขื ืืืืืจืื. ืืืฉืืช ืืงืืืช (ืืืคืฆืืื ืื --hashserver
ืืื ืคืจืืืจืื). ืื ืืกืฃ, ืืชื ืืืื ืืงืืืช
ืืืืืืื ืืฆืืืจืื ืืืืคืจื ืฆืืืืืื, ืืชืืืฉื ืืช ืืชืืื ื ืช
--submit
ืืกืืืืช! ืืืืืื ืืื ืฉ-hashget ืืืฆืจ ืื ืืืืื ืงืืฆืื ืืืืจืืืื ืืื.
ืืื ืื ืื ืืืฉื ืืืื ืืืืืื, ืื ืืืื ืืชืืจืจ ืฉืืขืช ืืฉืืืืจ ื ืฆืืจื ืืืฉืื ืืช ืื ืืืืืื ืืืืฉืืืื ืืื ืืืืกืืืจืื (ืื ืื ืืื ืืืื ืืคืืืช ืงืืืฅ ืืืืืื ืืื). ืืฉ ืื ืื ืื ืืื --expires 2019-06-01
, ืืืืืจ ืชืืจืื ืื (ืืฉืขื 00:00), ืื ืืืขืฉื ืื ืฉืืืืฉ. ืื ื ืืชื ืืืืืง ืืช ืืืจืืืื ืขืฆืื ืืืืจ ืชืืจืื ืื (ืื ืื hashget ืืืื ืืืฆืื ืื ืืืืช ืืช ืืชืืืืช ื-URL ืฉื ืื ืืืืืืืื ืฉืื/ืืืื ืจืงืืืื ืืจืืข ืื ืืื ืชืืจืื).
ืืืืืื, ืื ื ืืฆืข ืืืืื ืืื ื-1 ืื ืืกืืฃ ืืืชื ืืืื ืืงืก ืืื ืืืืื ืขื ืกืืฃ ืืืืืฉ, ื ืงืื ืกืืืืช ืืืืื ืืืคืจื ืฆืืืืืช.
ืื ื ืืกืืฃ ืืืื ืืงืก ืืืืืืื ืืืฉืื ืืืืชื ืืืคื, ืชืืื ืชืื ืืช ืฉื ืืืืืืื ืืฆืืืจืื.
ืฉืื ืืื ืกืืืืืช ืืกืืจืชืืืช, hashget ืืืคืฉืจ ืื ืืืฉืชืืฉ ืืืกืคืจ ืืงืืจืืช ืืกืืกืืื. ืืืืืื ืืงืื ืื ืขื ืืื ืฆืืฆืื ืงืืฆืื ืืืืืืืื ืงืืืืื (ืื ืืฉ) ืืื ืขื ืืื ืงืืฆืื ืฆืืืืจืืื (ืื ืฉื ืืชื ืืืืจืื).
ืื ืืกืืื ืืืฉืื ืืื ื ื ืกืืืืื ืขื ืืืืืื ืืช ืฉื ืืฉืืื ืืืืื (
Hashget ืืกืชืื ืจืง ืขื ืืงืืจืืช ืฉืืืืจ ืืืืื ืื ืืคื ืฉืืงืื ืืขืชื. ืืื ืฉืืชื ืืืฉืื ืืืื ืื ืืฉืืฉื.
FilePool ืืงืจืืื
ืื ืื ืื
$ hashget -u . --pool /tmp/pool
ืื
$ hashget -u . --pool http://myhashdb.example.com/
ืืื ืืืฆืืจ ืืืืจ ืืกืคืจืืื ืืงืืืืช, ืืชื ืจืง ืฆืจืื ืืืฆืืจ ืกืคืจืืื ืืืืจืืง ืืชืืื ืงืืฆืื, ื-hashget ืขืฆืื ืืืฆื ืืช ืื ืฉืืื ืฆืจืื ืืืืฆืขืืช ื-hash. ืืื ืืื ืืืฉ ืืช ืืืืืจ ืืืืฆืขืืช 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
ืืขืช ืืืืืืื ืืืฉืื (ืืืคืจื ืฆืืืืืื) ืืชืืกืกื ืขื ืืืืื ืื ืืืืื ืงืฆืจืื ืืืชืจ. ืืืืจ ืคืจืืงืช ื-diffbackup, ื ืืื ืืจืืืช ืขื ืืืื ืืฉืืืื ืืื ืืกืชืื:
hashget --info /tmp/unpacked/ list
ืืคืฉืื ืืฉืชืืฉ ืืกืงืจืืคื ืืขืืคืช ืืื ืืืืจืื ืืช ืื ืืงืืฆืื ืืืื ื-Glacier ืืืจืืื ืืืืคืขืื ืืช ืืฉืืืืจ ืืจืืื: hashget -u /tmp/unpacked โpool /tmp/pool
ืืื ืืืฉืืง ืฉืืื ืืช ืื ืจ?
ืืืงืจื ืืคืฉืื ืืืืชืจ, ืคืฉืื ืชืฉืืื ืคืืืช ืขืืืจ ืืืืืืื (ืื ืชืืืกื ื ืืืชื ืืืคืฉืื ืืขื ื ืชืืืจืช ืืกืฃ). ืืืื ืืจืื ืืจืื ืคืืืช.
ืืื ืื ืื ืืืืจ ืืืืื. ืืืืช ืืืคืืช ืืืืืืช. ืืชื ืืืื ืืืฉืชืืฉ ืืื ืืื ืืงืื ืฉืืจืื ืืืืืืช ืืืืื ืืกืืืืช ืืืืืื ืฉืื. ืืืืืื, ืืืืืื ืฉืืืืืืืื ืฉืื ื ืืขืช ืงืฆืจืื ืืืชืจ, ืื ื ืืืืืื ืืืฆืข ืืืืืืื ืื ืืืืฉืืื, ืืื ืืืืืื. ืืืกื ืืืชื ืื ืืืฉื ืฉืืฉื ืืืืฉืื, ืืื ืงืืื, ืืื ืืืฉื 5 ืฉื ืื. ืืขืืจ ืืืกื ืชื ืืืชื ืืืืกืื "ืงืจ" ืืืื ืื ืืื (Glacier), ืืขืช ืชืืืื ืืืืกื ืืืชื ืืืืกืื ืื, ืืฉื ืชืืื ืชืืืื ืืืืจืื ืืืืืจืืช ืืืืื ืืืฉืืืจ ืืืชื ืชืื ืืงืืช, ืื ืืืื.
ืืชื ืืืื ืืืืืืจ ืืช ืืืืื ืืช ืฉื ืืืกืื ืืืืื. ืื ืื ื ืืืืกื ืื ืืืชื ืืืื ืืืชืงื ืืืกืื ืืื, ืื ืขื ืืื ืฆืืฆืื ื ืคื ืืืืืืืื, ื ืืื ืืืืกื ืืืชื ื-2-3 ืืชืงื ื ืืืกืื ืืืฉืจืื ืืื ืืื ืื ืืื ืืื ืืืคืืข.
ืืื ืื ืกืืช ืืืืชืืื ืืืฉืชืืฉ?
ืขืืืจ ืืืฃ gitlab pip3 install hashget[plugins]
) ืืคืฉืื ืืงืจืื ืืืืคืขืื ืืชืืื ืืืืจื. ืื ื ืืืฉื ืฉืื ืืืงื 10-15 ืืงืืช ืืขืฉืืช ืืช ืื ืืืืจืื ืืคืฉืืืื. ืืืืจ ืืื ืชืืื ืื ืกืืช ืืืืืก ืืช ืืืืื ืืช ืืืืจืืืืืืืช ืฉืื, ืืืฆืืจ ืงืืฆื ืจืื ืืืืืช ืืฆืืจื ืืื ืืืืง ืืช ืืืืืกื, ืืฉืืง ืขื ืืจืืืืช, ืืกื ื ืชืื ืื hash ืืงืืื ืืฉืจืช hash ืื ืืชื ืืขืื ืืื, ืืืืืจืช ืืจืืืช ืื ืืืื ืืืืืื ืืืฆืืืจ ืืืื ืขื ืื ืฉื ืืชืืื.
ืืงืืจ: www.habr.com