Restic: ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฑ์—”๋“œ๋ฅผ ์ค‘๋ณต์œผ๋กœ ๋งŒ๋“œ๋Š” Rclone

์— ๋งŒ๋“  2019๋…„ 09์›” 22์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: restic/restic

rclone์„ ์œ„ํ•ด ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฐฑ์—”๋“œ๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์œ ์ง€ ๊ด€๋ฆฌ(์˜ˆ: ๋ณด์•ˆ ๋ฌธ์ œ)์™€ ์„ค์ •์ด ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค.

์ด ์กฐ์น˜์˜ ๋ถ€์ •์ ์ธ ์ธก๋ฉด์ด ์žˆ์Šต๋‹ˆ๊นŒ?

  • ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ(์‚ฌ์šฉ์ž๊ฐ€ rclone์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๊นŒ?)

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

ํ›„์ž๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ํ•ญ์ƒ restic ๋ฐฐํฌ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ์กด ๋ฐฑ์—”๋“œ๋ฅผ rclone์œผ๋กœ ๊ต์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€(๋˜๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€์‹ ) rclone์„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์„ ํƒ์  ์ข…์†์„ฑ(์˜ˆ: apt ๋ฐ portage)์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. rclone์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ restic์€ rclone์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์—ฌ (1) ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŽ˜์ด์ง€ ์ฐธ์กฐ, (2) ์‹œ์Šคํ…œ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ rclone ์„ค์น˜, (3) "curl + bash" ๋ช…๋ น๊ณผ ํ•จ๊ป˜ "๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค"๋ผ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ช…๋ น์„ ์š”์ฒญํ•œ ํ›„์—๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Rclone์€ ๋ฐฑ์—… ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์•„๋‹Œ ์ „์†ก ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

@jtagcat "์ €์žฅ์†Œ"๋Œ€์‹  "๋ฐฑ์—”๋“œ"๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ์ œ์•ˆ์— ์ •์‹ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฐฑ์—”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋ฐฉํ•ด๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ตœ์†Œํ•œ ๋ฌธ์„œ์—์„œ๋Š” rclone์„ ๊ธฐ๋ณธ ๋ฐฑ์—”๋“œ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๊ณ  ๋‹ค๋ฅธ ์›๊ฒฉ ๋ฐฑ์—”๋“œ์— "๋ ˆ๊ฑฐ์‹œ"๋กœ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์šฐ๋ฆฌ๊ฐ€ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋ฐฑ์—”๋“œ๋ฅผ ๋ ˆ๊ฑฐ์‹œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์„œ์—์„œ๋Š” ๋ ˆ๊ฑฐ์‹œ๋กœ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ์ž‘์—…์—์„œ๋Š” ๋ ˆ๊ฑฐ์‹œ๋ฅผ ์ฆ‰์„์—์„œ rclone์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ rclone ๋ฐฑ์—”๋“œ์—์„œ๋Š” ์ง์ ‘ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ๊ณ ( ์ œ ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์˜ ์˜ˆ๋Š” http ), ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋Š” ์ž„์‹œ ๊ตฌ์„ฑ ํŒŒ์ผ๋กœ ๋ฒˆ์—ญํ•œ ๋‹ค์Œ rclone๊ณผ ํ•จ๊ป˜ --config /path/to/config ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

rclone์„ restic์— ์–ด๋–ป๊ฒŒ ํฌํ•จ์‹œํ‚ค์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๊ฐ€ ๊ธ์ •์ ์œผ๋กœ ๋‹ซํžˆ๋ ค๋ฉด ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
'rclone not found, running curl https://rclone.org/install.sh | sudo bash '(curl ๋ฐ sudo๊ฐ€ ์‹œ์Šคํ…œ์— ์—†์„ ์ˆ˜ ์žˆ์Œ)์™€ ๊ฐ™์Šต๋‹ˆ๊นŒ? pkg ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹จ์ˆœํžˆ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋ฐฑ์—”๋“œ๋ฅผ ์ž„์‹œ rclone ๊ตฌ์„ฑ์œผ๋กœ ์ฆ‰์‹œ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค . ์ˆœ์ „ํžˆ rclone์„ ๋ฌผ๊ฑด์— ์‚ฌ์šฉํ•  ๋•Œ ๋‚˜ ์ž์‹ ๋„ ์•ฝ๊ฐ„ ์งœ์ฆ์ด ๋‚ฉ๋‹ˆ๋‹ค.

rclone์„ restic์— ์–ด๋–ป๊ฒŒ ํฌํ•จ์‹œํ‚ค์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ ์ ์—์„œ ๋ฌด์—‡์ด ๊ฐ€๋Šฅํ•œ์ง€ ์กฐ์‚ฌํ•˜์ง€ ์•Š์•˜๋‹ค. ๋ช‡ ๋ฒˆ์ด๊ณ  ์ƒ๊ฐํ•ด ๋ณธ ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

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

rclone ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. posix ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

  • curl - ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜์ง€ ์•Š์€ ์‹œ์Šคํ…œ์„ ํ•œ๋‘ ๋ฒˆ ๋ดค์Šต๋‹ˆ๋‹ค.
  • sudo - ์œ„์™€ ๋™์ผ
  • unzip/๊ธฐํƒ€ ์••์ถ• ํ’€๊ธฐ, ์ตœ์†Œ ์„ค์น˜์— rclone์„ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์•„๋งˆ๋„ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ rclone์„ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ๊ณณ์— 'rclone์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ'์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์–ด๋–ค ์ด์œ ๋กœ rclone ์ข…์†์„ฑ์ด ๋ฐฑ์—…์œผ๋กœ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ).

๋ฏธ์•ˆํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ (์ž๋™์œผ๋กœ) ์„ค์น˜ํ•˜๋ ค๋Š” ์‹œ๋„๋Š” (์•„๋งˆ๋„) restic์˜ ๋ฌธ์ œ ํ† ๋ก ์—์„œ ์ฝ์€ ์ตœ์•…์˜ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

๋•Œ๋ฌธ์—:

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

์•„๋งˆ๋„ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ rclone์„ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ๊ณณ์— 'rclone์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ'์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์–ด๋–ค ์ด์œ ๋กœ rclone ์ข…์†์„ฑ์ด ๋ฐฑ์—…์œผ๋กœ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ).

๋ฏธ์•ˆํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ (์ž๋™์œผ๋กœ) ์„ค์น˜ํ•˜๋ ค๋Š” ์‹œ๋„๋Š” (์•„๋งˆ๋„) restic์˜ ๋ฌธ์ œ ํ† ๋ก ์—์„œ ์ฝ์€ ์ตœ์•…์˜ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

๋•Œ๋ฌธ์—:

* The environment may not allow installation of new software.

* The user (or the system administrator) may not want new software to be installed.

* Accessing the Internet without explicit request may be undesirable.

* The installer may guess a wrong place for the new software.

* Installation of new software may interfere with the normal functions of the environment (for example, by providing executables outside of regular places where users/package managers/administrators/auditors/whatever else expect to find them, and thus creating confusion).

* The installation may fail or produce incorrect results; either in an obvious manner, or in a subtle and hard-to-discover way.

์˜ˆ, ๋ฌด์—‡์„ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

restic rclone not found...
Install 'rclone' with command 'curl https://rclone.org/install.sh | sudo bash'  to provide rclone backends? [Y/n]

ํ›„์ž๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ํ•ญ์ƒ restic ๋ฐฐํฌ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ์กด ๋ฐฑ์—”๋“œ๋ฅผ rclone์œผ๋กœ ๊ต์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€(๋˜๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€์‹ ) rclone์„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์„ ํƒ์  ์ข…์†์„ฑ(์˜ˆ: apt ๋ฐ portage)์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. rclone์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ restic์€ rclone์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์—ฌ (1) ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŽ˜์ด์ง€ ์ฐธ์กฐ, (2) ์‹œ์Šคํ…œ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ rclone ์„ค์น˜, (3) "curl + bash" ๋ช…๋ น๊ณผ ํ•จ๊ป˜ "๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค"๋ผ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ช…๋ น์„ ์š”์ฒญํ•œ ํ›„์—๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข…์†์„ฑ์ด ์—†๋Š” ์ •์  ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ์„œ์˜ RESTIC(ํŠนํžˆ Linux์—์„œ)์˜ ํŠน์„ฑ์€ ๋ฒ ์–ด ๋ฉ”ํƒˆ ๋ณต์› ๋ฐ ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ ˆ๋Œ€์ ์œผ๋กœ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ ์‚ฌ๋‚ด ๋ฐฑ์—…์— "rest-server"(์ธ์ฆ์„ ์œ„ํ•œ haproxy ํ”„๋ŸฐํŠธ์—”๋“œ ํฌํ•จ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” restic์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ค‘์š”ํ•œ ๋ณต์› ์‹œ๊ฐ„ ๋™์•ˆ RESTIC ๋ฐ RCLONE ์—‰๋ง์œผ๋กœ ๊ฐ•์ œ ๋œ ๊ฒฝ์šฐ, ์•„๋งˆ ๋‹ค๋ฅธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข…์†์„ฑ์ด ์—†๋Š” ์ •์  ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ์„œ์˜ RESTIC(ํŠนํžˆ Linux์—์„œ)์˜ ํŠน์„ฑ์€ ๋ฒ ์–ด ๋ฉ”ํƒˆ ๋ณต์› ๋ฐ ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ ˆ๋Œ€์ ์œผ๋กœ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ ์‚ฌ๋‚ด ๋ฐฑ์—…์— "rest-server"(์ธ์ฆ์„ ์œ„ํ•œ haproxy ํ”„๋ŸฐํŠธ์—”๋“œ ํฌํ•จ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” restic์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ค‘์š”ํ•œ ๋ณต์› ์ค‘์— RESTIC _๋ฐ_ RCLONE์„ _๊ฐ•์ œ_ ํ–ˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Rest ๋ฐฑ์—”๋“œ๋Š” Restic์— ๊ณ ์œ ํ•˜๋ฏ€๋กœ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋„ rest-server๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋„ฃ๋Š” ๊ฒƒ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” 'rclone์ด ๋‚ด์žฅ๋œ ๊ฒฝ์šฐ์—๋งŒ' ์ƒํƒœ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ด๊ฒƒ์„ ํ•„์š”๋กœํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— (๋‚ด์žฅ๋œ rclone์€ neet์ด์ง€๋งŒ). ์ง€๊ธˆ ๋‹น์žฅ์€ 'rclone์—์„œ ์ด๋ฏธ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ƒˆ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์„ธ์š”'์™€ ์ด ์ž‘์—…์„ ๊ท€์ฐฎ๊ฒŒ ํ•˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ(์•„๋งˆ๋„ ๋ช‡ ๋‹ฌ ํ›„์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

๋ฒ ์–ด ๋ณธ์˜ ๊ฒฝ์šฐ bzip์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋Œ€์ฒด ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋‚ด๊ฐ€ ๋“ค์€ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด bzip์„ ์„ค์น˜ํ•˜๋Š” ์œ ์ผํ•œ ์ด์œ ๋Š” ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค). ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‚˜๋Š” ์•„๋งˆ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ œ ํ• ์ผ์€ #2705์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ rclone์— ๋Œ€ํ•ด ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฐ€์ง€๋Š” ์†Œ์Šค์™€ ๋Œ€์ƒ์œผ๋กœ ๋‘ ๊ฐœ์˜ URI๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์‹  ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rawtaz
๋‹น์‹ ์€ rclone์ด ๊ตฌ์„ฑ ์•„๋ฌด๊ฒƒ๋„ ๋‹น์‹ ์„ ํ•„์š”๋กœํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ง€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
_~/.rclone.conf_ ๋˜๋Š” _~/.config/rclone/rclone.conf_๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๋˜๋Š” ๋Œ€์ฒด ์˜ต์…˜์— ๋Œ€ํ•ด ์ฐธ์กฐํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.
์ด์ œ ๋‹ค์Œ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

rclone copy ./file.txt :sftp:subdir --sftp-host=localhost --sftp-key-file=~/.ssh/id_rsa

์™„๋ฒฝํ•˜๊ฒŒ ์œ ํšจํ•˜๋ฉฐ ๋ฌธ์„œ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. https://rclone.org/docs/#backend -path-to-dir

ํ™˜๊ฒฝ์„ ํ†ตํ•ด ๋ชจ๋“  ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ CLI ์ธ์ˆ˜์™€ ํ˜ผํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

export RCLONE_SFTP_HOST=localhost
export RCLONE_SFTP_KEY_FILE=~/.ssh/id_rsa
rclone ls :sftp:

rclone์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ https://github.com/rclone/rclone/issues/633์— ์„ค๋ช…๋˜์–ด

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