Restic: --include둜 λ³΅μ›ν•˜λ©΄ 잘λͺ»λœ κΆŒν•œμ΄μžˆλŠ” 디렉토리가 μƒμ„±λ©λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 10μ›” 31일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: restic/restic

restic version

restic 0.7.3
linux / amd64μ—μ„œ go1.9둜 컴파일 됨

μ •ν™•νžˆ μ–΄λ–»κ²Œ νœ΄μ‹μ„ μ·¨ν–ˆμŠ΅λ‹ˆκΉŒ?

μ•„λž˜ μ„ΈλΆ€ 정보λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

μ–΄λ–€ λ°±μ—”λ“œ / μ„œλ²„ / μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ…¨μŠ΅λ‹ˆκΉŒ?

ν΄λΌμ΄μ–ΈνŠΈ : Debian Stable (9.2)
μ„œλ²„ : OpenSSHλ₯Ό μ‚¬μš©ν•˜λŠ” LAN의 FreeBSD 11.1 μ„œλ²„ (OpenSSH_7.2p2, OpenSSL 1.0.2k-freebsd 2017 λ…„ 1 μ›” 26 일)

μ˜ˆμƒλ˜λŠ” 행동

계측 ꡬ쑰에 κΉŠμ€ 파일 만 λ³΅μ›ν•˜λ”λΌλ„ λͺ¨λ“  λ””λ ‰ν† λ¦¬λŠ” μ›λž˜ κΆŒν•œκ³Ό μ†Œμœ κΆŒμœΌλ‘œ μƒμ„±λ˜μ–΄μ•Όν•©λ‹ˆλ‹€.

μ‹€μ œ 행동

계측 ꡬ쑰 κΉŠμˆ™ν•œ κ³³μ—μžˆλŠ” νŒŒμΌμ„ 볡원 ν•  λ•Œ μ•„λž˜λ‘œ λ‚΄λ €κ°€λŠ” λ””λ ‰ν† λ¦¬λŠ” 원본과 λ‹€λ₯Έ μ‚¬μš©μž 및 κΆŒν•œμœΌλ‘œ λ³΅μ›λ©λ‹ˆλ‹€.

행동을 μž¬ν˜„ν•˜λŠ” 단계

mkdir testdir # 디렉토리 생성
touch testdir / testfile # κ·Έ μ•ˆμ— νŒŒμΌμ„ λ§Œλ“­λ‹ˆλ‹€.
chmod 755 testdir testdir / testfile # κΆŒν•œμ΄ 755인지 확인
su # 루트둜 μ „ν™˜
restic -r sftp : rakor @ SERVER : / usr / home / rakor / resticbackuptest backup testdir # λ°±μ—… λ§Œλ“€κΈ°
restic -r sftp : rakor @ SERVER : / usr / home / rakor / resticbackuptest restore latest -t testrestore -i testfile # νŒŒμΌμ„ λ³΅μ›ν•©λ‹ˆλ‹€ (전체 디렉토리가 μ•„λ‹˜).
ls -lR testrestore # μ˜¬λ°”λ₯Έ μ†Œμœ μžμ™€ κΆŒν•œμœΌλ‘œ 파일이 λ³΅μ›λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 파일둜 λ‚΄λ €κ°€λŠ” λ””λ ‰ν† λ¦¬λŠ” μ‚¬μš©μž 'root'와 κΆŒν•œ 700으둜 λ³΅μ›λ©λ‹ˆλ‹€.
testrestore / :
insgesamt 4
drwx ------ 2 루트 루트 4096 Okt 31 21:30 testdir

testrestore / testdir :
insgesamt 0
-rwxr-xr-x 1 rakor rakor 0 Okt 31 21:25 ν…ŒμŠ€νŠΈ 파일

이 문제의 원인이 무엇인지 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄λ €κ°€λŠ” λ””λ ‰ν† λ¦¬λŠ” "볡원"이 μ•„λ‹ˆλΌ "λ³΄μ•ˆ κΈ°λ³Έκ°’"으둜 "λ§Œλ“€μ–΄μ§„"것이라고 μƒκ°ν•©λ‹ˆλ‹€.

문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ?

빈 디렉토리λ₯Ό λ§Œλ“œλŠ” λŒ€μ‹  λ³΅μ›ν•˜μ‹­μ‹œμ˜€.

restore bug

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜μ—κ²Œ 이것은 ν™•μ‹€νžˆ 볡원 κΈ°λŠ₯의 버그 / 문제처럼 λ³΄μž…λ‹ˆλ‹€. μ›λž˜ 일뢀 μ‚¬μš©μžμ—κ²Œ μ†ν•œ 데이터λ₯Όμ΄ μ‚¬μš©μžκ°€ μ•‘μ„ΈμŠ€ ν•  μˆ˜μžˆλŠ” λ””λ ‰ν„°λ¦¬λ‘œ λ³΅μ›ν•˜λŠ” 경우 μΌλΆ€λ§Œ 볡원 된 κ²½μš°μ—λ„μ΄ μ‚¬μš©μžκ°€ 볡원 된 데이터에 μ•‘μ„ΈμŠ€ ν•  μˆ˜μžˆμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. 디렉토리 속성 (μ†Œμœ μž / μ•‘μ„ΈμŠ€ / 기타)을 λ³΅μ›ν•˜λŠ” 것은이λ₯Ό λ‹¬μ„±ν•˜λŠ” μžμ—°μŠ€λŸ¬μš΄ λ°©λ²•μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

λ˜ν•œ ν˜„μž¬ λ™μž‘μ€ μ΄λŸ¬ν•œ 쀑간 디렉터리λ₯Ό "반 볡원"ν•˜λŠ” κ²ƒμœΌλ‘œ μΈμ‹λ˜λ©° (μ‘΄μž¬λŠ” λ³΅μ›λ˜μ§€λ§Œ 속성은 λ³΅μ›λ˜μ§€ μ•ŠμŒ) 일관성이 μ—†κ±°λ‚˜ λΉ„λ…Όλ¦¬μ μœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

λͺ¨λ“  5 λŒ“κΈ€

이 문제λ₯Ό 제기 ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 쀑간 디렉터리에 λŒ€ν•œ 이전 μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ˜¬λ°”λ₯Έ λ°©λ²•μœΌλ‘œ μ„€μ •ν•˜λŠ” 것이 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μž μ‹œ 생각해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ¬Έμ œμ— λŒ€ν•œ λ‹€λ₯Έ 생각은 μ—†μŠ΅λ‹ˆκΉŒ?

λ‚˜μ—κ²Œ 이것은 ν™•μ‹€νžˆ 볡원 κΈ°λŠ₯의 버그 / 문제처럼 λ³΄μž…λ‹ˆλ‹€. μ›λž˜ 일뢀 μ‚¬μš©μžμ—κ²Œ μ†ν•œ 데이터λ₯Όμ΄ μ‚¬μš©μžκ°€ μ•‘μ„ΈμŠ€ ν•  μˆ˜μžˆλŠ” λ””λ ‰ν„°λ¦¬λ‘œ λ³΅μ›ν•˜λŠ” 경우 μΌλΆ€λ§Œ 볡원 된 κ²½μš°μ—λ„μ΄ μ‚¬μš©μžκ°€ 볡원 된 데이터에 μ•‘μ„ΈμŠ€ ν•  μˆ˜μžˆμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. 디렉토리 속성 (μ†Œμœ μž / μ•‘μ„ΈμŠ€ / 기타)을 λ³΅μ›ν•˜λŠ” 것은이λ₯Ό λ‹¬μ„±ν•˜λŠ” μžμ—°μŠ€λŸ¬μš΄ λ°©λ²•μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

λ˜ν•œ ν˜„μž¬ λ™μž‘μ€ μ΄λŸ¬ν•œ 쀑간 디렉터리λ₯Ό "반 볡원"ν•˜λŠ” κ²ƒμœΌλ‘œ μΈμ‹λ˜λ©° (μ‘΄μž¬λŠ” λ³΅μ›λ˜μ§€λ§Œ 속성은 λ³΅μ›λ˜μ§€ μ•ŠμŒ) 일관성이 μ—†κ±°λ‚˜ λΉ„λ…Όλ¦¬μ μœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 버그라고 μƒκ°ν•©λ‹ˆλ‹€. λ°±μ—…μ˜ 일뢀λ₯Ό λ³΅μ›ν•˜λ €λ©΄ 볡원 된 사본을 μ‚¬μš©ν•  수 μžˆμ–΄μ•Όν•©λ‹ˆλ‹€. ν˜„μž¬λŠ” μžλ™ 생성 된 각 경둜 μš”μ†Œμ˜ μ μ ˆν•œ κΆŒν•œ, μ†Œμœ μž 및 그룹을 μ°ΎκΈ° μœ„ν•΄ restic ls μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šκ³ λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 정말 파일 / λ””λ ‰ν† λ¦¬μ˜ 볡원을 μ–΄λ ΅κ²Œ λ§Œλ“­λ‹ˆλ‹€.

Restic에 μ˜ν•΄ 볡원 된 ν•­λͺ©μ€ μΌκ΄€λœ λ°©μ‹μœΌλ‘œ λ³΅μ›λ˜μ–΄μ•Όν•œλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€ (즉, 볡원을 μ‹€ν–‰ν•˜λŠ” μ‚¬μš©μžμ˜ "κΈ°λ³Έ"κΆŒν•œ λ˜λŠ” λ°±μ—… 된 원본 파일 및 ν΄λ”μ˜ κΆŒν•œ 등을 μ‚¬μš©ν•˜μ—¬ λ³΅μ›ν•΄μ•Όν•©λ‹ˆλ‹€. λ‘˜μ˜ μ‘°ν•©).

κ·ΈλŸ¬λ‚˜ 두 가지 μœ ν˜•μ˜ κΆŒν•œμ—μ„œ μ‚¬μš© 사둀λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 일뢀 μ‚¬μš©μžλŠ” 데이터λ₯Ό μƒˆ μ»¨ν…μŠ€νŠΈλ‘œ 볡원 ν•  ν•„μš” / μ›ν•˜λ©°, 마치 λ™μΌν•œ 디렉토리와 νŒŒμΌμ„ μƒˆλ‘œ λ§Œλ“  κ²ƒμ²˜λŸΌ μ†Œμœ κΆŒκ³Ό κΆŒν•œμ΄ "κΈ°λ³Έκ°’"이되기λ₯Ό μ›ν•©λ‹ˆλ‹€.
  • 일뢀 μ‚¬μš©μžλŠ” λ°±μ—… 된 것과 λ™μΌν•˜κ±°λ‚˜ λ™μΌν•œ μ»¨ν…μŠ€νŠΈλ‘œ 데이터λ₯Ό λ³΅μ›ν•΄μ•Όν•˜λ©° κ·Έ κ²°κ³Ό λ°±μ—… 된 원본 파일과 λ™μΌν•œ μ†Œμœ κΆŒ 및 / λ˜λŠ” κΆŒν•œμ„ κ°–κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€.
  • 일뢀 μ‚¬μš©μžλŠ” κΆŒν•œ 만 μœ μ§€ν•˜κ³  μ†Œμœ κΆŒμ€ μœ μ§€ν•˜μ§€ μ•ŠκΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€ (ν•˜μ§€λ§Œ μ†Œμœ κΆŒμ€ μ‰½κ²Œ μˆ˜μ •ν•  수 있음).

합리적인 방법은 restore λͺ…령에 λŒ€ν•œ 일뢀 μ˜΅μ…˜μœΌλ‘œ 볡원 ν•  μ†Œμœ κΆŒ 및 / λ˜λŠ” κΆŒν•œμ„ μ œμ–΄ ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

λˆ„κ΅°κ°€κ°€ μ—¬μ „νžˆ λ¬Έμ œμΈμ§€ 확인해 μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 0.7.3이 μΆœμ‹œ 된 μ΄ν›„λ‘œ 쀑간 디렉토리에 λŒ€ν•œ κΆŒν•œ (및 νƒ€μž„ μŠ€νƒ¬ν”„) 처리λ₯Ό λͺ‡ 가지 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€ ...

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰