Aws-cli: aws s3 cp/mv์— --no-overwrite ์˜ต์…˜ ์ถ”๊ฐ€

์— ๋งŒ๋“  2017๋…„ 10์›” 06์ผ  ยท  43์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: aws/aws-cli

aws s3 cp/mv ๋ช…๋ น์— ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ --no-overwrite ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ํŒŒ์ผ์„ s3 ๋ฒ„ํ‚ท์— ๋„ฃ๊ธฐ ์ „์— ๋Œ€์ƒ ๋Œ€์ƒ์ด ์ด๋ฏธ ์กด์žฌํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด ๋กœ์ง์€ AWS API(afaik...)์—์„œ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ณ  ๊ฒฝ์Ÿ ์กฐ๊ฑด ๋“ฑ์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜๋„ํ•˜์ง€ ์•Š์€ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

feature-request s3

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

์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ GitHub ๋ฌธ์ œ์— ๊ธฐ๋Šฅ ์š”์ฒญ์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ธฐ๋Šฅ ์š”์ฒญ์œผ๋กœ ํ‘œ์‹œ. cp ๋˜๋Š” mv ์—์„œ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์€ CLI๊ฐ€ ์—…๋กœ๋“œ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด S3๋ฅผ ์ฟผ๋ฆฌํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฏธ ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ sync ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cp ๋ฐ/๋˜๋Š” mv ์—์„œ๋„ ์ด๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ sync ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋Œ€์ƒ ๋ฒ„ํ‚ท์— ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ๊ธฐ์กด ํŒŒ์ผ์ด ๋งŽ์ด ์žˆ๋Š” ๊ฒฝ์šฐ sync ์— ์ฃผ์š” ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

aws s3 cp --recursive newdir s3://bucket/parentdir/ ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹ค์ œ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๊ฐ ํŒŒ์ผ๋งŒ ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค.

aws s3 sync newdir s3://bucket/parentdir/ ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ณต์‚ฌ ์ค‘์ธ ํŒŒ์ผ์„ ๋ฐฉ๋ฌธํ•˜์ง€๋งŒ s3://bucket/parentdir (์ด๋ฏธ ์ˆ˜์ฒœ ๋˜๋Š” ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ)์˜ ์ „์ฒด ํŒŒ์ผ ๋ชฉ๋ก์„ ํƒ์ƒ‰ํ•˜๊ณ  ๊ฐ ๊ธฐ์กด ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. .

์ถฉ๋ถ„ํžˆ ํฐ ๋Œ€์ƒ ๋ฒ„ํ‚ท์—์„œ aws s3 cp --recursive ๋Š” ๋ช‡ ์ดˆ๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ณ  aws s3 sync ๋Š” ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ sync ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ cp ์— "ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ" ์ฟผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด sync ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‹ค๋ฃจ๊ธฐ ์‰ฌ์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ํ•˜๋ ค๋ฉด ๋Œ€์‹  ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋„ ์ด ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ์„ ํƒ์  ๋Œ€ํ™”ํ˜• ํ”„๋กฌํ”„ํŠธ๋„ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ @sgrimm-sg, ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” CLI cp ๋ช…๋ น๋„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

aws s3 sync ์˜ ์˜ต์…˜์ด ๋˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. rsync ์—๋Š” ์ด ๊ธฐ๋Šฅ์ด --ignore-existing ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ๋ณธ ์„ค์ •์€ rsync ์— ์ด๋ฏธ ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ์„ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋ฏ€๋กœ rsync ์™€ ๋™์ผํ•œ ์˜ต์…˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์•„์นจ!

AWS CLI์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์œ„ํ•ด UserVoice ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ณผ์ •์˜ ์ผํ™˜์œผ๋กœ GitHub์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋กœ ๋Œ€ํ™”๋ฅผ ํฌ์„ํ•˜์ง€ ์•Š๊ณ  ๊ฐ€์žฅ ๊ด€์‹ฌ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋” ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ง€์›์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ UserVoice ์ž…๋ฌธ์„œ(์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ): ์•„์ด๋””์–ด๊ฐ€ ๊ฒŒ์‹œ๋œ ํ›„ ์‚ฌ๋žŒ๋“ค์€ ์•„์ด๋””์–ด์— ํˆฌํ‘œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œํ’ˆ ํŒ€์€ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์ œ์•ˆ์— ์ง์ ‘ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

GitHub์—์„œ ๊ธฐ์กด ๊ธฐ๋Šฅ ์š”์ฒญ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์„ธ์š”!

๊ทธ๋ฆฌ๊ณ  ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด ๋ฌธ์ œ๋Š” ํ›„๋Œ€๋ฅผ ์œ„ํ•ด GitHub์— ๊ณ„์† ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๊ฒŒ์‹œ๋ฌผ์„ UserVoice๋กœ ํ…์ŠคํŠธ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— GitHub ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์˜๊ฒฌ๊ณผ ํ† ๋ก ์„ ๊ณ„์† ์—ผ๋‘์— ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

GitHub๋Š” ๋ฒ„๊ทธ ๋ณด๊ณ ๋ฅผ ์œ„ํ•œ ์ฑ„๋„๋กœ ๋‚จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ, ์ด ๋ฌธ์ œ๋Š” ์ด์ œ https://aws.uservoice.com/forums/598381-aws-command-line-interface ์—์„œ ์ œ๋ชฉ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-AWS SDK ๋ฐ ๋„๊ตฌ ํŒ€

์ด ํ•ญ๋ชฉ์€ ํŠนํžˆ UserVoice( https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168406-add-no-overwrite-option-to-aws-s3- )์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ๋œ:

์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ GitHub ๋ฌธ์ œ์— ๊ธฐ๋Šฅ ์š”์ฒญ์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

@jamesls ๋ฉ‹์ง€๋„ค์š” ! ์ œ์•ˆ์— ์‘๋‹ตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? --no-overwrite๋Š” ํ›Œ๋ฅญํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด๋ฉฐ ์Šคํฌ๋ฆฝํŠธ๋กœ ํ˜ธ์ถœ์„ ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— +1. ๊ธฐ์กด Linux cp ๋ช…๋ น ์˜ต์…˜๊ณผ ์ผ์น˜ํ•˜๋„๋ก -n, --no-clobber๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

์ด ์š”์ฒญ์ด ๊ตฌํ˜„๋œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋กœ์ปฌ ๋ฐฑ์—… > S3๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Windows ๋ฐฐ์น˜ ํŒŒ์ผ๋กœ ์ž‘์—…ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ด๊ฒƒ์ด ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ธ ๊ฐ„๋‹จํ•œ ๋ฎ์–ด์“ฐ๊ธฐ ๊ธˆ์ง€ ๋˜๋Š” ์œ ์‚ฌํ•œ ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

sev3, +1

S3 ๋™๊ธฐํ™”๊ฐ€ ๋ชจ๋“  ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์–ด๋ ˆ์ด(๋ชฉ๋ก)์— ๋กœ๋“œํ•˜๋Š” Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ ๋™๊ธฐํ™”ํ•˜๋ ค๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋กœ๋“œํ•œ ๋‹ค์Œ ์–ด๋ ˆ์ด๋ฅผ ๋น„๊ตํ•˜๊ณ  S3 ์–ด๋ ˆ์ด์— ์—†๋Š” ๋กœ์ปฌ ํ•ญ๋ชฉ์„ ์—…๋กœ๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. .

๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์–ด๋ ˆ์ด(๋ชฉ๋ก)์— ๋กœ๋“œํ•˜๋Š” Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ ๋™๊ธฐํ™”ํ•˜๋ ค๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋กœ๋“œํ•œ ๋‹ค์Œ ์–ด๋ ˆ์ด๋ฅผ ๋น„๊ตํ•˜๊ณ  S3 ์–ด๋ ˆ์ด์— ์—†๋Š” ๋กœ์ปฌ ํ•ญ๋ชฉ์„ ์—…๋กœ๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. .

@southpaw5271 - ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ; )

๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์–ด๋ ˆ์ด(๋ชฉ๋ก)์— ๋กœ๋“œํ•˜๋Š” Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ ๋™๊ธฐํ™”ํ•˜๋ ค๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋กœ๋“œํ•œ ๋‹ค์Œ ์–ด๋ ˆ์ด๋ฅผ ๋น„๊ตํ•˜๊ณ  S3 ์–ด๋ ˆ์ด์— ์—†๋Š” ๋กœ์ปฌ ํ•ญ๋ชฉ์„ ์—…๋กœ๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. .

@southpaw5271 - ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ; )

๋” ์ด์ƒ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :( ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค!

์ด ํ”Œ๋ž˜๊ทธ๋Š” cp ๋ช…๋ น์—๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. $ sync ๋Š” ๋Œ€์ƒ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ํŒŒ์ผ ๋ณต์‚ฌ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

aws s3 cp --no-overwrite ./somefile s3://bucket/othername

s3์—์„œ ๋กœ์ปฌ๋กœ --no-overwrite ์˜ต์…˜๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์„ ์˜์˜ ๊ฐœ์ธ์ด ์‹ค์ˆ˜๋กœ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜์—ฌ ํ™”์ƒ์„ ์ž…์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทธ๋“ค์„ ์œ„ํ•œ "๊ฐ€๋“œ๋ ˆ์ผ"์„ ์„ค์น˜ํ•˜๋Š” ๋งค์šฐ ๊ฐ์‚ฌํ•œ ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

๋ชจ๋“  ์—…๋ฐ์ดํŠธ?

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

+1

+1

์ด์ „ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. db ์—ด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ๊ฐ ์กฐ์ง์€ ์ด์ œ ํŠน์ • ๋ฒ„ํ‚ท์— ์ž์ฒด ํด๋”๋ฅผ ๊ฐ€์ง). ๊ทธ๋ž˜์„œ ์ €๋Š” sync ๋ช…๋ น์— ์˜์กดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -skip-duplicate ๋˜๋Š” ์ผ์ข…์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ถ€๋ถ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1

์ด๊ฒƒ์€ ์ ˆ์‹คํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์™œ ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

+1

+10

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํˆฌํ‘œ๋„ ํ•ด์ฃผ์„ธ์š”!

+1

+1

+1

++1

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

+1

์•„์ง๋„ ์ผ์ด ์•„๋‹ˆ๋ผ๋Š”๊ฒŒ ๋ฏฟ๊ฒจ์ง€์ง€๊ฐ€ ์•Š๋„ค์š”. S3์—์„œ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

S3 ๋ฒ„ํ‚ท์—์„œ ๋กœ์ปฌ Linux ๋งˆ์šดํŠธ๋กœ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ๋Œ€์ƒ์˜ ํฌ๊ธฐ๋Š” S3 ๋ฒ„ํ‚ท๋ณด๋‹ค ~40GB ์ž‘์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ๊ฒƒ๋งŒ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค. ๋‹ค ๋ณต์‚ฌํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์—†๋Š”๋“ฏ..

๋น„์Šทํ•œ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” aws s3 sync --size-only ๋ถ€์šธ ํ”Œ๋ž˜๊ทธ๋กœ, ์›๋ณธ๊ณผ ๋Œ€์ƒ ๊ฐœ์ฒด ๊ฐ„์— ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋งŒ ๋Œ€์ƒ์—์„œ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค.

 --size-only (boolean) Makes the size of each key the only criteria used
       to decide whether to sync from source to destination.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ๋ช…๋ น,

aws s3 sync s3://<source bucket> s3://<destination bucket> --size-only 

_์ค‘์š”_: ๋จผ์ € --dry-run ๋ถ€์šธ ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ด ๋ช…๋ น์ด ๋ฌด์—‡์„ ํ•˜๋ ค๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ฃผ์˜์—์„œ ๋‚˜์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. #5456์ด DH์—์„œ ์ฒ˜๋ฆฌ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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