Borg: ๋ณด๊ทธ ๋ชฉ๋ก์˜ ํฌ๊ธฐ ์ž๋ฆฌ ํ‘œ์‹œ์ž<repo/>

์— ๋งŒ๋“  2017๋…„ 07์›” 24์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: borgbackup/borg

borg list ๋Š” ์•„์นด์ด๋ธŒ์— ๋Œ€ํ•œ ๋ชฉ๋ก ์•„์นด์ด๋ธŒ, ์•„์นด์ด๋ธŒ, ์‹œ๊ฐ„ ๋ฐ ID๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๊ณ  ํฐ ์•„์นด์ด๋ธŒ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ(์˜ˆ: https://github.com/borgbackup/borg/issues/2870 ๋•Œ๋ฌธ์—) ๋ชจ๋“  ์•„์นด์ด๋ธŒ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๊ฒƒ์„ ์ฐพ์•„ ์ž ์žฌ์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ฐ ์•„์นด์ด๋ธŒ๋ฅผ borg info ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ด๊ฒƒ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋งŽ์€ ์•„์นด์ด๋ธŒ์—์„œ ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์ €๋Š” "์ด ์•„์นด์ด๋ธŒ"์˜ "์ค‘๋ณต ์ œ๊ฑฐ๋œ ํฌ๊ธฐ"์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ’(๋˜๋Š” ์ˆ˜ํ–‰ ๋ฐฉ๋ฒ•)์„ ์š”์•ฝํ•˜๊ณ  ๋งจ ์•„๋ž˜์— "๋ชจ๋“  ์•„์นด์ด๋ธŒ ํฌ๊ธฐ: XY GB" ํ–‰์„ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ๋“ /์–ด๋”˜๊ฐ€์— ์บ์‹œํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์•„์นด์ด๋ธŒ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ์บ์‹œ๊ฐ€ ๋งŒ๋ฃŒ๋  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์•„์นด์ด๋ธŒ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š๋Š” ํ•œ).

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ์ด ํ•œ ์ค„์งœ๋ฆฌ(๊ธฐ์ˆ ์ ์œผ๋กœ :wink:)๋ฅผ ๋‘๋“œ๋ ค์„œ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ์•„์นด์ด๋ธŒ ๋ชฉ๋ก์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

printf 'Archive\t\t\t\t\tOrig\tComp\tDedup\n'; printf '%-32.32s\t%s\t%s\t%s\n' $(borg info --json --sort-by name --glob-archives '*' REPO | jq '.archives[] | "\(.name) \(.stats.original_size) \(.stats.compressed_size) \(.stats.deduplicated_size)"' | sed --expression='s/^"//;s/"$//' | numfmt --field='2-4' --to=iec)

jq ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ˜•์‹์„ ์ง€์ •ํ•˜๊ณ  numfmt ๋ฅผ coreutils ์—์„œ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋Œ€ํ‘œ์ ์ธ ๋ผ์ธ ์„ธํŠธ๋กœ ์ž˜๋ฆผ).

Archive                 Orig    Comp    Dedup
hostname-home-20190613-090600       288G    92G 12K
hostname-home-20190613-091013       288G    92G 117K
hostname-home-20190617-005337       220G    61G 6.9M
hostname-home-20190617-022904       288G    92G 16M
hostname-home-20190617-225658       288G    92G 40K
hostname-sysconfig-20190617-023108  12M 3.2M    40K
hostname-sysconfig-20190617-225820  12M 3.2M    32K
hostname-sysconfig-20190618-144623  12M 3.2M    105K
hostname-sysconfig-20190621-224259  13M 3.3M    110K
hostname-system-20190613-081754     300G    97G 20M
hostname-system-20190613-091212     300G    97G 14M
hostname-system-20190618-144635     300G    97G 37M
hostname-system-20190621-224311     308G    98G 4.6M
hostname-system-20190621-230350     308G    98G 617K

39๊ฐœ์˜ ์•„์นด์ด๋ธŒ๋งŒ ์žˆ์œผ๋ฉด ์†๋„๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ๋ฐฑ์—… ์‹คํ–‰์˜ ์ผ๋ถ€๋กœ --last 1 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ณ„๋„์˜ ๋กœ๊ทธ์— ์ €์žฅํ•˜์—ฌ ์š”์ฒญ ์‹œ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

์ตœ๊ทผ๊นŒ์ง€ ์ด์— ํ•„์š”ํ•œ ์ธํ”„๋ผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. borg list <repo> ๋Œ€ํ•œ "comment" ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ (๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—) ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์š”์ฒญ ์‹œ ํ•ญ๋ชฉ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด์ „๊ณผ ๊ฐ™์ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํ•ญ๋ชฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ „์ฒด ์•„์นด์ด๋ธŒ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ๋ชฉ๋ก์— ๋งŽ์€ ์•„์นด์ด๋ธŒ๊ฐ€ ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ๋Š๋ฆฐ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ.

borg info -a '*' , borg info --last/first x

borg info -a '*'

์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ „์ฒด ์•„์นด์ด๋ธŒ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค. ๋ชฉ๋ก์— ๋งŽ์€ ์•„์นด์ด๋ธŒ๊ฐ€ ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ๋Š๋ฆฐ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ.

๋„ค, ๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์‹ค์„ ์บ์‹œ์— ์ €์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

_์ค‘๋ณต ์ œ๊ฑฐ๋œ ํฌ๊ธฐ_๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฉฐ ์บ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ #2764๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†๋„๊ฐ€ ์ƒ๋‹นํžˆ ๋นจ๋ผ์ง€์ง€๋งŒ ํ•ญ์ƒ ๋‹ค์†Œ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ์ด ํ•œ ์ค„์งœ๋ฆฌ(๊ธฐ์ˆ ์ ์œผ๋กœ :wink:)๋ฅผ ๋‘๋“œ๋ ค์„œ ๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ์•„์นด์ด๋ธŒ ๋ชฉ๋ก์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

printf 'Archive\t\t\t\t\tOrig\tComp\tDedup\n'; printf '%-32.32s\t%s\t%s\t%s\n' $(borg info --json --sort-by name --glob-archives '*' REPO | jq '.archives[] | "\(.name) \(.stats.original_size) \(.stats.compressed_size) \(.stats.deduplicated_size)"' | sed --expression='s/^"//;s/"$//' | numfmt --field='2-4' --to=iec)

jq ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON ํ˜•์‹์„ ์ง€์ •ํ•˜๊ณ  numfmt ๋ฅผ coreutils ์—์„œ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋Œ€ํ‘œ์ ์ธ ๋ผ์ธ ์„ธํŠธ๋กœ ์ž˜๋ฆผ).

Archive                 Orig    Comp    Dedup
hostname-home-20190613-090600       288G    92G 12K
hostname-home-20190613-091013       288G    92G 117K
hostname-home-20190617-005337       220G    61G 6.9M
hostname-home-20190617-022904       288G    92G 16M
hostname-home-20190617-225658       288G    92G 40K
hostname-sysconfig-20190617-023108  12M 3.2M    40K
hostname-sysconfig-20190617-225820  12M 3.2M    32K
hostname-sysconfig-20190618-144623  12M 3.2M    105K
hostname-sysconfig-20190621-224259  13M 3.3M    110K
hostname-system-20190613-081754     300G    97G 20M
hostname-system-20190613-091212     300G    97G 14M
hostname-system-20190618-144635     300G    97G 37M
hostname-system-20190621-224311     308G    98G 4.6M
hostname-system-20190621-230350     308G    98G 617K

39๊ฐœ์˜ ์•„์นด์ด๋ธŒ๋งŒ ์žˆ์œผ๋ฉด ์†๋„๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ๋ฐฑ์—… ์‹คํ–‰์˜ ์ผ๋ถ€๋กœ --last 1 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๋ณ„๋„์˜ ๋กœ๊ทธ์— ์ €์žฅํ•˜์—ฌ ์š”์ฒญ ์‹œ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰