Restic: ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹

ไฝœๆˆๆ—ฅ 2014ๅนด11ๆœˆ15ๆ—ฅ  ยท  57ใ‚ณใƒกใƒณใƒˆ  ยท  ใ‚ฝใƒผใ‚น: restic/restic

ๅคงใใ™ใŽใ‚‹ใƒ•ใ‚กใ‚คใƒซใชใฉใฎๅถ็™บ็š„ใชใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใฎๅ ดๅˆใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰็‰นๅฎšใฎใƒ•ใ‚กใ‚คใƒซใพใŸใฏใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช๏ผˆๅ†ๅธฐใ‚’ๅซใ‚€๏ผ‰ใ‚’ๅ‰Š้™คใงใใ‚‹ใ‚ˆใ†ใซใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚

user interface feature suggestion

ๆœ€ใ‚‚ๅ‚่€ƒใซใชใ‚‹ใ‚ณใƒกใƒณใƒˆ

ใ—ใŸใŒใฃใฆใ€ใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ๆ˜Ž็ขบใชๆ–นๆณ•ใŒใ‚ใ‚Šใพใ™ใ€‚ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใงใใ‚‹ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ใ“ใจใงใ™ใ€‚ ใ‚ณใƒžใƒณใƒ‰ใฎๅๅ‰ใฏใ€ใใ“ใซ็€ใ„ใŸใจใใซๆฑบๅฎšใ•ใ‚Œใพใ™ใ€‚ ๅฟ…่ฆใซๅฟœใ˜ใฆใ€ไป–ใฎใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใ‚’ๅ†ๆคœ่จŽใงใใพใ™ใ€‚

ๅ‚ๅŠ ใ—ใฆใใ‚Œใฆใ‚ใ‚ŠใŒใจใ†ใ€ใ“ใ“ใงใ“ใ‚ŒไปฅไธŠ่ญฐ่ซ–ใ™ใ‚‹ๅฟ…่ฆใฏใชใ„ใจๆ€ใ„ใพใ™๏ผ

ๅ…จใฆใฎใ‚ณใƒกใƒณใƒˆ57ไปถ

ใใ‚Œใฏๆœฌๅฝ“ใซใ„ใ„ใงใ—ใ‚‡ใ†ใ€‚

ใพใŸใ€็„กๆ„่ญ˜ใฎใ†ใกใซๅซใพใ‚Œใฆใ„ใŸๆฉŸๅฏ†ใƒ‡ใƒผใ‚ฟใ‚’ๅ‰Š้™คใ™ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚

ใ“ใ‚Œใฏ็ด ๆ™ดใ‚‰ใ—ใ„ๆฉŸ่ƒฝใงใ™๏ผ

ใ“ใฎใ‚ขใ‚คใƒ‡ใ‚ขใซ้–ขใ™ใ‚‹้–‹็™บ่€…ใ‹ใ‚‰ใฎใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใฏใ‚ใ‚Šใพใ™ใ‹๏ผŸ ใใ‚Œใฏใจใฆใ‚‚ใ„ใ„ใงใ—ใ‚‡ใ†ใ€‚ ใŸใจใˆใฐใ€git checkoutsใ‹ใ‚‰ๆง‹็ฏ‰ใ—ใŸใƒ—ใƒญใ‚ฐใƒฉใƒ ใŒๅทจๅคงใชใƒใ‚คใƒŠใƒช๏ผˆ็ด„100 MB๏ผ‰ใ‚’ไฝœๆˆใ—ใฆใ„ใฆใ€ใ“ใ‚Œใ‚‰ใŒResticใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใซไธๅฟ…่ฆใซใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ‚’็™บ่ฆ‹ใ—ใพใ—ใŸใ€‚ ็งใฏใพใ ใƒ†ใ‚นใƒˆๆฎต้šŽใซใ‚ใ‚‹ใฎใงใ€Resticใ‚’้•ทใ„้–“ไฝฟ็”จใ—ใฆใ„ใพใ›ใ‚“ใ€‚ใ—ใŸใŒใฃใฆใ€ๅ•้กŒใฎๅคใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ—ใฆใ‚‚ๅ•้กŒใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ ใŸใ ใ—ใ€ใ“ใฎๅ•้กŒใฏ้žๅธธใซ็ฐกๅ˜ใซ็™บ็”Ÿใ™ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใŸใ‚ใ€ใ™ในใฆใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅฟ˜ใ‚Œใ‚‹ไปฅๅค–ใซใ€้•ทๆœŸ็š„ใช่งฃๆฑบ็ญ–ใŒใ‚ใ‚‹ใจใ‚ˆใ„ใงใ—ใ‚‡ใ†ใ€‚

ใ™ในใฆใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅพฉๅ…ƒใ—ใ€ไธ่ฆใชใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ—ใ€ๆ—ฅไป˜ใ‚’ๆ‰‹ๅ‹•ใง่จญๅฎšใ™ใ‚‹ใ“ใจใงใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ†ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ™ใ‚‹ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใ“ใจใฏๅฏ่ƒฝใ ใจๆ€ใ„ใพใ™ใŒใ€ๆ˜Žใ‚‰ใ‹ใซใใ‚Œใซใฏ้žๅธธใซ้•ทใ„ๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ™ใ€‚ ResticใŒใ“ใ‚Œใ‚’ใƒใ‚คใƒ†ใ‚ฃใƒ–ใซๅฎŸ่กŒใงใใ‚Œใฐ็ด ๆ™ดใ‚‰ใ—ใ„ใจๆ€ใ„ใพใ™ใ€‚

ใ‚ใ‚ŠใŒใจใ†ใ€‚

ใ“ใ‚Œใซใฏ่ค‡ๆ•ฐใฎๆœ‰ๅŠนใชใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใŒใ‚ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚ ๆŒใฃใฆใ„ใ‚‹ใฎใฏๆœฌๅฝ“ใซ่‰ฏใ„ๆฉŸ่ƒฝใฎใ‚ˆใ†ใงใ™ใ€‚ ็งใฏใŠใใ‚‰ใใ„ใคใ‹ใใ‚Œใ‚’่‡ชๅˆ†ใงไฝฟใ†ใงใ—ใ‚‡ใ†ใ€‚

ใŠใใ‚‰ใๅฎŸ้š›ใซใฏๅฎŸ่ฃ…ใฎๅŠดๅŠ›ใฏๅค‰ใ‚ใ‚Šใพใ›ใ‚“ใŒใ€UXใฎ่ฆณ็‚นใ‹ใ‚‰ใฏใ€ใพใฃใŸใๆ–ฐใ—ใ„ใ‚ณใƒžใƒณใƒ‰ใ‚’่ฟฝๅŠ ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€ backupใ‚ณใƒžใƒณใƒ‰ใ‚’ๆ‹กๅผตใ™ใ‚‹ใ“ใจใงใ€ใ‹ใชใ‚Š็›ฎ็ซ‹ใŸใชใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

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

ใ—ใŸใŒใฃใฆใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใ‚ณใƒžใƒณใƒ‰ใ‚’ๆไพ›ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆIDใซๅŸบใฅใ„ใฆๆ–ฐใ—ใ„ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚’ไฝœๆˆใงใใพใ™ใ€‚ ใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™คใฏใ€้™คๅค–ใƒซใƒผใƒซใ‚’ไฝฟ็”จใ—ใฆๅฎŸ็พใ•ใ‚Œใพใ™ใ€‚
restic backupใซ้–ขใ™ใ‚‹ใ™ในใฆใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใฏใ€ๅŸบๆœฌ็š„ใซใ€Œๅ†ๅˆฉ็”จใ€ใงใใพใ™๏ผˆใคใพใ‚Šใ€ใ“ใฎๆ–ฐๆฉŸ่ƒฝใฎใŸใ‚ใซ่ฟฝๅŠ ใ™ใ‚‹ๅฟ…่ฆใฏใปใจใ‚“ใฉใ‚ใ‚Šใพใ›ใ‚“๏ผ‰ใ€‚

@dnnrhttps ๏ผš //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ใฏใ€ใ‚ณใƒžใƒณใƒ‰ๅใฎ1ใคใฎๅฏ่ƒฝๆ€งใงใ™ใ€‚ eraseใ‚‚ใ€ deleteใจๅŒๆง˜ใซ่‰ฏใ„้ธๆŠžใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚ ใฉใกใ‚‰ใ‚’้ธๆŠžใ—ใฆใ‚‚ใ€ๆ“ไฝœใซใ‚ˆใฃใฆใƒ‡ใƒผใ‚ฟใŒๅฎŒๅ…จใซๅ‰Š้™คใ•ใ‚Œใ‚‹ใ“ใจใŒๆ˜Ž็ขบใซใชใ‚Š

ใพใ‚ใ€ใใ‚Œใฏๆ˜Žใ‚‰ใ‹ใ ใจๆ€ใฃใŸใฎใงใ€ๅพŒใงใ‚ฝใƒผใ‚นใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ™ใ‚‹ใ‚นใƒ†ใƒƒใƒ—ใ‚’็œ็•ฅใ—ใพใ—ใŸ๏ผˆ forgetใ‹ใ‚‰ใ€ใŠใใ‚‰ใprune ๏ผ‰ใ€‚

็งใฎๆ„่ฆ‹ใงใฏใ€ใ“ใฎใ‚ˆใ†ใซใ™ใ‚‹ใจใ€ๆ—ขๅญ˜ใฎใ‚ณใƒžใƒณใƒ‰ใฎๆฉŸ่ƒฝใจ้‡่ค‡ใ™ใ‚‹ๆ–ฐใ—ใ„ใ‚ณใƒžใƒณใƒ‰ใ‚’่ฟฝๅŠ ใ™ใ‚‹ๅ ดๅˆใจๆฏ”่ผƒใ—ใฆใ€ใ‚ณใƒžใƒณใƒ‰ใ‚ปใƒƒใƒˆใŒใ‚ˆใ‚Š็›ดไบคใ—ใŸ็Šถๆ…‹ใซไฟใŸใ‚Œใพใ™ใ€‚ ็พๅœจใ€ backup ใ€ forget ใ€ pruneใ‚ใ‚Šใ€ใใ‚Œใ‚‰ใฏใ™ในใฆๅฎŒๅ…จใซๅˆฅใ€…ใฎใ“ใจใ‚’ใ—ใพใ™ใ€‚ ใ‚ใชใŸใŒ่ชฌๆ˜Žใ™ใ‚‹ใ‚ˆใ†ใซpurge่ฟฝๅŠ ใ™ใ‚‹ใจใ€ใใ‚ŒใŒๅค‰ใ‚ใ‚Šใพใ™ใ€‚ ็งใฎๆๆกˆใฏใใ†ใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

1ใคใฎใƒ•ใ‚กใ‚คใƒซๆ“ไฝœใ‚’ๆๆกˆใ—ใฆใ„ใ‚‹ใฎใงใ€ๅๅ‰ใ‚’ๅค‰ๆ›ดใงใใ‚‹ใจไพฟๅˆฉใงใ™ใ€‚

ใ“ใฎใ‚ฟใ‚คใƒ—ใฎๆ“ไฝœใซใฏๅ€‹ๅˆฅใฎใ‚ณใƒžใƒณใƒ‰ใŒๅฟ…่ฆใงใ‚ใ‚‹ใจใ„ใ†@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

ใพใ‚ใ€ใใ‚Œใฏๆ˜Žใ‚‰ใ‹ใ ใจๆ€ใฃใŸใฎใงใ€ๅพŒใงใ‚ฝใƒผใ‚นใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ™ใ‚‹ใ‚นใƒ†ใƒƒใƒ—ใ‚’็œ็•ฅใ—ใพใ—ใŸ๏ผˆforgetใ‚’ไฝฟ็”จใ—ใฆใ€ใŠใใ‚‰ใใƒ—ใƒซใƒผใƒ‹ใƒณใ‚ฐใ—ใพใ™๏ผ‰ใ€‚

ใใ‚Œใฏๆ˜Žใ‚‰ใ‹ใซๆ˜Žใ‚‰ใ‹ใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ ใพใŸใ€ใƒฆใƒผใ‚ถใƒผใŒใฉใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆIDใŒๅค‰ๆ›ดใ•ใ‚Œใ€ๅฟ˜ใ‚Œใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ‹ใ‚’่ฟฝ่ทกใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใฎใงใฏใชใใ€ResticใŒใƒฆใƒผใ‚ถใƒผใฎใŸใ‚ใซใใ‚Œใ‚’ๅ‡ฆ็†ใ™ใ‚‹ๆ–นใŒใ‚ˆใ„ใงใ—ใ‚‡ใ†ใ€‚ใ“ใ‚Œใฏใ€ใƒฆใƒผใ‚ถใƒผใŒใƒชใƒใ‚ธใƒˆใƒชๅ†…ใฎใ™ในใฆใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๆ›ธใๆ›ใˆใ‚‹ๅ ดๅˆใซใ‹ใชใ‚Šใฎ่ฒ ๆ‹…ใซใชใ‚Šใพใ™ใ€‚

็งใฎๆ„่ฆ‹ใงใฏใ€ใ“ใฎใ‚ˆใ†ใซใ™ใ‚‹ใจใ€ๆ—ขๅญ˜ใฎใ‚ณใƒžใƒณใƒ‰ใฎๆฉŸ่ƒฝใจ้‡่ค‡ใ™ใ‚‹ๆ–ฐใ—ใ„ใ‚ณใƒžใƒณใƒ‰ใ‚’่ฟฝๅŠ ใ™ใ‚‹ๅ ดๅˆใจๆฏ”่ผƒใ—ใฆใ€ใ‚ณใƒžใƒณใƒ‰ใ‚ปใƒƒใƒˆใŒใ‚ˆใ‚Š็›ดไบคใ—ใŸ็Šถๆ…‹ใซไฟใŸใ‚Œใพใ™ใ€‚

ใฉใ†ใ„ใ†ๆ„ๅ‘ณใ‹ใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ ้€†ใฎๅ ดๅˆใงใ™ใ€‚ ใ“ใฎๆๆกˆใ•ใ‚ŒใŸใƒ‘ใƒผใ‚ธ/ๅ‰Š้™ค/ๆ›ธใๆ›ใˆใ‚ณใƒžใƒณใƒ‰ใฏใ€ backupใจใพใฃใŸใ้‡่ค‡ใ—ใฆใ„ใพใ›ใ‚“ใ€‚ใคใพใ‚Šใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ‡ใƒผใ‚ฟใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚ ใ“ใ‚Œใฏๆ—ขๅญ˜ใฎใ‚ณใƒžใƒณใƒ‰

็พๅœจใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ€ๅฟ˜ๅดใ€ๆ•ด็†ใŒใ‚ใ‚Šใ€ใใ‚Œใ‚‰ใฏใ™ในใฆๅฎŒๅ…จใซๅˆฅใ€…ใฎใ“ใจใ‚’ใ—ใพใ™ใ€‚ ใ‚ใชใŸใŒ่ชฌๆ˜Žใ™ใ‚‹ใ‚ˆใ†ใซใƒ‘ใƒผใ‚ธใ‚’่ฟฝๅŠ ใ™ใ‚‹ใจใ€ใใ‚ŒใŒๅค‰ใ‚ใ‚Šใพใ™ใ€‚ ็งใฎๆๆกˆใฏใใ†ใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

็นฐใ‚Š่ฟ”ใ—ใพใ™ใŒใ€ใ“ใ“ใงไฝ•ใ‚’่€ƒใˆใฆใ„ใ‚‹ใฎใ‹ใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ purgeใฏใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ€ๅฟ˜ๅดใ€ใŠใ‚ˆใณๆ•ด็†ใจใฏๅฎŒๅ…จใซๅˆ†้›ขใ•ใ‚Œใฆใ„ใพใ™ใ€‚

  • backup ๏ผšๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒ‘ใ‚นใฎๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚
  • forget ๏ผšๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚
  • prune ๏ผšใ‚ฌใƒ™ใƒผใ‚ธ-ๅฟ˜ใ‚Œใ‚‰ใ‚ŒใŸใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ๆœชไฝฟ็”จใฎblobใ‚’ๅŽ้›†ใ—ใพใ™ใ€‚
  • purge / rewrite / whatever๏ผšๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚

backupใ‚ณใƒžใƒณใƒ‰ใ‚’2ใคใฎใƒขใƒผใƒ‰ใงๅ‹•ไฝœใ•ใ›ใ‚‹ใ“ใจใ‚’ๆๆกˆใ—ใฆใ„ใพใ™ใ€‚ไธ€ๆ–นใฏใƒ‡ใƒผใ‚ฟใ‚’ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใ€ใ‚‚ใ†ไธ€ๆ–นใฏใƒ‡ใƒผใ‚ฟใ‚’

@rawtazใฏใ„ใ€ rewriteใฏใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๆ–‡ๅญ—้€šใ‚Šๆ›ธใๆ›ใˆใ‚‹ใŸใ‚ใ€่‰ฏใ„ๆๆกˆใงใ™ใ€‚ ๆฌกใฎใ‚ˆใ†ใชUIใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚

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

ใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใฎไฝœๆˆใŒใฏใ‚‹ใ‹ใซ่ค‡้›‘ใซใชใ‚‹ใŸใ‚ใ€ๅŒบๅˆ‡ใ‚Šๆ–‡ๅญ—ใจใ—ใฆใ‚ณใƒณใƒžใ‚’ไฝฟ็”จใ—ใชใ„ใ“ใจใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚

ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—๏ผšๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒ‘ใ‚นใฎๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚

ใ‚ใ‚‹ๆ„ๅ‘ณใงใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฎๅ†…ๅฎนใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใจใ€ๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใŒไฝœๆˆใ•ใ‚Œใพใ™๏ผˆไปฅๅ‰ใจๅŒใ˜ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใงใฏใชใ„ใŸใ‚๏ผ‰ใ€‚ git commit --amend่€ƒใˆใฆใฟใฆใใ ใ•ใ„ใ€‚ใ“ใ‚Œใฏใ€ๆ—ขๅญ˜ใฎใ‚ณใƒŸใƒƒใƒˆใซๅŸบใฅใ„ใฆๆ–ฐใ—ใ„ใ‚ณใƒŸใƒƒใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ ใ“ใฎใƒใ‚ฑใƒƒใƒˆใฏGitใฎๅ†็™บๆ˜Žใซๅ‘ใ‘ใฆๆ€ฅ้€Ÿใซ้€ฒใ‚“ใงใ„ใ‚‹ใ‚ˆใ†ใซ่ฆ‹ใˆใ‚‹ใŸใ‚ใ€้กžๆŽจใฏๅฎŸ้š›ใซใฏใ‹ใชใ‚Š้ฉๅˆ‡ใงใ™ใ€‚

ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚ณใƒžใƒณใƒ‰ใ‚’2ใคใฎใƒขใƒผใƒ‰ใงๅ‹•ไฝœใ•ใ›ใ‚‹ใ“ใจใ‚’ๆๆกˆใ—ใฆใ„ใพใ™ใ€‚1ใคใฏใƒ‡ใƒผใ‚ฟใ‚’ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใ€ใ‚‚ใ†1ใคใฏใƒ‡ใƒผใ‚ฟใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚

็งใฏใใ‚Œใ‚’่จ€ใ‚ใชใ‹ใฃใŸใ€‚ ใชใœใ ใ‚ใ†๏ผŸ forgetใจprune ใ€ใ“ใ‚Œใ‚‰ใฏ็‰ฉใ‚’ๅ–ใ‚Š้™คใใฎใซใพใฃใŸใๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚

ใ‚ใ‚‹ๆ„ๅ‘ณใงใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฎๅ†…ๅฎนใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใจใ€ๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใŒไฝœๆˆใ•ใ‚Œใพใ™๏ผˆไปฅๅ‰ใจๅŒใ˜ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใงใฏใชใ„ใŸใ‚๏ผ‰ใ€‚ git commit --amendใ‚’่€ƒใˆใฆใฟใฆใใ ใ•ใ„ใ€‚ใ“ใ‚Œใฏใ€ๆ—ขๅญ˜ใฎใ‚ณใƒŸใƒƒใƒˆใซๅŸบใฅใ„ใฆๆ–ฐใ—ใ„ใ‚ณใƒŸใƒƒใƒˆใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ ใ“ใฎใƒใ‚ฑใƒƒใƒˆใฏGitใฎๅ†็™บๆ˜Žใซๅ‘ใ‘ใฆๆ€ฅ้€Ÿใซ้€ฒใ‚“ใงใ„ใ‚‹ใ‚ˆใ†ใซ่ฆ‹ใˆใ‚‹ใŸใ‚ใ€้กžๆŽจใฏๅฎŸ้š›ใซใฏใ‹ใชใ‚Š้ฉๅˆ‡ใงใ™ใ€‚

ใ‚ใชใŸใŒๆญฃใ—ใ„ใ€‚ ใ—ใ‹ใ—ๅŒๆ™‚ใซใ€Resticใฏgitใงใฏใชใใ€ใ‚ณใƒณใƒ†ใƒณใƒ„ใƒ™ใƒผใ‚นใฎใ‚ขใƒ‰ใƒฌใ‚นๆŒ‡ๅฎšใฎ็Ÿฅ่ญ˜ใ‚’ๅฟ…่ฆใจใ™ใ‚‹ใ‚ˆใ†ใซใฏ่จญ่จˆใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ ๅ†…้ƒจใงใฉใฎใ‚ˆใ†ใซๆฉŸ่ƒฝใ™ใ‚‹ใ‹ใซ้–ขไฟ‚ใชใใ€ใƒฆใƒผใ‚ถใƒผใซใจใฃใฆใ€ๆๆกˆใ™ใ‚‹ใ‚ณใƒžใƒณใƒ‰ใฏใ€ๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใฎใงใฏใชใใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใ“ใจใ‚’ๆคœ่จŽใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ใใ‚Œใฏๅˆฅๅ€‹ใฎใ‚ณใƒžใƒณใƒ‰ใงใ‚ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

็งใฏใใ‚Œใ‚’่จ€ใ‚ใชใ‹ใฃใŸใ€‚ ใชใœใ ใ‚ใ†๏ผŸ

ใ•ใฆใ€ใ‚ใชใŸใฏ่จ€ใฃใŸ๏ผš

UXใฎ่ฆณ็‚นใ‹ใ‚‰ใฏใ€ใ“ใ‚Œใฏใ€ใพใฃใŸใๆ–ฐใ—ใ„ใ‚ณใƒžใƒณใƒ‰ใ‚’่ฟฝๅŠ ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚ณใƒžใƒณใƒ‰ใ‚’ๆ‹กๅผตใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚Šใ€ใ‹ใชใ‚Š็›ฎ็ซ‹ใŸใชใ„ๆ–นๆณ•ใงๅฎŸ่กŒใ•ใ‚Œใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

ใŸใถใ‚“ใ‚ใชใŸใฏใ‚‚ใฃใจ่ฉณ็ดฐใซ่ชฌๆ˜Žใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

็‰ฉใ‚’ๅ–ใ‚Š้™คใใฎใซๅฎŒๅ…จใซๅ•้กŒใฎใชใ„ๅฟ˜ๅดใจๅ‰ชๅฎšใŒใ‚ใ‚Šใพใ™ใ€‚

ๅ…ทไฝ“็š„ใซใ—ใพใ—ใ‚‡ใ†ใ€‚ forgetใฏใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ—ใ€ pruneใฏblobใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚ ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆๅ†…ใฎใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ใ‚ณใƒžใƒณใƒ‰ใ‚’ๆๆกˆใ—ใฆใ„

็งใฎๆ„่ฆ‹ใ‚’่ฟฝๅŠ ใ—ใŸใ„ใจๆ€ใ„ใพใ™๏ผš

ใƒชใƒใ‚ธใƒˆใƒชๅ†…ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅค‰ๆ›ดใ™ใ‚‹ๆ–นๆณ•ใŒใ‚ใ‚‹ใ“ใจใฏใ€ใ“ใฎใ‚ˆใ†ใชใ‚‚ใฎใ‚’ไฝ•ไบบใฎไบบใŒๆœ›ใ‚“ใงใ„ใ‚‹ใ‹ใจใ„ใ†ใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใซๅŸบใฅใ„ใฆใ€ไพกๅ€คใŒใ‚ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚

ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใฏใ€็›ดไบคๆ€งใฎ็†็”ฑ๏ผˆ้žๅธธใซGoใซไผผใฆใ„ใ‚‹๏ผ‰ใ ใ‘ใงใชใใ€ๅฎŸ็”จ็š„ใช่€ƒๆ…ฎไบ‹้ …ใ‹ใ‚‰ใ‚‚ใ€ backupใ‚ณใƒžใƒณใƒ‰ใ‹ใ‚‰็‹ฌ็ซ‹ใ—ใฆใ„ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ backupใ‚ณใƒžใƒณใƒ‰ใฏใ™ใงใซๅๅˆ†ใซ่ค‡้›‘ใชใฎใงใ€็งใฏไป–ใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ใใ‚Œใ‹ใ‚‰ๅˆ†้›ขใ—ใŸใ„ใ€‚

prune้กžไผผใ—ใฆใ„ใ‚‹ใŸใ‚ใ€ purgeใจใ„ใ†ๅๅ‰ใฏๅฅฝใใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ changeใฉใ†ใงใ™ใ‹๏ผŸ ๆฌกใซใ€ restic backup ใ€ restic restore ใ€ใŠใ‚ˆใณrestic changeใพใ™ใ€‚

ใ‚ณใƒžใƒณใƒ‰ใฎใ‚ตใƒใƒผใƒˆใ•ใ‚Œใฆใ„ใ‚‹ๆ“ไฝœใซใคใ„ใฆใ€็งใฏๆฌกใฎ่ฆๆฑ‚ใ‚’่ฆ‹ใฆใใพใ—ใŸ๏ผš

  • --deleteใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ—ใพใ™
  • ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใ‚’ๅค‰ๆ›ดใ—ใพใ™๏ผˆไพ‹๏ผš --rename

ๅ‰่€…ใฏใพใ•ใซใ“ใฎๅ•้กŒ๏ผˆๅ…ƒใ€…๏ผ‰ใฎๅ•้กŒใงใ™ใŒใ€ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใŸใ‚ใฎๅฎŸ้š›ใฎใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใฏใ‚ใ‚Šใพใ™ใ‹๏ผŸ

changeใฏใ€ไฝ•ใ‹ใฎๅ†…ๅฎนใ‚’ๅค‰ๆ›ดใ™ใ‚‹ใฎใงใฏใชใใ€ไฝ•ใ‹ใ‚’ๅ–ใ‚Šๅ‡บใ—ใฆๅ…ฅใ‚Œใ‚‹ใ‚ˆใ†ใซ่žใ“ใˆใ‚‹ใจๆ€ใ„ใพใ™ใ€‚

repo / backup / snapshotใŒใƒใ‚ฑใƒƒใƒˆใงใ‚ใ‚‹ใจๆƒณๅƒใ—ใฆใใ ใ•ใ„ใ€‚ ๅค‰ๆ›ดใฏใ€ใƒใ‚ฑใƒƒใƒˆๅ†…ใฎไฝ•ใ‹ใ‚’ๆ‹พใ„ไธŠใ’ใฆๅฐ‘ใ—ๅค‰ๆ›ดใ—ใฆๅ…ƒใซๆˆปใ™ใฎใงใฏใชใใ€ใƒใ‚ฑใƒƒใƒˆ่‡ชไฝ“ใ‚’ๅˆฅใฎใ‚‚ใฎใจไบคๆ›ใ—ใŸใ‚Šใ€ใƒใ‚ฑใƒƒใƒˆใ‹ใ‚‰ไฝ•ใ‹ใ‚’ๅ–ใ‚Šๅ‡บใ—ใฆๅˆฅใฎใ‚‚ใฎใ‚’ๅ…ฅใ‚ŒใŸใ‚Šใ™ใ‚‹ใ‚ˆใ†ใชใ‚‚ใฎใงใ™ใ€‚

ใŠใใ‚‰ใใ€่‹ฑ่ชž/ใ‚ขใƒกใƒชใ‚ซไบบใฎใƒใ‚คใƒ†ใ‚ฃใƒ–ใฎไบบใฏใฉใกใ‚‰ใŒใ‚ˆใ‚Š้ฉๅˆ‡ใ‹ใ‚’็Ÿฅใฃใฆใ„ใพใ™:)ใใ‚Œใฏ็งใŒๆ€ใ†่จ€่ชžๅญฆใซ่ฆ็ด„ใ•ใ‚Œใพใ™ใ€‚

ใ†ใƒผใ‚“ใ€ modifyใ˜ใ‚ƒใ‚๏ผŸ

modifyใฏchangeใ‚ˆใ‚Šใ‚‚้–“้•ใ„ใชใๅ„ชใ‚Œใฆใ„ใพใ™ใ€‚ ใ—ใŸใŒใฃใฆใ€ใ“ใ‚Œใพใงใซๆๆกˆใ•ใ‚ŒใŸใ‚‚ใฎใฎใ†ใกใ€ rewriteใพใŸใฏmodifyใฎใ„ใšใ‚Œใ‹ใงใ™ใ€‚ ไป–ใฎไบบใŒใฉใ†ๆ€ใ†ใ‹่ˆˆๅ‘ณใŒใ‚ใ‚Šใพใ™:)

ใ“ใ‚ŒใŒใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™คใฎใฟใซ้–ขใ™ใ‚‹ใ‚‚ใฎใงใ‚ใ‚‹ๅ ดๅˆใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใจใƒ•ใ‚กใ‚คใƒซใ‚’ๆ“ไฝœใ™ใ‚‹ใ‚ˆใ†ใซforgetใ‚ณใƒžใƒณใƒ‰ใ‚’ๆ‹กๅผตใ™ใ‚‹ใ“ใจใฏ็†ใซใ‹ใชใฃใฆใ„ใพใ™ใ‹๏ผŸ ใใ‚Œใจใ‚‚ใ“ใ‚Œใฏ่ค‡้›‘ใ™ใŽใพใ™ใ‹๏ผŸ

ใ“ใฎๆ–ฐๆฉŸ่ƒฝใŒๅ‰Š้™คใจๅๅ‰ใฎๅค‰ๆ›ด๏ผˆใพใŸใฏไป–ใฎไฝ•ใ‹๏ผ‰ใซ้–ขใ™ใ‚‹ใ‚‚ใฎใงใ‚ใ‚‹ๅ ดๅˆใ€็งใฏmodifyๆŠ•็ฅจใ—ใพใ™ใ€‚

ใ”ๅ…ฅๅŠ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™@dimejo๐Ÿ‘

ๅๅ‰ใ‚’ๅค‰ๆ›ดใ—ใŸใ‚Šๅ‰Š้™คใ—ใŸใ‚Šใ™ใ‚‹ใจใใฏใ€ forgetใ‚’ไฝฟ็”จใ—ใฆใ„ใชใ„ใจๆ€ใ„ใพใ™๏ผˆๅฐ‘ใชใใจใ‚‚ๅ‰่€…ใฎๅ ดๅˆใฏใใ†ใงใฏใ‚ใ‚Šใพใ›ใ‚“๏ผ‰ใ€‚

IMHOใฎใ€Œใƒชใƒฉใ‚คใƒˆใ€ใฏๆœ€้ซ˜ใฎๆ„ๅ‘ณใ‚’ไผใˆใพใ™ใ€‚

forgetใ‚ณใƒžใƒณใƒ‰ใ‚‚้žๅธธใซ่ค‡้›‘ใชใฎใงใ€ๆ‰‹ไผใฃใฆใ‚‚ใ‚‰ใˆใ‚Œใฐไฝ•ใ‚‚่ฟฝๅŠ ใ—ใพใ›ใ‚“;๏ผ‰

ๅˆฅใฎใ‚ณใƒžใƒณใƒ‰ใซใ™ใ‚‹ๅ ดๅˆใฏใ€ modifyใจๅ‘ผใถใฎใ‚‚็งใฎใŠๆฐ—ใซๅ…ฅใ‚Šใงใ™๏ผˆใ‹ใชใ‚Š้•ทใ„ใงใ™ใŒใ€ modify-snapshotใ‚‚ๆฌฒใ—ใ„ใงใ™๏ผ‰ใ€‚ ใพใŸใ€ใ‚ใ‚‰ใ‚†ใ‚‹็จฎ้กžใฎใƒ•ใ‚กใ‚คใƒซๆ“ไฝœใฎๅค‰ๆ›ด๏ผˆๅๅ‰ใฎๅค‰ๆ›ดใ€ๅ ดๅˆใซใ‚ˆใฃใฆใฏ่ฟฝๅŠ ๏ผ‰ใซ้ฉใ—ใŸๅ ดๆ‰€ใซใชใ‚‹ใปใฉไธ€่ˆฌ็š„ใงใ™ใ€‚ ใŸใ ใ—ใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ไปฅๅค–ใฎใ“ใจใฏใ€ใƒ•ใ‚ฃใƒผใƒใƒฃใƒผใ‚ฏใƒชใƒผใƒ—ใฎๅŒ‚ใ„ใŒๅผทใ„ใจๆ€ใ„ใพใ™ใ€‚

ใกใชใฟใซใ€Gitใฎ้…็ฎกใ‚ณใƒžใƒณใƒ‰ใจๅŒๆง˜ใซใ€resticใฏใ‚ณใƒžใƒณใƒ‰ใ‚ซใƒ†ใ‚ดใƒชใฎๆฉๆตใ‚’ๅ—ใ‘ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚ ็พๅœจใ€ restic -hใฏใ™ในใฆใฎใ‚ณใƒžใƒณใƒ‰ใ‚’่พžๆ›ธๅผ้ †ๅบใงไธ€่ฆง่กจ็คบใ—ใ€ไฝŽใƒฌใƒ™ใƒซใฎใ‚ณใƒžใƒณใƒ‰๏ผˆใŸใจใˆใฐใ€ cat ใ€ list ใ€ใ€Œ้€šๅธธใฎใ€ใƒฆใƒผใ‚ถใƒผใซใฏๅฟ…่ฆใ‚ใ‚Šใพใ›ใ‚“๏ผ‰ใจไธป่ฆใช้ซ˜ใƒฌใƒ™ใƒซใ‚ณใƒžใƒณใƒ‰ใ€‚

updateใ‚‚ๆคœ่จŽใ—ใฆใใ ใ•ใ„ใ€‚

rewrite +1ใ€ใใ‚Œใฏใใ‚Œใซ็ด ๆ•ตใชใ‚ชใƒผใ‚ฆใ‚งใƒซใƒชใƒณใ‚ฐใ‚’ๆŒใฃใฆใ„ใพใ™ใ€‚ :-)

alter
discard
evict
expel
expunge
extrude
oust
..ใ€‚
nuke ๏ผŸ ๐Ÿ˜„

ๆ–ฐใ—ใ„editใ‚ณใƒžใƒณใƒ‰ใ‚’ๆๆกˆใ—ใŸใ„ใจๆ€ใ„ใพใ™ใ€‚ ใ“ใฎๅ•้กŒใซ้–ขใ™ใ‚‹ใ™ในใฆใฎใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใซๅŸบใฅใ„ใฆใ€ edit 1ใคใพใŸใฏ่ค‡ๆ•ฐใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใซๅฏพใ—ใฆ่ค‡ๆ•ฐใฎใ‚ขใ‚ฏใ‚ทใƒงใƒณใŒ็™บ็”Ÿใ™ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใ‚ˆใ†ใซๆ€ใ‚ใ‚Œใพใ™ใ€‚

ๅฝ“ๅˆ†ใฎ้–“ใ€ใใ‚Œใฏๆฌกใฎใ‚ˆใ†ใชใ‚‚ใฎใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

$ restic edit 40dc1520 remove dir/file

ๅฐ†ๆฅ็š„ใซใฏใ€่ค‡ๆ•ฐใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆ๏ผˆใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆIDใพใŸใฏๆ—ฅไป˜็ฏ„ๅ›ฒใฎๅ…ฅๅŠ›ใƒชใ‚นใƒˆ๏ผ‰ใ‹ใ‚‰1ใคใฎใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™คใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

็ทจ้›†ใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆใงใฎไป–ใฎใ‚ณใƒžใƒณใƒ‰ใฏๆฌกใฎใ‚ˆใ†ใซใชใ‚Šใพใ™

  • rename ใ€ใƒ•ใ‚กใ‚คใƒซใจใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๅๅ‰ใ‚’ๅค‰ๆ›ดใ—ใพใ™
  • moveใฏใ€ๅค‰ๆ›ดใ•ใ‚ŒใŸๅฏ่ƒฝๆ€งใฎใ‚ใ‚‹ใƒ•ใ‚กใ‚คใƒซ/ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชๆง‹้€ ใ‚’ไฟฎๆญฃใ—ใพใ™

ใ“ใ‚Œใ‚‰ใฎใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’1ใคใพใŸใฏ่ค‡ๆ•ฐใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใง๏ผˆIDใพใŸใฏๅ ดๅˆใซใ‚ˆใฃใฆใฏๆ—ฅไป˜ใพใŸใฏ็ฏ„ๅ›ฒใฎๆ•ฐใง๏ผ‰ๅฎŸ่กŒใงใใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ใ“ใจใŒ้‡่ฆใ ใจๆ€ใ„ใพใ™ใ€‚

ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ•ใ‚ŒใŸใƒ‡ใƒผใ‚ฟใงใฉใฎ็จ‹ๅบฆใฎresticใ‚’ๅฎŸ่กŒใงใใ‚‹ใ‹ใฏใพใ ใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ ใคใพใ‚Šใ€็‰นๅฎšใฎๆ™‚็‚นใงใฎ็Šถๆ…‹ใ‚’ไฟๆŒใ™ใ‚‹ใŸใ‚ใซใƒ‡ใƒผใ‚ฟใ‚’ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ™ใ‚‹ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใพใ™ใ€‚ NASใ‚’ๆ„ๅ›ณใ—ใŸใ‚‚ใฎใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

็‰นใซใ€ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใ‚’ๅค‰ๆ›ดใ—ใŸใ‚Šๅ‰Š้™คใ—ใŸใ‚Šใ™ใ‚‹ใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใงใฏๅฆฅๅฝ“ๆ€งใŒใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ ใคใพใ‚Šใ€ใƒญใƒผใ‚ซใƒซใƒ‡ใ‚ฃใ‚นใ‚ฏไธŠใฎใƒ•ใ‚กใ‚คใƒซใ‚’ๅค‰ๆ›ดใ—ใฆใ‹ใ‚‰ใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚’ใ„ใ˜ใฃใฆใ€ใƒ•ใ‚กใ‚คใƒซใƒ„ใƒชใƒผใ‚’็พๅœจใฎใƒ‡ใƒผใ‚ฟใจๅŒๆœŸใ•ใ›ใฆใŠใใฎใฏใชใœใงใ™ใ‹ใ€‚ ใใ‚Œใฏ็งใซใฏๆ„ๅ‘ณใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ ใใฎใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใซใคใ„ใฆ่ฉณใ—ใ่ชฌๆ˜Žใ—ใฆใ„ใŸใ ใ‘ใพใ™ใ‹๏ผŸ

@rawtaz
็งใฎ่€ƒใˆใฏ๏ผˆใปใผ๏ผ‰ๆญฃ็ขบใซใ€‚

ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ใ“ใจใฎๅฆฅๅฝ“ๆ€งใฏใ€้™คๅค–ใƒซใƒผใƒซใ‚’ไฝฟ็”จใ—ใฆใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚’ไฝœๆˆใ—ใŸๅพŒใงใ€้™คๅค–ใƒซใƒผใƒซใซ่ชคใ‚Šใ‚’็™บ่ฆ‹ใ—ใŸๅ ดๅˆใซใ‚ใ‚‹ใจ็งใฏไธปๅผตใ—ใพใ™ใ€‚ ใ—ใŸใŒใฃใฆใ€ใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™คใฏๅŸบๆœฌ็š„ใซใ€้™คๅค–ใƒซใƒผใƒซใฎ้กๅŠ้ฉ็”จใจใ—ใฆๆฉŸ่ƒฝใ—ใพใ™ใ€‚ ใ“ใฎใ‚นใƒฌใƒƒใƒ‰ใงใฎ่ซ–ไบ‰ใซ้–ขไฟ‚ใชใใ€่ชฐใ‚‚ใŒใใฎ็‰นๅฎšใฎใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใซๅŒๆ„ใ—ใฆใ„ใ‚‹ใ‚ˆใ†ใงใ™ใ€‚

ใใ‚ŒไปฅไธŠใฎๆ“ไฝœ๏ผˆๅๅ‰ใฎๅค‰ๆ›ดใ€่ฟฝๅŠ ๏ผ‰ใซใคใ„ใฆใฏใ€็–‘ๅ•ใ‚’ๅ…ฑๆœ‰ใ—ใพใ™ใ€‚ ใ“ใ‚Œใฏใƒ•ใ‚ฃใƒผใƒใƒฃใƒผใ‚ฏใƒชใƒผใƒ—ใงใ‚ใ‚Šใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใƒ„ใƒผใƒซใงใ‚ใ‚‹IMHOใฎ็ฏ„ๅ›ฒใซใฏๅซใพใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚

ๅŒๆ„ใ—ใพใ™ใ€‚ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ใ“ใจใฏ้‡่ฆใงใ™ใ€‚ๆ„ๅ›ณใ—ใชใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ชคใฃใฆใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ™ใ‚‹ใฎใฏ้žๅธธใซ็ฐกๅ˜ใ ใ‹ใ‚‰ใงใ™ใ€‚ ใ“ใ‚Œใฏใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใจใƒ‡ใ‚ฃใ‚นใ‚ฏไฝฟ็”จใฎไธกๆ–นใฎ็†็”ฑใงๅฟ…่ฆใซใชใ‚‹ใ“ใจใŒใ‚ˆใใ‚ใ‚Šใพใ™ใ€‚ ใ“ใฎๆฉŸ่ƒฝใŒใ‚ใ‚‹ใจใ„ใ†ใ“ใจใฏใ€ๅคใ„ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใƒ‡ใƒผใ‚ฟใ‚’ไฟๆŒใงใใ‚‹ใ“ใจใจใ€ใ€ŒใŠ้ขจๅ‘‚ใฎๆฐดใง่ตคใกใ‚ƒใ‚“ใ‚’ๆจใฆใ‚‹ใ€ใ“ใจใฎ้•ใ„ใ‚’ๆ„ๅ‘ณใ™ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

ใŸใ ใ—ใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆๅ†…ใฎใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใ‚’ๅค‰ๆ›ดใ—ใŸใ‚Š็งปๅ‹•ใ—ใŸใ‚Šใ™ใ‚‹ใ“ใจใฏใ€ใŠใใ‚‰ใ่‰ฏใ„่€ƒใˆใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ ็Ž‡็›ดใซ่จ€ใฃใฆใ€ใ“ใ‚Œใ‚’ๅฎŸ่กŒใงใใ‚‹ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใซใคใ„ใฆใฏ่žใ„ใŸใ“ใจใŒใชใใ€ๅฅ‡ๅฆ™ใชๆฉŸ่ƒฝใฎใ‚ˆใ†ใงใ™ใ€‚ ใƒฆใƒผใ‚ถใƒผใŒ็ตถๅฏพใซใ“ใ‚Œใ‚’ๅฟ…่ฆใจใ™ใ‚‹ๅ ดๅˆใฏใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅพฉๅ…ƒใ—ใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ†้…็ฝฎใ—ใ€ๆ˜Ž็คบ็š„ใซ่จญๅฎšใ•ใ‚ŒใŸๆ—ฅไป˜ใงๅ†ๅบฆใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ™ใ‚‹ใ“ใจใงใ€Resticใฎๅค–้ƒจใซๅฎŸ่ฃ…ใงใใพใ™๏ผˆใŸใ ใ—ใ€ResticใŒ็ตถๅฏพใƒ‘ใ‚นใฎไฝฟ็”จใ‚’้–‹ๅง‹ใ™ใ‚‹ใจใ€ใ“ใ‚Œใฏๅฐ†ๆฅใ•ใ‚‰ใซ่ค‡้›‘ใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™๏ผ‰ ใ€‚

็ขบใ‹ใซใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ‘ใ‚นใ‚’ๅ‰Š้™คใ™ใ‚‹ๆฉŸ่ƒฝใ‚‚ใ“ใฎๆ–นๆณ•ใงๅฎŸ่ฃ…ใงใใพใ™ใŒใ€ๅฟ…่ฆใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใฏใ‚‹ใ‹ใซ้ซ˜ใ„ใŸใ‚ใ€Resticใซๅซใ‚ใ‚‹ใฎใŒๅฆฅๅฝ“ใ ใจๆ€ใ„ใพใ™ใ€‚

ใ—ใŸใŒใฃใฆใ€ใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ๆ˜Ž็ขบใชๆ–นๆณ•ใŒใ‚ใ‚Šใพใ™ใ€‚ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใงใใ‚‹ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ใ“ใจใงใ™ใ€‚ ใ‚ณใƒžใƒณใƒ‰ใฎๅๅ‰ใฏใ€ใใ“ใซ็€ใ„ใŸใจใใซๆฑบๅฎšใ•ใ‚Œใพใ™ใ€‚ ๅฟ…่ฆใซๅฟœใ˜ใฆใ€ไป–ใฎใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใ‚’ๅ†ๆคœ่จŽใงใใพใ™ใ€‚

ๅ‚ๅŠ ใ—ใฆใใ‚Œใฆใ‚ใ‚ŠใŒใจใ†ใ€ใ“ใ“ใงใ“ใ‚ŒไปฅไธŠ่ญฐ่ซ–ใ™ใ‚‹ๅฟ…่ฆใฏใชใ„ใจๆ€ใ„ใพใ™๏ผ

ใ‚ณใƒžใƒณใƒ‰ๅใฎๆๆกˆ๏ผš restic purge ใ€‚

ใ“ใฎๆฉŸ่ƒฝใ‚’ๆฅฝใ—ใฟใซใ—ใฆใ„ใพใ™ใ€‚ ใ‚ใ‚ŠใŒใจใ†

@ fd0
ใ“ใฎๆฉŸ่ƒฝใซ้–ขใ™ใ‚‹ๆ›ดๆ–ฐใฏใ‚ใ‚Šใพใ™ใ‹๏ผŸ ใใ‚Œใ‚’ไฝฟใ„ใŸใ„ใงใ™:)
ๆ”ฟๅบœใฎ็’ฐๅขƒใงresticใ‚’ไฝฟ็”จใ—ใฆใŠใ‚Šใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ‹ใ‚‰1ใคใฎใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ ๅฟ…่ฆใซๅฟœใ˜ใฆใ€ไฝœๆฅญใฎไธ€้ƒจใซ่ณ‡้‡‘ใ‚’ๆไพ›ใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

็งใ‚‚ใ“ใ‚Œใ‚’ๆฅฝใ—ใฟใซใ—ใฆใ„ใพใ™๏ผ 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ใ€‚

ใ—ใ‹ใ—ใ€็งใฎ้ŽๅŽปใฎ็ตŒ้จ“ใซๅŸบใฅใใจใ€้€šๅธธใ€ๆ•ฐๆ—ฅใพใŸใฏๆ•ฐ้€ฑ้–“ๅพŒใซใ€ไพกๅ€คใฎใชใ„ใ‚‚ใฎใ‚’ๅคง้‡ใซใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใฆใ„ใ‚‹ใ“ใจใซๆฐ—ใฅใใพใ™ใ€‚ ่ชฟๆŸปใ™ใ‚‹ๆ™‚้–“ใŒใ‚ใ‚Œใฐใ€‚ ใ“ใ‚ŒใŒๆ„ๅ‘ณใ™ใ‚‹ใ“ใจใฏใ€็งใŒ็‰นๅฎšใฎ--excludeใŒๅฟ…่ฆใงใ‚ใ‚‹ใจ็†่งฃใ™ใ‚‹ใพใงใซใ€ใŠใใ‚‰ใ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ใ‹ใ‚‰ใƒ’ใƒƒใƒˆใ™ใ‚‹ใ™ในใฆใฎๅ ดๅˆใ€ใ“ใฎๅ•้กŒใŒ็™บ็”Ÿใ—ใชใ„ใฎใ‚’ๅพ…ใคๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ๅฝ“้ขใฏduplicatiใ‚’ไฝฟ็”จใ™ใ‚‹ใ ใ‘ใงใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ไบ‹ๅพŒใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ใŸใ‚ใฎใƒ•ใ‚กใƒผใ‚นใƒˆใ‚ฏใƒฉใ‚นใฎใ‚ตใƒใƒผใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚

ใ“ใ‚Œใ‚’็›ฃ่ฆ–ใ—ใฆๆ›ดๆ–ฐใ‚’็ขบ่ชใ—ใ€Googleใ‹ใ‚‰ใƒ’ใƒƒใƒˆใ™ใ‚‹ใ™ในใฆใฎๅ ดๅˆใ€ใ“ใฎๅ•้กŒใŒ็™บ็”Ÿใ—ใชใ„ใฎใ‚’ๅพ…ใคๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ๅฝ“้ขใฏduplicatiใ‚’ไฝฟ็”จใ™ใ‚‹ใ ใ‘ใงใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ไบ‹ๅพŒใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ใŸใ‚ใฎใƒ•ใ‚กใƒผใ‚นใƒˆใ‚ฏใƒฉใ‚นใฎใ‚ตใƒใƒผใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚

็งใฏ็ด„1ๅนด้–“resticใ‚’ไฝฟ็”จใ—ใฆใ„ใฆใ€ๆฉŸ่ƒฝใŒๅฎŸ่ฃ…ใ•ใ‚Œใ‚‹ใฎใ‚’ๅพ…ใคใฎใ‚’ใ‚„ใ‚ใพใ—ใŸใ€‚ ใ™ในใฆใ‚’resticใซ่ฟฝๅŠ ใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใจใ„ใ†ๆ„ๅ‘ณใงใฏใ‚ใ‚Šใพใ›ใ‚“ใŒใ€ใใ“ใซใ‚ใ‚‹ในใๅŸบๆœฌ็š„ใชใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚ ็งใฏresticใ‹ใ‚‰้›ขใ‚Œใ‚‹ใ“ใจใ‚’่€ƒใˆใฆใ„ใพใ™๏ผšใƒชใƒใ‚ธใƒˆใƒชใฏ้žๅธธใซๅฃŠใ‚Œใ‚„ใ™ใใ€้žๅธธใซ็ฐกๅ˜ใซๅฃŠใ‚Œใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚

ๆ˜จๆ—ฅใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใซๅซใ‚ใ‚‹ในใใงใฏใชใ„ใƒ•ใ‚กใ‚คใƒซใŒๅซใพใ‚Œใฆใ„ใŸใŸใ‚ใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅ‰Š้™คใ—ใพใ—ใŸ๏ผˆ้™คๅค–ใ‚’่ฟฝๅŠ ใ™ใ‚‹ใฎใ‚’ๅฟ˜ใ‚Œใพใ—ใŸ๏ผ‰ใ€‚ ใใ‚Œไปฅๆฅใ€ใƒชใƒใ‚ธใƒˆใƒชใซใ‚จใƒฉใƒผใŒใ‚ใ‚Šใ€ใพใ ไฟฎๅพฉใงใใฆใ„ใพใ›ใ‚“ใ€‚ ไธ€้ƒจใฎใƒ•ใ‚กใ‚คใƒซใŒ่ชคใฃใฆๅซใพใ‚Œใฆใ„ใ‚‹ใŸใ‚ใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆๅ…จไฝ“ใ‚’ๅ‰Š้™คใ™ใ‚‹ๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

@MorgothSauron็งใฏ้€šๅธธใ€ใใ‚Œใ‚’ๅซใ‚€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚‚ๅ‰Š้™คใ—ใพใ—ใŸใ€‚ใ“ใ‚Œใฏใ€ใใ‚ŒใŒๅˆถ้™ใ•ใ‚Œใฆใ„ใ‚‹ใ‚ˆใ†ใซ่ฆ‹ใˆใ‚‹ๅ”ฏไธ€ใฎ่งฃๆฑบ็ญ–ใงใ™ใŒใ€็นฐใ‚Š่ฟ”ใ—ใพใ™ใŒใ€duplicatiใฏใ—ใฐใ‚‰ใใฎ้–“ใ€ๅ˜ไธ€ใฎใ‚ณใƒžใƒณใƒ‰ใงใใ‚Œใ‚’่กŒใ†ใ“ใจใŒใงใใ‚‹ใฎใงใ€ใใ‚Œไปฅๆฅๅค‰ๆ›ดใ—ใ€ๅ•้กŒใฏใ‚ใ‚Šใพใ›ใ‚“ใงใ—ใŸใ€‚

ใ“ใฎไปถใซใคใ„ใฆใ”ๆ„่ฆ‹ใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ€ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ—ใŸใ€‚ ใ“ใ‚Œใพใง่ฆ‹ใฆใใŸใ‚ˆใ†ใซใ€ๅคšใใฎไบบใ€…ใฏ็‰นใซใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ๆฉŸ่ƒฝใ‚’ๆœ›ใ‚“ใงใ„ใพใ—ใŸใ€‚ ็งใŸใกใฏ็š†ใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ™ใ‚‹ใจใใซใŸใพใซ้–“้•ใ„ใ‚’็Šฏใ™ใจๆ€ใ„ใพใ™;๏ผ‰

็พๆ™‚็‚นใงใฏใ€resticใฎไป–ใฎ้ƒจๅˆ†ใงๅˆฉ็”จๅฏ่ƒฝใชใƒกใƒณใƒ†ใƒŠใจ้–‹็™บ่€…ใฎๆ™‚้–“ใŒๅฟ…่ฆใงใ‚ใ‚‹ใŸใ‚ใ€ใ“ใฎๅ•้กŒใŒ่ฟ‘ใ„ๅฐ†ๆฅใซๅฎŸ่ฃ…ใ•ใ‚Œใ‚‹ใจใฏไบˆๆƒณใ—ใฆใ„ใพใ›ใ‚“ใ€‚ ใพใŸใ€ใงใใ‚‹ใ ใ‘ๆ—ฉใๆ–ฐใ—ใ„RESTใ‚ตใƒผใƒใƒผใ‚’ใƒชใƒชใƒผใ‚นใ—ใ€ใใฎๅพŒใ€ไป–ใฎใ„ใใคใ‹ใฎๅ•้กŒใฎ่ชฟๆŸปใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚

ใจใฏ่จ€ใ†ใ‚‚ใฎใฎใ€่ชฐใ‹ใŒใใกใ‚“ใจๆ˜Ž็ขบใซๆ›ธใ‹ใ‚Œใ€@ fd0ใŒใ™ใงใซๆ–นๅ‘ๆ€งใซ็ฅ็ฆใ‚’ไธŽใˆใฆใ„ใ‚‹ๅ•้กŒใงใ‚ใ‚‹ใŸใ‚ใ€ใ€Œใ“ใฎๆฉŸ่ƒฝใ‚’่ฟฝๅŠ ใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ‹ใ€ใงใฏใชใใ€ไธปใซๅ …ๅฎŸใชๅฎŸ่ฃ…๏ผˆใƒชใƒใ‚ธใƒˆใƒชใŒ็ ดๆใ—ใชใ„ใ“ใจใŒใ‚ใ‹ใฃใฆใ„ใ‚‹๏ผ‰ใฎไฝœๆˆใซ็„ฆ็‚นใ‚’ๅฝ“ใฆใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ใ“ใ‚Œใฏ่‰ฏใ„ใ“ใจใงใ™ใ€‚ ใ€‚

ใ“ใฎใ‚ˆใ†ใชPRใฏๅŸบๆœฌ็š„ใชใ‚‚ใฎใงใ‚ใ‚Šใ€ๅฟ…่ฆใซๅฟœใ˜ใฆๆง‹็ฏ‰ใงใใ‚‹ๅ‡บ็™บ็‚นใจใ—ใฆๆฉŸ่ƒฝใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ ็งใŒๆ„ๅ‘ณใ™ใ‚‹ใ“ใจใฎไพ‹ใฏใ€ใใ‚ŒใŒๅˆๅฟƒ่€…ใฎใŸใ‚ใซใ‚ใ‚‹ในใใงใ‚ใ‚‹ใจใ„ใ†ใ“ใจใงใ™๏ผš

  • ๆ–ฐใ—ใ„ใ‚ณใƒžใƒณใƒ‰ใ‚’1ใคใ ใ‘ไฝœๆˆใ—ใพใ™๏ผˆใŸใจใˆใฐใ€ใ“ใฎๅ•้กŒใงๆœ€ใ‚‚ๆŠ•็ฅจใ•ใ‚Œใฆใ„ใ‚‹ใฎใฏrewriteใงใ™๏ผ‰ใ€‚
  • ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฎใƒชใ‚นใƒˆใ‚’ไธป่ฆใชๅผ•ๆ•ฐ๏ผˆ allใ‚ตใƒใƒผใƒˆใ‚’ๅซใ‚€๏ผ‰ใจใ—ใฆไฝฟ็”จใ—ใพใ™๏ผˆไพ‹๏ผš allใพใŸใฏ098db9d5ใพใŸใฏ098db9d5 af92db33 ใ€‚
  • 1ใคไปฅไธŠใฎ--exclude <pattern>ใƒชใ‚นใƒˆใ‚’ๅ–ๅพ—ใ—ใฆใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰้™คๅค–/ๅ‰Š้™คใ™ใ‚‹ๅฟ…่ฆใฎใ‚ใ‚‹ใƒ‘ใ‚นใ‚’ใƒชใ‚นใƒˆใ—ใพใ™๏ผˆใคใพใ‚Šใ€ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ๆ™‚ใซๆฌ ่ฝใ—ใฆใ„ใŸ--excludeใ‚’ๆฌกใซ็คบใ—ใพใ™๏ผ‰ใ€‚ไพ‹๏ผš --exclude="*.o" ใ€ --exclude=*.unwanted ใ€ --exclude="*.o" --exclude=*.unwanted --exclude=.DS_Store ใ€‚

ใ“ใ“ใงใฎ็†่ซ–็š„ๆ นๆ‹ ใฏใ€ๆฆ‚ๅฟตๅฎŸ่จผใŠใ‚ˆใณๆœ€ๅฐ้™ใฎๅฎŸ่กŒๅฏ่ƒฝใช่ฃฝๅ“ใจใ—ใฆๆœ€ๅฐ้™ใฎใ‚นใ‚ฟใƒผใƒˆใ‚’ๅˆ‡ใ‚‹ใ“ใจใงใ™ใ€‚ ใƒ†ใ‚นใƒˆใŒๅฎŒไบ†ใ—ใŸใ‚‰ใ€ๅฟ…่ฆใซๅฟœใ˜ใฆ่ชฟๆ•ดใงใใพใ™ใ€‚ใŸใจใˆใฐใ€ backupใ‚ณใƒžใƒณใƒ‰ใ‹ใ‚‰ไป–ใฎ--exclude-*ๅผ•ๆ•ฐใ‚’่ฟฝๅŠ ใ—ใพใ™ใ€‚ ใ“ใฎใ‚ˆใ†ใซrewriteใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝœๆˆใ™ใ‚‹ใจใ€ใ€Œไฟฎๆญฃใ€ใ™ใ‚‹ใ“ใจใ‚’็›ฎ็š„ใจใ—ใŸbackupใ‚ณใƒžใƒณใƒ‰ใจใปใผๅŒใ˜ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใ‚คใ‚นใซใชใ‚Šใพใ™ใ€‚

ใ€œrestic -r / some / repo rewrite all --exclude = " .o" --exclude = .unwanted --exclude = .DS_Storerestic -r / some / repo rewrite 098db9d5 af92db33 --exclude = " .o" --exclude = .unwanted --exclude = .DS_Storeใ€œ

้–ข้€ฃใ™ใ‚‹ใƒกใƒขใจใ—ใฆใ€ https๏ผš //github.com/restic/restic/issues/323ใง

@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ใฏๆญฃใ—ใ้™คๅค–ใ•ใ‚ŒใŸใƒ•ใ‚ฉใƒซใƒ€ใ‚’่กจ็คบใ—ใพใ™ใ€‚ ๆ•ฐ็™พใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ๅซใ‚€ๆ•ฐGBใฎใƒ‡ใƒผใ‚ฟใ‚’ๅซใ‚€ใ€Œใ‚ฏใƒญใƒผใƒณใ€ใฎๅฎŸ้š›ใฎใƒชใƒใ‚ธใƒˆใƒชใงใ‚ˆใ‚Š้›†ไธญ็š„ใชใƒ†ใ‚นใƒˆใ‚’่กŒใ„ใพใ™ใ€‚ ใพใŸใ€Windowsใ‚ฝใƒผใ‚นใฎใƒชใƒใ‚ธใƒˆใƒชใ‚‚่ฉฆใ—ใฆใฟใพใ™ใ€‚

1ใคใฎๆๆกˆ๏ผšใƒชใƒฉใ‚คใƒˆใƒ‘ใ‚นใฎ้™คๅค–ใ‚’ๅซใ‚€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฎใ‚ฟใ‚ฐใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใ‚ชใƒ—ใ‚ทใƒงใƒณใŒใ‚ใ‚Šใพใ™ใ€‚ ๏ผˆๆ–ฐใ—ใไฝœๆˆใ•ใ‚ŒใŸใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใซใ€Œ 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ใฏใ€ๅคใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ๆ–ฐใ—ใ„ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ€ๅฐ‘ใ—ไธๆ˜Ž็ขบใงใ™๏ผ‰ใ€‚

ใ„ใšใ‚Œใซใ›ใ‚ˆใ€ใƒกใƒณใƒ†ใƒŠใ‹ใ‚‰ใฎใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใ‚’ใŠๅพ…ใกใ—ใฆใŠใ‚Šใพใ™ใ€‚ ใใ‚ŒใŒ้–“้•ใฃใŸๆ–นๅ‘ใซๅ‹•ใ„ใŸๅ ดๅˆใ€ๅคšใใฎๆ™‚้–“ใ‚’่ฒปใ‚„ใ—ใŸใใ‚ใ‚Šใพใ›ใ‚“ใ€‚

PSใ€‚ ็งใฎไธป่ฆใชใƒฌใ‚นใƒ†ใ‚ฃใƒƒใ‚ฏใƒฌใƒใฏ็พๅœจ็ด„2TBใงใ™ใ€‚ LVMใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‚’ไฝœๆˆใ—ใŸๅพŒใ€ๅพŒใง่ฉฆใ—ใฆใฟใพใ™ใ€‚

@dionorguaใ‚ใชใŸใฎๆœ€ๅˆใฎๅ‹•ๆฉŸใฏๅฎŒๅ…จใซๆญฃใ—ใ„ใงใ™ใ€‚ ใ€Œๅฑ้™บใชใ€ใ‚ชใƒ—ใ‚ทใƒงใƒณ--inplaceใ‚’ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ๅฏ่ƒฝใช้™ใ‚Š้ ใ–ใ‘ใฆใ€ใใฎใ‚ˆใ†ใซ็ถญๆŒใ™ใ‚‹ใŸใ‚ใซๆŠ•็ฅจใ—ใพใ™๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏ็ตถๅฏพใซใ‚ใ‚Šใพใ›ใ‚“๏ผ‰ใ€‚ ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏใ€ --inplaceใ‚ˆใ‚Šใ‚‚--keep-source-tagged / --tag-destinationใงๅผ•ๆ•ฐใŒๆฌ ่ฝใ—ใฆใ„ใ‚‹ใ‚จใƒฉใƒผใ‚’ๅ„ชๅ…ˆใ—ใพใ™ใ€‚

ใ—ใ‹ใ—ใ€็งใฏๅŒๆ„ใ—ใพใ™ใ€ใ“ใ‚Œใซใคใ„ใฆใฎใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใ‚’ๅพ…ใกใพใ—ใ‚‡ใ†ใ€‚

ๆ˜จๆ—ฅใ€resticใซใ‚ˆใฃใฆไธ€ๆ™ฉใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ•ใ‚ŒใŸใƒ•ใ‚ฉใƒซใƒ€ใƒผๅ†…ใฎใ‚ฏใƒญใƒผใƒณใƒ†ใ‚นใƒˆใƒชใƒใ‚ธใƒˆใƒช๏ผˆ65 GB๏ผ‰ใ‚’ๅฟ˜ใ‚Œใพใ—ใŸใ€‚ ๆ˜จๆ—ฅใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฏforgetใŸใŒใ€ใ€Œใ‚ชใƒผใƒซใ‚คใƒณใ€ใ—ใฆๅฎŸ่ฃ…ใ‚’่ฉฆใฟใพใ—ใŸใ€‚ forget + pruneๅพŒใ€400GBใฎใƒชใƒใ‚ธใƒˆใƒชใ‹ใ‚‰65GBใ‚’ๆญฃๅธธใซๅ‰Š้™คใ—ใพใ—ใŸใ€‚ ใ™ในใฆ่‰ฏๅฅฝใงใ€ใ‚จใƒฉใƒผใฏ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸใ€‚

่ค‡ๆ•ฐใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใซใพใŸใŒใ‚‹ใƒ‡ใƒผใ‚ฟใ‚’ไฝฟ็”จใ—ใฆใ€ใ‚ˆใ‚Š้›†ไธญ็š„ใซใƒ†ใ‚นใƒˆใ—ใพใ™ใ€‚

ไนพๆฏ

ๅคใ„ใ‚‚ใฎใฏใƒžใ‚นใ‚ฟใƒผใƒ–ใƒฉใƒณใƒใ‹ใ‚‰ไฝœๆˆใ•ใ‚ŒใŸใŸใ‚ใ€้–“้•ใฃใŸ๏ผƒ2720ใƒ—ใƒซใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ๆ–ฐใ—ใ„ใ‚‚ใฎใซ็ฝฎใๆ›ใˆใพใ—ใŸใ€‚ ๆฌ ่ฝใ—ใฆใ„ใ‚‹ใ‚จใƒฉใƒผใƒใ‚งใƒƒใ‚ฏใ‚’1ใค่ฟฝๅŠ ใ—ใพใ—ใŸใ€‚ ไฝ™ๅˆ†ใชใƒŽใ‚คใ‚บใงใ”ใ‚ใ‚“ใชใ•ใ„

ใ†ใƒผใ‚“ใ€ modifyใ˜ใ‚ƒใ‚๏ผŸ

ใ“ใ‚Œใซใฏ้žๅธธใซ้…ใ‚Œใฆใ„ใพใ™ใŒใ€delete-specific-file-from-backupใ‚ณใƒžใƒณใƒ‰ใฎๆๆกˆใฏ_rectify_ใงใ™ใ€‚

2731ใฏใ‚จใ‚ญใ‚ตใ‚คใƒ†ใ‚ฃใƒณใ‚ฐใงใ™ใ€ใŸใใ•ใ‚“ใ‚ใ‚ŠใŒใจใ†๏ผ

ใ“ใ‚Œใซใฏ้žๅธธใซ้…ใ‚Œใฆใ„ใพใ™ใŒใ€delete-specific-file-from-backupใ‚ณใƒžใƒณใƒ‰ใซๅฏพใ™ใ‚‹็งใฎๆๆกˆใฏrectifyใงใ™ใ€‚

็งใฏใใ‚ŒใŒใใ‚Œใฎ็ด ๆ™ดใ‚‰ใ—ใ„ๅๅ‰ใงใฏใชใ„ใจ่จ€ใ‚ใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“ใ€‚ Rectifyใฏใ€ไฟฎๆญฃ/ไฟฎๆญฃใŒๅฟ…่ฆใชๅ•้กŒใŒใ‚ใ‚‹ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใพใ™ใ€‚ ใ“ใ‚Œใฏใƒฆใƒผใ‚นใ‚ฑใƒผใ‚นใฎ1ใคใซๅฝ“ใฆใฏใพใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใŒใ€ๅธธใซใใ†ใงใ‚ใ‚‹ใจใฏ้™ใ‚Šใพใ›ใ‚“ใ€‚ ใƒฆใƒผใ‚ถใƒผใฏใ€ๆ—ขๅญ˜ใฎใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ‹ใ‚‰ไธ€้ƒจใฎใƒ‡ใƒผใ‚ฟใ‚’ๅ‰Š้™คใ—ใฆใ€ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใฎๆฎ‹ใ‚Šใฎ้ƒจๅˆ†ใ‚’ไฟๆŒใ—ใชใŒใ‚‰ใ€็งใŸใกใŒ็Ÿฅใฃใฆใ„ใ‚‹ใ™ในใฆใฎใ‚นใƒšใƒผใ‚นใ‚’่งฃๆ”พใ—ใŸใ„ๅ ดๅˆใŒใ‚ใ‚Šใพใ™ใ€‚ ่จ€่‘‰้ฃใ„ใฏใ€ไฟฎๆญฃใ™ใ‚‹ใ‚ˆใ‚Šใ‚‚ไธญ็ซ‹็š„ใงใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใจๆ€ใ„ใพใ™ใ€‚

ใ“ใฎใƒšใƒผใ‚ธใฏๅฝนใซ็ซ‹ใกใพใ—ใŸใ‹๏ผŸ
0 / 5 - 0 ่ฉ•ไพก