Restic: ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ ์‚ญ์ œ

์— ๋งŒ๋“  2014๋…„ 11์›” 15์ผ  ยท  57์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: restic/restic

์˜ˆ๋ฅผ ๋“ค์–ด ๋„ˆ๋ฌด ํฐ ํŒŒ์ผ์„ ์‹ค์ˆ˜๋กœ ๋ฐฑ์—…ํ•œ ๊ฒฝ์šฐ ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ(์žฌ๊ท€ ํฌํ•จ)๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

user interface feature suggestion

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

ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๊ธธ์€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์˜ ์ด๋ฆ„์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฑฐ๊ธฐ์— ๋„์ฐฉํ–ˆ์„ ๋•Œ ๊ฒฐ์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•  ๋•Œ ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ํ† ๋ก ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์—ฌํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฌด์˜์‹์ ์œผ๋กœ ํฌํ•จ๋œ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ข‹์€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ด ์•„์ด๋””์–ด์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์ž์˜ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„์ฃผ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, git checkouts์—์„œ ๋นŒ๋“œํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์—„์ฒญ๋‚œ ๋ฐ”์ด๋„ˆ๋ฆฌ(๊ฑฐ์˜ 100MB)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฉ๊ธˆ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ Restic ๋ฐฑ์—…์— ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฐฑ์—…๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์•„์ง ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ Restic์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ์˜ ์ด์ „ ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ๋งค์šฐ ์‰ฝ๊ฒŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์Šค๋ƒ…์ƒท์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ ์™ธ์—๋Š” ์žฅ๊ธฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์Šค๋ƒ…์ƒท์„ ๋ณต์›ํ•˜๊ณ , ์›ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ , ๋‚ ์งœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์Šค๋ƒ…์ƒท์„ ๋‹ค์‹œ ๋ฐฑ์—…ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๋งค์šฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. Restic์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”.

์ด์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์œ ํšจํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์žˆ์œผ๋ฉด ์ •๋ง ์ข‹์€ ๊ธฐ๋Šฅ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€๋Š” ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์•„์š”.

์•„๋งˆ๋„ ๊ตฌํ˜„ ๋…ธ๋ ฅ์„ ์‹ค์ œ๋กœ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ UX ๊ด€์ ์—์„œ ์ด๊ฒƒ์€ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  backup ๋ช…๋ น์„ ํ™•์žฅํ•˜์—ฌ ๋‹ค์†Œ ๋‚ฎ์€ ํ”„๋กœํ•„๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

restic backup [flags] FILE/DIR/SNAPSHOT [FILE/DIR/SNAPSHOT] ...

๋”ฐ๋ผ์„œ ์Šค๋ƒ…์ƒท์„ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น์„ ์ œ๊ณตํ•˜๋Š” ๋Œ€์‹  ๊ธฐ์กด ์Šค๋ƒ…์ƒท ID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๋ฐฑ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์‚ญ์ œ๋Š” ์ œ์™ธ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
restic backup ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ฌธ์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "์žฌ์‚ฌ์šฉ"๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ด ์ƒˆ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฑฐ์˜ ์•„๋ฌด๊ฒƒ๋„ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์Œ).

@dnnr ์ฐธ์กฐ https://github.com/restic/restic/issues/1550#issuecomment -358536554

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋‹น์‹ ์„ ๋”ฐ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ ์Šค๋ƒ…์ƒท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ๋ณ„๊ฐœ์˜ ์ž‘์—…์ด๋ฉฐ ์ž์ฒด ๋ช…๋ น์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ:

restic purge --snapshots abcd1234 deadbeef --paths /path/to/file1 /path/to/file2

๊ทธ๋ฆฌ๊ณ  --snapshots ๋Š” ๋ชจ๋“  ์Šค๋ƒ…์ƒท(๋˜๋Š” --tag ์ด ์ง€์ •๋œ ๋ชจ๋“  ์Šค๋ƒ…์ƒท)์—์„œ ์ž‘๋™ํ•˜๋ ค๋ฉด all ํ‚ค์›Œ๋“œ๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์€ yes ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ™•์ธ์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์‚ญ์ œํ•˜๋Š” --patterns ์˜ต์…˜์„ ๊ฐ–๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

purge ๋Š” ๋ช…๋ น ์ด๋ฆ„์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ๊ฐ€๋Šฅ์„ฑ์ž…๋‹ˆ๋‹ค. erase ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ delete ๋„ ์ข‹์€ ์„ ํƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ์„ ํƒํ•˜๋“  ์ž‘์—…์ด ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์‚ญ์ œ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ถ„๋ช…ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งํ•˜๋Š” ๋ฐฑ์—… ์†Œํ”„ํŠธ์›จ์–ด์ด๋ฉฐ ์œ„ํ—˜ํ•œ ์ž‘์—…์€ ๋ช…ํ™•ํ•˜๊ณ  ๋ช…์‹œ์ ์ด์–ด์•ผ ํ•˜๋ฉฐ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ช…๋ฐฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ์†Œ์Šค ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค( forget , prune ).

์ œ ์ƒ๊ฐ์—๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ์กด ๋ช…๋ น์˜ ๊ธฐ๋Šฅ๊ณผ ๊ฒน์น˜๋Š” ์ƒˆ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ช…๋ น ์ง‘ํ•ฉ์„ ๋” ์ง๊ต์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ backup , forget ๋ฐ prune ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ์™„์ „ํžˆ ๋ณ„๋„์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…ํ•˜๋Š” ๋Œ€๋กœ purge ์ถ”๊ฐ€ํ•˜๋ฉด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋‚ด ์ œ์•ˆ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ํŒŒ์ผ ์ž‘์—…์„ ์ œ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์ž‘์—…์— ๋Œ€ํ•ด ๋ณ„๊ฐœ์˜ ๋ช…๋ น์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” @alphapapa์˜ ์˜๊ฒฌ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ purge ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๊ฒƒ์€ ๋‚˜์œ ์ด๋ฆ„์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด @alvarolm์ด ์ด๋ฏธ ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ๋ฏธ๋ž˜์— ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ์ž‘์—…์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ rewrite ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ด ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ข‹์€ ๋Œ€์•ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ•ด๋‹น ๋ช…๋ น์— --purge ๋ฐ --rename ์˜ต์…˜์ด ํฌํ•จ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ข… ๋ช…๋ น์€ restic -r foo rewrite --purge snap1,snap2 path1 path2 ... ๋ฐ restic -r foo rewrite --rename snap1,snap2 pathFrom pathTo ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ๊ฐ€ ๊ตฌํ˜„ํ•˜๊ธฐ์— ํ•ฉ๋‹นํ•œ ๊ฒƒ์ธ์ง€ ์™„์ „ํžˆ ํ™•์‹ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—… ํ”„๋กœ๊ทธ๋žจ์ด ์˜๋ฏธํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฝค ๋ฉ‰๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค.

์‚ญ์ œ ํ•ญ๋ชฉ์„ ๋ฐฑ์—… ๋ช…๋ น์˜ ์ผ๋ถ€๋กœ ํฌํ•จํ•˜๋Š” ๊ฒƒ์€ ํ˜„๋ช…ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๊ด€์ ์—์„œ๋Š” ๋ฐฑ์—…์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ทผ๊ฑฐ๋กœ ์ •๋ฆฌ ๋ฐ ์ž ๊ธˆ ํ•ด์ œ ๋ฐ ์žŠ์–ด๋ฒ„๋ฆฌ๊ธฐ ์ž‘์—…๋„ ๋ฐฑ์—… ๋ช…๋ น์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ๋ณ„๋„์˜ ์ž‘์—…/๋ช…๋ น(์˜ˆ: rewrite ๋˜๋Š” purge ์ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@dnnr

๊ธ€์Ž„, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ช…๋ฐฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ์†Œ์Šค ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์žŠ์–ด๋ฒ„๋ ค์•ผ ํ•˜๋Š” ์Šค๋ƒ…์ƒท ID๋ฅผ ์ถ”์ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด Restic์ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ์Šค๋ƒ…์ƒท์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ƒ๋‹นํ•œ ๋ถ€๋‹ด์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ์กด ๋ช…๋ น์˜ ๊ธฐ๋Šฅ๊ณผ ๊ฒน์น˜๋Š” ์ƒˆ ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ช…๋ น ์ง‘ํ•ฉ์„ ๋” ์ง๊ต์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๋ผ์š”. ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด ์ œ์•ˆ๋œ ์ œ๊ฑฐ/์‚ญ์ œ/์žฌ์ž‘์„ฑ ๋ช…๋ น์€ backup ์™€ ์ „ํ˜€ ๊ฒน์น˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๊ฒƒ์€ ๊ธฐ์กด์˜ ๋ช…๋ น์— ์ง๊ตํ•œ๋‹ค.

ํ˜„์žฌ ๋ฐฑ์—…, ์žŠ์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋ฐ ์ •๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ์™„์ „ํžˆ ๋ณ„๋„์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํผ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋‚ด ์ œ์•ˆ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ๋ฌด์Šจ ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. purge ๋Š” ๋ฐฑ์—…, ์‚ญ์ œ ๋ฐ ์ •๋ฆฌ์™€ ์™„์ „ํžˆ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค.

  • backup : ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ์˜ ์ƒˆ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • forget : ๊ธฐ์กด ์Šค๋ƒ…์ƒท์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • prune : ์žŠํ˜€์ง„ ์Šค๋ƒ…์ƒท์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” Blob์„ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  • purge / rewrite /whatever: ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

backup ๋ช…๋ น์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

@rawtaz ์˜ˆ, rewrite ๋Š” ๊ธฐ์กด ์Šค๋ƒ…์ƒท์„ ๋ง ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ UI๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

restic --repo REPO rewrite --snapshots abcd1234 deadbeef --delete /path/to/file1 "*.unwanted-file-extension-glob"

์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ช…๋ น์ค„์„ ํ›จ์”ฌ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์‰ผํ‘œ๋ฅผ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—…: ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ์˜ ์ƒˆ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์˜๋ฏธ์—์„œ ์Šค๋ƒ…์ƒท์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋ฉด ์ƒˆ ์Šค๋ƒ…์ƒท ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(์ด์ „๊ณผ ๋™์ผํ•œ ์Šค๋ƒ…์ƒท์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—). ๊ธฐ์กด ์ปค๋ฐ‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•˜๋Š” git commit --amend ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ์ด ํ‹ฐ์ผ“์€ Git์„ ์žฌ์ฐฝ์กฐํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋น„์œ ๋Š” ์‹ค์ œ๋กœ ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—… ๋ช…๋ น์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๋ชจ๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ชจ๋“œ์˜ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์ œ์•ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋Ÿฐ ๋ง์„ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”? forget ๋ฐ prune ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ฌผ๊ฑด์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์˜๋ฏธ์—์„œ ์Šค๋ƒ…์ƒท์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋ฉด ์ƒˆ ์Šค๋ƒ…์ƒท์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(์ด์ „๊ณผ ๋™์ผํ•œ ์Šค๋ƒ…์ƒท์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—). ๊ธฐ์กด ์ปค๋ฐ‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•˜๋Š” git commit --amend๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ์ด ํ‹ฐ์ผ“์€ Git์„ ์žฌ์ฐฝ์กฐํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋น„์œ ๋Š” ์‹ค์ œ๋กœ ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋„ค๊ฐ€ ์˜ณ์•„. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— Restic์€ git์ด ์•„๋‹ˆ๋ฉฐ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ์ฃผ์†Œ ์ง€์ •์— ๋Œ€ํ•œ ์ง€์‹์„ ์š”๊ตฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ์•ˆํ•˜๋Š” ๋ช…๋ น์€ ์ƒˆ ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์กด ์Šค๋ƒ…์ƒท์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ณ„๊ฐœ์˜ ๋ช…๋ น์ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋Ÿฐ ๋ง์„ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”?

๊ธ€์Ž„, ๋‹น์‹ ์€ ๋งํ–ˆ๋‹ค :

UX ๊ด€์ ์—์„œ ์ด๊ฒƒ์€ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  ๋ฐฑ์—… ๋ช…๋ น์„ ํ™•์žฅํ•˜์—ฌ ๋‹ค์†Œ ๋‚ฎ์€ ํ”„๋กœํ•„๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ์ œ๊ฑฐํ•˜๊ธฐ์— ์™„๋ฒฝํ•˜๊ฒŒ ์ข‹์€ forget๊ณผ prune์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•ด๋ด…์‹œ๋‹ค. forget ๋Š” ์Šค๋ƒ…์ƒท์„ ์ œ๊ฑฐํ•˜๊ณ  prune ๋Š” ์–ผ๋ฃฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒท ๋‚ด์—์„œ ํŒŒ์ผ ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ช…๋ น์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๊ฐœ์˜ ๋ช…๋ น์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์˜๊ฒฌ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ–๊ณ  ์‹ถ์–ดํ•˜๋Š”์ง€ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์Šค๋ƒ…์ƒท์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์€ backup ๋ช…๋ น๊ณผ ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง๊ต์„ฑ ์ด์œ (๋งค์šฐ Go์™€ ๋น„์Šทํ•จ)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์šฉ์ ์ธ ๊ณ ๋ ค ์‚ฌํ•ญ๋„ ์—†์Šต๋‹ˆ๋‹ค. backup ๋ช…๋ น์€ ์ด๋ฏธ ์ถฉ๋ถ„ํžˆ ๋ณต์žกํ•˜๋ฏ€๋กœ ์ €๋Š” ๋‹ค๋ฅธ ๋ช…๋ น์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

prune ์™€ ์œ ์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— purge ๋ผ๋Š” ์ด๋ฆ„์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. change ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋ฉด restic backup , restic restore ๋ฐ restic change ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” ๋ช…๋ น ์ž‘์—…์— ๋Œ€ํ•ด ๋‹ค์Œ ์š”์ฒญ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  • ํŒŒ์ผ ์‚ญ์ œ(์˜ˆ: --delete
  • ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ(์˜ˆ: --rename

์ „์ž๋Š” ์ •ํ™•ํžˆ ์ด ๋ฌธ์ œ(์›๋ž˜)์— ๊ด€ํ•œ ๊ฒƒ์ด์ง€๋งŒ ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์‹ค์ œ๋กœ ์žˆ์Šต๋‹ˆ๊นŒ?

change ๋Š” ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ญ”๊ฐ€๋ฅผ ๊บผ๋‚ด์„œ ๋„ฃ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

repo/backup/snapshot์ด ๋ฒ„ํ‚ท์ด๋ผ๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค. ๋ณ€๊ฒฝ์€ ์–‘๋™์ด์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ง‘์–ด ๋“ค๊ณ  ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์–‘๋™์ด ์ž์ฒด๋ฅผ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜, ๊บผ๋‚ด์„œ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋„ฃ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์ผ๋ถ€ ์˜์–ด/๋ฏธ๊ตญ์ธ์€ ์–ด๋Š ๊ฒƒ์ด ๋” ์ ์ ˆํ•œ์ง€ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :) ๊ทธ๊ฒƒ์€ ์–ธ์–ดํ•™์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค.

ํ , ๊ทธ๋Ÿผ modify ?

modify ๊ฐ€ change ๋ณด๋‹ค ํ™•์‹คํžˆ ์ข‹์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง€๊ธˆ๊นŒ์ง€ ์ œ์•ˆ๋œ ๊ฒƒ ์ค‘ rewrite ๋˜๋Š” modify ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ถ„๋“ค์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค :)

์ด๊ฒƒ์ด ํŒŒ์ผ ์‚ญ์ œ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ผ๋ฉด forget ๋ช…๋ น์ด ์Šค๋ƒ…์ƒท ๋ฐ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋„ˆ๋ฌด ๋ณต์žกํ• ๊นŒ์š”?

์ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์‚ญ์ œ ๋ฐ ์ด๋ฆ„ ๋ณ€๊ฒฝ(๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ)์— ๊ด€ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ์ €๋Š” modify ํˆฌํ‘œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋‚˜๋Š” ๋‹น์‹ ์ด ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ forget ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ์ „์ž์˜ ๊ฒฝ์šฐ๋Š” ์•„๋‹™๋‹ˆ๋‹ค).

IMHO "rewrite"๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์žฅ ์ž˜ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

forget ๋ช…๋ น๋„ ๋งค์šฐ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋œ๋‹ค๋ฉด ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค ;)

๊ทธ๊ฒƒ์„ ํ˜ธ์ถœ, ๋ณ„๋„์˜ ๋ช…๋ น์ด ๋  ๊ฑฐ๋ผ๋ฉด modify ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค ๋‚˜์˜ ๋งˆ์Œ์— ๋“œ๋Š”๋ฟ๋งŒ ์•„๋‹ˆ๋ผ (I ์ข‹๊ฒ  ๋˜ํ•œ ๊ฐ™์€ modify-snapshot ๊ฐ€ ๋‹ค์†Œ ๊ธด ๊ฒฝ์šฐ์—๋„). ๋˜ํ•œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ˆ˜์ • ํŒŒ์ผ ์ž‘์—…(์ด๋ฆ„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€)์— ์ ํ•ฉํ•œ ์œ„์น˜์— ์ถฉ๋ถ„ํžˆ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ์ „ํžˆ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๊ธฐ๋Šฅ ํฌ๋ฆฌํ”„์˜ ๋ƒ„์ƒˆ๊ฐ€ ๊ฐ•ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‚˜๋Š” restic์ด ๋ฐฐ๊ด€ ๋ช…๋ น๊ณผ ํ•จ๊ป˜ Git์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๋ช…๋ น ๋ฒ”์ฃผ์˜ ์ด์ ์„ ์–ป์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ restic -h ๋Š” ๋ชจ๋“  ๋ช…๋ น์„ ์–ดํœ˜ ์ˆœ์„œ๋กœ ๋‚˜์—ดํ•˜๊ณ  ์ €์ˆ˜์ค€ ๋ช…๋ น(์˜ˆ: cat , list , "์ผ๋ฐ˜" ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ ˆ๋Œ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ)๊ณผ ๊ธฐ๋ณธ ์ƒ์œ„ ์ˆ˜์ค€ ๋ช…๋ น.

update ๊ณ ๋ คํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

rewrite ๊ฒฝ์šฐ +1 , ๋ฉ‹์ง„ Orwellian ๊ณ ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. :-)

alter
discard
evict
expel
expunge
extrude
oust
...
nuke ? ๐Ÿ˜„

์ƒˆ๋กœ์šด edit ๋ช…๋ น์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ”ํƒ•์œผ๋กœ edit ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น๋ถ„๊ฐ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ restic edit 40dc1520 remove dir/file

๋ฏธ๋ž˜์—๋Š” ์—ฌ๋Ÿฌ ์Šค๋ƒ…์ƒท(์Šค๋ƒ…์ƒท ID ๋˜๋Š” ๋‚ ์งœ ๋ฒ”์œ„์˜ ์ž…๋ ฅ ๋ชฉ๋ก)์—์„œ ํ•˜๋‚˜์˜ ํŒŒ์ผ ์‚ญ์ œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ ์ปจํ…์ŠคํŠธ์˜ ๋‹ค๋ฅธ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • rename ํŒŒ์ผ ๋ฐ ํด๋” ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
  • move ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์ˆ˜์ •

ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ƒ…์ƒท์—์„œ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(ID ๋˜๋Š” ์—ฌ๋Ÿฌ ๋‚ ์งœ ๋˜๋Š” ๋ฒ”์œ„ ๊ธฐ์ค€).

๋ฐฑ์—…๋œ ๋ฐ์ดํ„ฐ๋กœ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ restic์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ๊ทธ๊ฒƒ์€ ํŠน์ • ์‹œ์ ์—์„œ ์‚ฌ๋ฌผ์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. NAS์šฉ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŠนํžˆ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์œ ์Šค ์ผ€์ด์Šค์—์„œ ์œ ํšจ์„ฑ์„ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ์™œ ๋กœ์ปฌ ๋””์Šคํฌ์˜ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ํ˜„์žฌ ๋ฐ์ดํ„ฐ์™€ ๋™๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑ์—…์„ ๋งŒ์ง€์ž‘๊ฑฐ๋ฆด๊นŒ์š”? ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@rawtaz
๋‚ด ์ƒ๊ฐ (๊ฑฐ์˜) ์ •ํ™•ํžˆ.

ํŒŒ์ผ ์ œ๊ฑฐ์˜ ์œ ํšจ์„ฑ์€ ํ•ด๋‹น ๊ทœ์น™์œผ๋กœ ์ด๋ฏธ ๋ฐฑ์—…์„ ๋งŒ๋“  ํ›„ ์ œ์™ธ ๊ทœ์น™์—์„œ ์‹ค์ˆ˜๋ฅผ ๋ฐœ๊ฒฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ ์ œ๊ฑฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ์™ธ ๊ทœ์น™์˜ ์†Œ๊ธ‰ ์ ์šฉ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์˜ ๋…ผ์Ÿ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋™์˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์ƒ์˜ ์ž‘์—…(์˜ˆ: ์ด๋ฆ„ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€)์— ๋Œ€ํ•ด์„œ๋Š” ๊ท€ํ•˜์˜ ์˜์‹ฌ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ธฐ๋Šฅ ํฌ๋ฆฌํ”„์ด๋ฉฐ ๋ฐฑ์—… ๋„๊ตฌ ์ธ IMHO์˜ ๋ฒ”์œ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜๋„ํ•˜์ง€ ์•Š์€ ํŒŒ์ผ์„ ์‹ค์ˆ˜๋กœ ๋ฐฑ์—…ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ ๋ฐ ๋””์Šคํฌ ์‚ฌ์šฉ์ƒ์˜ ์ด์œ ๋กœ ์ข…์ข… ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์˜ค๋ž˜๋œ ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•„๋‹ˆ๋ฉด "์•„๊ธฐ๋ฅผ ๋ชฉ์š•๋ฌผ๊ณผ ํ•จ๊ป˜ ๋ฒ„๋ ค์•ผ" ํ•˜๋Š”์ง€์˜ ์ฐจ์ด๋ฅผ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์Šค๋ƒ…์ƒท ๋‚ด์—์„œ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์†”์งํžˆ ๋งํ•ด์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์—… ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์—†์œผ๋ฉฐ ์ด์ƒํ•œ ๊ธฐ๋Šฅ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๊ฒƒ์„ ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ ์Šค๋ƒ…์ƒท์„ ๋ณต์›ํ•˜๊ณ  ํŒŒ์ผ์„ ์žฌ์ •๋ ฌํ•˜๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •๋œ ๋‚ ์งœ๋กœ ๋‹ค์‹œ ๋ฐฑ์—…ํ•˜์—ฌ Restic ์™ธ๋ถ€์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ Restic์ด ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๋‚˜์ค‘์— ๋” ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ) .

๋ฌผ๋ก  ์Šค๋ƒ…์ƒท์—์„œ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ธฐ๋Šฅ๋„ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ›จ์”ฌ ๋” ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— Restic์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ, ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๊ธธ์€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์˜ ์ด๋ฆ„์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฑฐ๊ธฐ์— ๋„์ฐฉํ–ˆ์„ ๋•Œ ๊ฒฐ์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•  ๋•Œ ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ํ† ๋ก ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์—ฌํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ช…๋ น ์ด๋ฆ„์— ๋Œ€ํ•œ ์ œ์•ˆ: restic purge .

์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

@fd0
์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š” :)
์šฐ๋ฆฌ๋Š” ์ •๋ถ€ ํ™˜๊ฒฝ์—์„œ restic์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ฐฑ์—…์—์„œ ๋‹จ์ผ ํŒŒ์ผ ์‚ญ์ œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ผ๋ถ€ ์ž‘์—…์— ์ž๊ธˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ด๊ฒƒ๋„ ๊ธฐ๋Œ€๋˜๋„ค์š”! restic find ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

restic purge [flags] PATTERN

purge ๋ฅผ host (-H) snapshots (-s) or paths (--path) ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ

๊ทธ๋Ÿฌ๋ฉด ์•„๋งˆ๋„ restic prune ๊ฐ€ ๋‚˜์ค‘์— ์‹ค์ œ ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ํŒŒ์ผ์ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐฑ์—…๋˜์—ˆ์„ ๋•Œ ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ฌธ์„œ ํด๋”์˜ ํฐ ๋น„๋””์˜ค ๋˜๋Š” ์ผ๋ถ€ ๊ธฐ๋ฐ€ ํŒŒ์ผ). ์ง€๊ธˆ์€ restic find ๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ํŒŒ์ผ์ด ํฌํ•จ๋œ ๋ชจ๋“  ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ๊ฒฝ์šฐ(์‹œ๊ฐ„์ƒ) ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š” !

์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ํ˜ธ๋ฅผ ๊ตฌ๋…ํ•˜๋ฉด ์•Œ๋ฆผ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๋ฐฑ์—…์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ clone ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ํŒŒ์ผ์€ ์Šคํฌ๋ž˜์น˜ ์œ„์น˜์— ๋ชจ๋‘ ๋ณต์›ํ•  ํ•„์š” ์—†์ด ์ œ์™ธํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—…์„ ๋ณต์ œํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด๋Š” ํŠน์ • ํฌ์ธํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๊นŒ?

  • restic backup --exclude <something> --clone <original backup id> [new feature]
  • restic forget <original backup id>
  • restic prune

rewrite ๋ฐ modify ๋Š” ์œ„์˜ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋งคํฌ๋กœ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด, ๊ทธ๊ฒƒ์€ ์ฐธ์œผ๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค @nullcake

๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค, @nullcake.

ํ•˜์ง€๋งŒ ๊ณผ๊ฑฐ ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด ๋ณดํ†ต ๋ฉฐ์น  ๋˜๋Š” ๋ช‡ ์ฃผ ํ›„์— ์“ธ๋ชจ์—†๋Š” ๋กœ๋“œ๋ฅผ ๋ฐฑ์—…ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์กฐ์‚ฌํ•  ์‹œ๊ฐ„์ด ์žˆ์„ ๋•Œ. ์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ๋‚ด๊ฐ€ ํŠน์ •ํ•œ --์ œ์™ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ๋•Œ๊นŒ์ง€ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ฐฑ์—…์ด 12๊ฐœ ์ด์ƒ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ •๋ฆฌ๊ฐ€ ๋‹จ์ผ ๋ฐฑ์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜๋”๋ผ๋„ ๊ท€ํ•˜๊ฐ€ ์ œ์•ˆํ•œ ๋Œ€๋กœ ์—ฌ์ „ํžˆ ํฐ ์ง„์ „์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ;)

์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ์„ธ์šฐ์„ธ์š”. :)

์ด๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šด ์•„์ด๋””์–ด์ด์ง€๋งŒ backup ๋ช…๋ น์ด ์ด๋ฏธ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ณ  ๋ฐฑ์—…์„ ์œ„ํ•ด ๋‹ค๋ฅธ "์†Œ์Šค"๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋” ๋ณต์žกํ•ด์งˆ๊นŒ ๋‘๋ ต์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๊ธฐ๋Šฅ์€ ์ด๋ฏธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์ •ํ™•ํ•˜๊ฒŒ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ๋งŒ). ๋ณ„๋„์˜ ๋ช…๋ น(์˜ˆ: purge ๋“ฑ)์€ ๊ธฐ๋Šฅ์„ ๋ฉ‹์ง€๊ฒŒ ์บก์Šํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CrashPlan์—๋Š” ํŒŒ์ผ์ด ์ œ์™ธ๋  ๋•Œ ๊ธฐ์กด์˜ ๋ชจ๋“  ์Šค๋ƒ…์ƒท์—์„œ ์ œ๊ฑฐ๋œ๋‹ค๋Š” ํฅ๋ฏธ๋กœ์šด ๋™์ž‘์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋˜์—ˆ๋‚˜์š”?

์•„๋‹ˆ์š”.

@fd0 ์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ๋ฐฉ๊ธˆ ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์บ์‹œ๋ฅผ ์ œ์™ธํ•˜์ง€ ์•Š๊ณ  ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์ด๋ฆ„์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์ œ์•ˆ: scrub ( purge ๋„ ๊ดœ์ฐฎ์ง€ --rename ํ”Œ๋ž˜๊ทธ๋Š” ๋‚˜์—๊ฒŒ ์ด์ƒํ•˜๊ฒŒ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๋‚ด ์ƒ๊ฐ:

restic scrub [--dry-run] [--replace=<clean|prune>] [--diff] [--all | snapshot-ID...]

--replace=clean ๋Š” ์ˆ˜์ •๋œ ๋ชจ๋“  ์Šค๋ƒ…์ƒท์„ ์ œ๊ฑฐํ•˜๊ณ  prune ๋Š” ์ดํ›„์— prune ์ •๋ฆฌํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. --diff ๋Š” ์ˆ˜์ •๋œ ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•œ ์ฐจ์ด์ ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. --dry-run ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

restic backup ๋ชจ๋“  --exclude ํ”Œ๋ž˜๊ทธ๋„ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. --host ๋ฐ --time ๋„ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(๊ฐ๊ฐ ๊ธฐ์กด ์Šค๋ƒ…์ƒท์˜ ๊ฐ’์„ ๋Œ€์ฒดํ•จ). --tag ํŽธ์ง‘์€ ์ด๋ฏธ restic tag ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ณด๊ธฐ์—๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ cmd_scrub.go ํŒŒ์ผ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ธ๋ฑ์Šค ์ž‘์—…์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋ช‡ ๊ฐ€์ง€ API ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ˆœ์ง„ํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋˜๋Š” ์–ด๋ ค์›€(์–ด์จŒ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ผ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •)?

์ด๊ฒƒ์€ ๋งค์šฐ ์˜ค๋ž˜๋œ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ..์ด ๊ธฐ๋Šฅ์„ ์–ป์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  Google์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ์ด ๋ฌธ์ œ๊ฐ€ ๊ฒฐ์‹ค์„ ๋งบ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ๋™์•ˆ ๋ณต์ œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒท์—์„œ ์‚ฌํ›„ ํŒŒ์ผ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ์ผ๊ธ‰ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  Google์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ์ด ๋ฌธ์ œ๊ฐ€ ๊ฒฐ์‹ค์„ ๋งบ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ๋™์•ˆ ๋ณต์ œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒท์—์„œ ์‚ฌํ›„ ํŒŒ์ผ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ์ผ๊ธ‰ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ง€๊ธˆ ์•ฝ 1๋…„ ๋™์•ˆ restic์„ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด restic์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๊ฑฐ๊ธฐ์— ์žˆ์–ด์•ผ ํ•  ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” restic์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ๋Š” ๋งค์šฐ ์ทจ์•ฝํ•˜๊ณ  ๋งค์šฐ ์‰ฝ๊ฒŒ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด์ œ ๋ฐฑ์—…์— ์žˆ์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค(์ œ์™ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ ์ดํ›„๋กœ ๋‚ด ์ €์žฅ์†Œ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ณ  ์•„์ง ๋ณต๊ตฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํŒŒ์ผ์ด ์‹ค์ˆ˜๋กœ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@MorgothSauron ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๊ฒƒ์ด ํฌํ•จ๋œ ์Šค๋ƒ…์ƒท๋„ ์ œ๊ฑฐํ–ˆ๋Š”๋ฐ, ์ด๊ฒƒ์ด ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์ž ์‹œ ๋™์•ˆ์€ ๋‹จ์ผ ๋ช…๋ น์„ ํ†ตํ•ด duplicati๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ ์ดํ›„๋กœ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณด์•˜๋“ฏ์ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ํŠนํžˆ ์Šค๋ƒ…์ƒท์—์„œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ๋ฐฑ์—…ํ•  ๋•Œ ํ•œ ๋ฒˆ์”ฉ ์‹ค์ˆ˜๋ฅผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š” ;)

์ด ์‹œ์ ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์œ ์ง€ ๊ด€๋ฆฌ์ž ๋ฐ ๊ฐœ๋ฐœ์ž ์‹œ๊ฐ„์€ restic์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ํ•„์š”ํ•˜๋ฏ€๋กœ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์ด ๋ฌธ์ œ๊ฐ€ ๊ตฌํ˜„๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ƒˆ๋กœ์šด rest-server๋ฅผ ์ถœ์‹œํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ›Œ๋ฅญํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๊ณ  , ๋ฒ„๊ทธ๊ฐ€ ์—†๋Š” ๊ฒฌ๊ณ ํ•œ PR์„ ๋งŒ๋“ค๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ์ž์™€ ํ˜‘๋ ฅํ•˜์—ฌ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ ํฌํ•จ ๋Œ€์ƒ์œผ๋กœ ๊ณ ๋ ค๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํŠน์ • ๋ฌธ์ œ๋Š” @fd0 ์ด ์ด๋ฏธ ๊ทธ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ์ถ•๋ณต์„ ์ค€ ๋ฌธ์ œ์ด๋ฏ€๋กœ "์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”๊ฐ€"๋ณด๋‹ค๋Š” ๊ฒฌ๊ณ ํ•œ ๊ตฌํ˜„(์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” repos๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์žˆ์Œ)์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์ดˆ์ ์„ ๋งž์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

์ด๋Ÿฌํ•œ PR์€ ๊ธฐ๋ณธ์ ์ด์–ด์•ผ ํ•˜๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ๋ฐœ์ ์œผ๋กœ ์ž‘์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”์˜ ์˜ˆ๋Š” ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ๋ช…๋ น์ด ๋˜์‹ญ์‹œ์˜ค(์˜ˆ: ์ด๋ฒˆ ํ˜ธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ํˆฌํ‘œ๋œ rewrite ).
  • ์Šค๋ƒ…์ƒท ๋ชฉ๋ก์„ ๊ธฐ๋ณธ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค( all ์ง€์› ํฌํ•จ)(์˜ˆ: all ๋˜๋Š” 098db9d5 ๋˜๋Š” 098db9d5 af92db33 .
  • ํ•˜๋‚˜ ์ด์ƒ์˜ --exclude <pattern> ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€ ์Šค๋ƒ…์ƒท์—์„œ ์ œ์™ธ/์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ๋ฐฑ์—…ํ•  ๋•Œ ๋ˆ„๋ฝ๋œ --exclude ์ž…๋‹ˆ๋‹ค). ์˜ˆ: --exclude="*.o" , --exclude=*.unwanted , --exclude="*.o" --exclude=*.unwanted --exclude=.DS_Store .

์—ฌ๊ธฐ์—์„œ ๊ทผ๊ฑฐ๋Š” ๊ฐœ๋… ์ฆ๋ช…๊ณผ ์ตœ์†Œํ•œ์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ œํ’ˆ์œผ๋กœ ์ตœ์†Œํ•œ์˜ ์‹œ์ž‘์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ๋งˆ์น˜๋ฉด backup ๋ช…๋ น์—์„œ ๋‹ค๋ฅธ --exclude-* ์ธ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. rewrite ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“ค๋ฉด "์ˆ˜์ •"ํ•˜๊ธฐ ์œ„ํ•œ backup ๋ช…๋ น๊ณผ ๊ฑฐ์˜ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

~restic -r /some/repo ๋ชจ๋‘ ๋‹ค์‹œ ์ž‘์„ฑ --exclude=" .o" --exclude= .unwanted --exclude=.DS_Storerestic -r /some/repo ๋‹ค์‹œ ์“ฐ๊ธฐ 098db9d5 af92db33 --exclude=". o" --exclude= .unwanted --exclude=.DS_Store~

๊ด€๋ จ ๋ฉ”๋ชจ์—์„œ https://github.com/restic/restic/issues/323 ์—์„œ @middelink ๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์€ ๊ธฐ์กด ์Šค๋ƒ…์ƒท์˜ ์ผ๋ถ€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์„ ์œ„ํ•œ ์˜๊ฐ์ด๋‚˜ ๊ธฐ์ดˆ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rawtaz

์‚ฌ๋ ค ๊นŠ์€ ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”.

@rawtaz์˜ ๋Œ“๊ธ€์— ๊ฐ€๊นŒ์šด rewrite ๊ตฌํ˜„ ์ดˆ์•ˆ์„ ์ถ”๊ฐ€ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ณ  ์˜ค๋ฅ˜ ์—†์ด restic check --read-data ๋ฅผ ์ „๋‹ฌํ•˜์ง€๋งŒ ๋งŽ์ด ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

backup ๋ช…๋ น์— ๋งค์šฐ ๊ฐ€๊นŒ์šด ๊ตฌ๋ฌธ์„ ์–ป์œผ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ --exclude , --iexclude ๋ฐ --exclude-file ๊ฐ€ ์ง€์›๋˜์ง€๋งŒ ํ…Œ์ŠคํŠธ๋˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” --exclude-if-present ์˜ต์…˜๋„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค(๋‚˜์—๊ฒŒ ์ด์ƒ์ ์ธ ์›Œํฌํ”Œ๋กœ๋Š” '์•„, ๋ฐฑ์—…ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ CACHEDIR.TAG ๋ฐ restic rewrite '์™€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ฐฑ์—…์ด ์ˆ˜ํ–‰๋œ ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ์—์„œ rewrite ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ง€๊ธˆ์€ ์•ˆ...

๋˜ํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šค๋ƒ…์ƒท์„ ๋Œ€์ฒดํ•˜๋Š” ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ˜„์žฌ ๊ธฐ๋ณธ ๋™์ž‘์€ rewrite ํƒœ๊ทธ๋กœ ์ƒˆ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ --inplace arg๋กœ๋„ ๊ต์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ด ๋“œ๋ฏธํŠธ๋ฆฌ,

์ด ๊ตฌํ˜„์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค!

์ง€๊ธˆ๊นŒ์ง€ 600๊ฐœ ํŒŒ์ผ๊ณผ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์Šค๋ƒ…์ƒท์˜ ์ž‘์€ ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ๋กœ Linux์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์› ์ž‘์—… ๋ฐ diff๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ œ์™ธ๋œ ํด๋”๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” 100๊ฐœ ์ด์ƒ์˜ ์Šค๋ƒ…์ƒท์ด ์žˆ๋Š” ๋งŽ์€ GB์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” "๋ณต์ œ" ์‹ค์ œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ง‘์ค‘์ ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Windows ์†Œ์Šค ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ œ์•ˆ: ์žฌ์ž‘์„ฑ ๋‹จ๊ณ„์—์„œ ์ œ์™ธ๊ฐ€ ํฌํ•จ๋œ ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•œ ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. (์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์Šค๋ƒ…์ƒท์— " rewrite " ํƒœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.)

restic rewrite --add-tag mytag -i thisfileshouldberemoved.txt all

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด "_thisfileshouldberemoved.txt_"๊ฐ€ ํฌํ•จ๋œ ์Šค๋ƒ…์ƒท์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ๋” ์ง์ ‘์ ์ธ --inplace ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ์•„์ฃผ ์ข‹์€ ์ž‘ํ’ˆ์ž…๋‹ˆ๋‹ค.

@NovacomExperts ๋„ค, ์ €์˜ ์ดˆ๊ธฐ ๋™๊ธฐ๋Š” 'ํžˆ์Šคํ† ๋ฆฌ ํŽธ์ง‘์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ'์ด์—ˆ์Šต๋‹ˆ๋‹ค. --exclude * ์ค‘์š”ํ•œ ๊ฒƒ์„ ์ œ์™ธํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์‰ฝ๊ณ  ์ด๊ฒƒ์—์„œ ๋ณต๊ตฌํ•  ๋ฐฉ๋ฒ•์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค(๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ ๋ฐฑ์—…์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค). --dry-run ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์‹ค์ œ ์Šค๋ƒ…์ƒท์„ ๊ฐ€์ ธ์˜ค๊ณ  ์ •์ƒ์ธ์ง€ ํ™•์ธํ•œ ํ›„ ์†Œ์Šค ์Šค๋ƒ…์ƒท์„ ๋ช…์‹œ์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ˜„์žฌ ์ด๊ฒƒ์ด ์™„์ „ํžˆ ๋‹ฌ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋ฐ ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์Šค๋ƒ…์ƒท์„ '๊ด€์ฐฐ'ํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€๋งŒ ์ด์ „ ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ €๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ rewrite ์Šค๋ƒ…์ƒท ์ด๋ฆ„์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ --inplace ๋ฐ ---keep-source-tagged before-rewrite --tag-destination after-rewrite ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ( --add-tag ๋Š” ์ด์ „ ์Šค๋ƒ…์ƒท์ธ์ง€ ์ƒˆ ์Šค๋ƒ…์ƒท์ธ์ง€ ์—ฌ๋ถ€๊ฐ€ ์•ฝ๊ฐ„ ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.)

์–ด์จŒ๋“  ๊ด€๋ฆฌ์ž์˜ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋ฉด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”์‹ . ๋‚ด ๊ธฐ๋ณธ ์ €์žฅ์†Œ๋Š” ํ˜„์žฌ ์•ฝ 2TB์ž…๋‹ˆ๋‹ค. LVM ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“  ํ›„ ๋‚˜์ค‘์— ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

@dionorgua ๋‹น์‹ ์˜ ์ดˆ๊ธฐ ๋™๊ธฐ๊ฐ€ ์™„์ „ํžˆ ๋งž์Šต๋‹ˆ๋‹ค. ์ €๋Š” "์œ„ํ—˜ํ•œ" ์˜ต์…˜ --inplace ๋ฅผ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ตœ๋Œ€ํ•œ ๋ฉ€๋ฆฌ(ํ™•์‹คํžˆ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์•„๋‹˜)ํ•˜์—ฌ ๊ทธ๋ ‡๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ํ‘œ๋ฅผ ๋˜์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ --inplace ๋ณด๋‹ค --keep-source-tagged / --tag-destination ์˜ ๋ˆ„๋ฝ๋œ ์ธ์ˆ˜ ์˜ค๋ฅ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์ œ, ๋‚˜๋Š” ๋ฐค์ƒˆ restic์— ์˜ํ•ด ๋ฐฑ์—…๋œ ํด๋” ์•ˆ์— ๋ณต์ œ๋œ ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ(65GB)๋ฅผ ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ์–ด์ œ์˜ ์Šค๋ƒ…์ƒท์„ forget ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ "์˜ฌ์ธ"ํ•˜์—ฌ ๊ตฌํ˜„์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. forget + prune ํ›„ 400GB ์ €์žฅ์†Œ์—์„œ 65GB๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ •์ƒ์ด๋ฉฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์Šค๋ƒ…์ƒท์— ๊ฑธ์ณ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋” ์ง‘์ค‘์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ

์ž˜๋ชป๋œ #2720 ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์†Œ์Œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

ํ , ๊ทธ๋Ÿผ modify ?

๋งค์šฐ ๋Šฆ์—ˆ์ง€๋งŒ _rectify_๋Š” ๋ฐฑ์—…์—์„œ ํŠน์ • ํŒŒ์ผ ์‚ญ์ œ ๋ช…๋ น์— ๋Œ€ํ•œ ์ œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค.

2731์€ ํฅ๋ฏธ์ง„์ง„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋งค์šฐ ๋Šฆ์—ˆ์ง€๋งŒ rectify๋Š” ๋ฐฑ์—…์—์„œ ํŠน์ • ํŒŒ์ผ ์‚ญ์ œ ๋ช…๋ น์— ๋Œ€ํ•œ ์ œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค.

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

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