Restic: μ„ ν–‰ 경둜 접두사λ₯Ό μ œκ±°ν•˜λŠ” λ°±μ—… μ˜΅μ…˜

에 λ§Œλ“  2018λ…„ 11μ›” 16일  Β·  24μ½”λ©˜νŠΈ  Β·  좜처: restic/restic

restic version 좜λ ₯

restic 0.9.3 compiled with go1.11.1 on linux/amd64

restic은 μ–΄λ–»κ²Œ λ‹€λ₯΄κ²Œ ν•΄μ•Ό ν•©λ‹ˆκΉŒ? μ–΄λ–€ κΈ°λŠ₯을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•˜μ‹­λ‹ˆκΉŒ?

restic backup 에 "λ°±μ—…λœ λͺ¨λ“  파일의 κ²½λ‘œμ—μ„œ 이 μ„ ν–‰ 경둜λ₯Ό μ œκ±°ν•˜μ‹­μ‹œμ˜€"λΌλŠ” μ˜΅μ…˜μ΄ 있으면 도움이 될 κ²ƒμž…λ‹ˆλ‹€. 예: --backup-root /some/path . λ‹€μŒκ³Ό 같은 νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • /some/path/to/file νŒŒμΌμ€ μŠ€λƒ…μƒ·μ— /to/file λ©λ‹ˆλ‹€.
  • 이 νŒŒμΌμ€ λ˜ν•œ μƒμœ„ μŠ€λƒ…μƒ·μ˜ /to/file 에 λŒ€ν•΄ 메타데이터 검사λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • 이 μ ‘λ‘μ‚¬λ‘œ μ‹œμž‘ν•˜μ§€ μ•ŠλŠ” 파일/디렉토리λ₯Ό restic backup 에 지정할 수 μ—†μŠ΅λ‹ˆλ‹€.

(이것이 #1376κ³Ό 관련이 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.)

무엇을 ν•˜λ €κ³  ν•©λ‹ˆκΉŒ?

λ°±μ—… 슀크립트 쀑 ν•˜λ‚˜λŠ” 쀑지할 수 μ—†λŠ” μ‹€ν–‰ 쀑인 μ„œλΉ„μŠ€κ°€ λ§Žμ€ μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λŠ” νŠΉμ • μ‹œμ μ—μ„œ 볡ꡬ가 κ°€λŠ₯함을 보μž₯ν•©λ‹ˆλ‹€(예: μ •μ „ ν›„ 데이터λ₯Ό μΌκ΄€λœ μƒνƒœλ‘œ 되돌리기 μœ„ν•΄ μΆ©λΆ„ν•œ 저널링을 μˆ˜ν–‰ν•¨). κ·ΈλŸ¬λ‚˜ λ‚˜λ¨Έμ§€ 백업은 μ›μžμ μ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‚˜λ¨Έμ§€ 백업은 μ„œλΉ„μŠ€μ˜ 볡ꡬ 보μž₯을 κΉ¨λœ¨λ¦½λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒμ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  1. / 의 LVM μŠ€λƒ…μƒ·μ„ λ§Œλ“­λ‹ˆλ‹€. μŠ€λƒ…μƒ·μ€ 전체 λ³Όλ₯¨μ˜ μ›μž 블둝 μˆ˜μ€€ λ³΅μ‚¬λ³Έμž…λ‹ˆλ‹€.
  2. /mnt/backup-snapshot μ•„λž˜μ— LVM μŠ€λƒ…μƒ·μ„ λ§ˆμš΄νŠΈν•©λ‹ˆλ‹€.
  3. /mnt/backup-snapshot 에 λŒ€ν•΄ λ‚˜λ¨Έμ§€ 백업을 μ‹€ν–‰ν•©λ‹ˆλ‹€.
  4. LVM μŠ€λƒ…μƒ·μ„ 마운트 ν•΄μ œν•©λ‹ˆλ‹€.
  5. LVM μŠ€λƒ…μƒ·μ„ μ‚­μ œν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ ν•˜λ©΄ 백업이 μ§„μ •ν•œ νŠΉμ • μ‹œμ μ΄ 되고 λ³΅μ›λœ 백업이 μΌκ΄€λœ μƒνƒœλ‘œ 효과적으둜 μœ μ§€λ©λ‹ˆλ‹€.

λΆˆν–‰νžˆλ„ 이것은 파일이 (μ“Έλͺ¨μ—†λŠ”) 접두사 /mnt/backup-snapshot μ‚¬μš©ν•˜μ—¬ 우리의 restic μ €μž₯μ†Œμ— μ €μž₯되게 ν•©λ‹ˆλ‹€. 이것은 볡원 λ…Έλ ₯을 λ³΅μž‘ν•˜κ²Œ ν•  수 있으며 백업이 μƒμ„±λœ 방법에 λŒ€ν•œ μ„ΈλΆ€ 정보λ₯Ό λͺ¨λ₯΄λŠ” 경우 μ•½κ°„ ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ 생각할 수 μžˆλŠ” μœ μΌν•œ ν•΄κ²° 방법은 chroot λ‚΄μ—μ„œ 백업을 μ‹€ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ„Έμƒμ˜ 끝은 μ•„λ‹ˆμ§€λ§Œ restic이 νŒŒμΌμ—μ„œ 일뢀 μ„ ν–‰ 접두사λ₯Ό μ œκ±°ν•˜λŠ” μ˜΅μ…˜μ„ μ œκ³΅ν•˜λŠ” 것이 더 λ‚˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

backup need direction feature suggestion

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

μ•ˆλ…•ν•˜μ„Έμš”, μ €λŠ” 이 "μ‚¬μš©μž μ •μ˜ 루트" κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” μž‘μ—…μ„ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. κ΅¬ν˜„ μžμ²΄λŠ” κ²‰λ³΄κΈ°μ—λŠ” κ°„λ‹¨ν–ˆμ§€λ§Œ μ΄μ „μ—λŠ” C#만 μ•Œκ³  golang을 λ°°μ›Œμ•Ό ν–ˆμŠ΅λ‹ˆλ‹€... μ–΄μ¨Œλ“ , 2λ…„ 전인 2018λ…„λΆ€ν„° 이 λ¬Έμ œκ°€ μ–΄λ–€ μ’…λ₯˜μ˜ 지원을 λ°›κ³  μžˆλŠ”μ§€ μΈ‘μ •ν•˜λ €κ³  ν•©λ‹ˆλ‹€. . golang으둜 λ‚˜λ₯Ό 도와주고 싢은 μ‚¬λžŒμ΄ 있으면 곧 https://github.com/TheRealVincentVanGogh/restic/tree/2092-feature-custom-path-prefix 에 전념할 κ²ƒμž…λ‹ˆλ‹€. μ‘°λ§Œκ°„ 여기에 ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό 올릴 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

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

λ‚΄κ°€ 찾은 이 μš”μ²­μ˜ 더 였래된 κ΅¬ν˜„μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. #555

+1

이것도 정말 μœ μš©ν•œ κΈ°λŠ₯이 될 것 κ°™μ•„μš”.

μš”μ•½ν•˜μžλ©΄ restic backup /mnt/backup-snapshot λ₯Ό μ‹€ν–‰ μ€‘μ΄λ―€λ‘œ /mnt/backup-snapshot/foo νŒŒμΌμ€ μŠ€λƒ…μƒ·μ—μ„œ /mnt/backup-snapshot/foo μ΄μ§€λ§Œ /foo 이 되기λ₯Ό μ›ν•©λ‹ˆλ‹€

ν˜„μž¬ 디렉토리λ₯Ό λ³€κ²½ν•˜μ—¬ restic > 0.9.0으둜 이λ₯Ό 달성할 수 μžˆμŠ΅λ‹ˆλ‹€. cd /mnt/backup-snapshot λ₯Ό μ‹€ν–‰ν•œ λ‹€μŒ restic backup . λ©λ‹ˆλ‹€.

그게 당신을 μœ„ν•΄ μž‘λ™ν•©λ‹ˆκΉŒ?

cwd λ³€κ²½ν•˜λ©΄ μž‘λ™ν•˜μ§€λ§Œ 포함/μ œμ™Έμ— νŒŒμΌμ„ μ‚¬μš©ν•˜λŠ” 경우 λΆˆμΎŒν•œ λΆ€μž‘μš©μ΄ μžˆμŒμ„ μ•Œμ•˜μŠ΅λ‹ˆλ‹€. 거기에 μ ˆλŒ€ κ²½λ‘œκ°€ 있으면 cwd λ³€κ²½ν•  λ•Œ κ±΄λ„ˆ λ›°λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 차라리 μ ˆλŒ€ 경둜λ₯Ό μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€ - μ§€κΈˆμ€ μ•„λ§ˆλ„ chroot 경둜λ₯Ό λ”°λΌκ°ˆ κ²ƒμ΄μ§€λ§Œ tar -C ν”Œλž˜κ·Έμ™€ μœ μ‚¬ν•œ 것을 κ°–λŠ” 것이 더 쒋을 κ²ƒμ΄λΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. .

이 κ°€μ§œ 루트 μ˜΅μ…˜μ΄ μœ μš©ν•œ κΈ°λŠ₯이 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€. cdhowie와 λ™μΌν•˜μ§€λ§Œ macOSμ—μ„œ apfs μŠ€λƒ…μƒ·μ„ μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 읽기 μ „μš© apfs μŠ€λƒ…μƒ·μ— μ•‘μ„ΈμŠ€ν•˜λ €λ©΄ μ–΄λ”˜κ°€μ— λ§ˆμš΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 볡원할 λ•Œ "μ›λž˜" κ²½λ‘œκ°€ μŠ€λƒ…μƒ·μ— μ €μž₯된 ν‘œμ€€ κ²½λ‘œκ°€ 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

λΆˆν–‰νžˆλ„ cd νŠΈλ¦­μ€ StdExclusions.plist(macOS ν‘œμ€€ λ°±μ—… μ œμ™Έ λͺ©λ‘)μ—μ„œ μˆ˜μ§‘λœ μ ˆλŒ€ κ²½λ‘œκ°€ 많고(125) mdfindκ°€ com_apple_backup_excludeItem 속성 μ„ΈνŠΈλ‘œ 찾을 수 μžˆλŠ” λͺ¨λ“  파일 및 폴더λ₯Ό 가지고 있기 λ•Œλ¬Έμ— 졜적이 μ•„λ‹™λ‹ˆλ‹€.

/mntλ₯Ό λ¬΄μ‹œ νŒŒμΌμ— λ„£κ³  /mnt/fs-snapshotμ—μ„œ 백업을 μ‹œμž‘ν•˜λ©΄ λ¬Έμ œκ°€ κ·ΈλŒ€λ‘œ λ‚¨μŠ΅λ‹ˆλ‹€.

ν”ŒλŸ¬μŠ€ cd $path && restic backup . μŠ€λƒ…μƒ· κ°œμš”μ—μ„œ μ—¬μ „νžˆ $pathλ₯Ό μ œκ³΅ν•˜μ§€λ§Œ μŠ€λƒ…μƒ·μ˜ κ²½λ‘œλŠ” / κΈ°λ°˜μž…λ‹ˆλ‹€.

proroot둜 ν•΄κ²° 방법을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

λ˜ν•œ 경둜 접두사λ₯Ό μ œκ±°ν•˜λŠ” 방법을 μ°Ύκ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ μ‚¬μš© μ‚¬λ‘€λŠ” μ•½κ°„ λ‹€λ¦…λ‹ˆλ‹€. μ €λŠ” zfs μŠ€λƒ…μƒ·( fs@$(date +%s) )을 μƒμ„±ν•˜κ³  있으며 이λ₯Ό λ§ˆμš΄νŠΈν•˜μ§€ μ•Šκ³  λ°±μ—…ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€( /path/to/mount/.zfs/snapshots/${TS} ). μŠ€λƒ…μƒ·μ΄ 마운트 ν•΄μ œλ˜μ§€ μ•Šκ³  좩돌이 λ°œμƒν•˜λŠ” 경우 μ˜μ›νžˆ λ– λŒμ•„λ‹€λ‹ˆλŠ” 것에 λŒ€ν•΄ κ±±μ •ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

이에 λŒ€ν•œ restic forget 좜λ ₯은 λ‹€λ₯Έ 경둜λ₯Ό 가진 μŠ€λƒ…μƒ·μ΄ 일정(맀일 / 맀주 λ“±)에 따라 μžŠν˜€μ§€μ§€ μ•Šμ„ 것이라고 μƒκ°ν•˜κ²Œ ν•©λ‹ˆλ‹€.

@blurayne 의 proot λŒ“κΈ€μ€ 쒋은 μΆœλ°œμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 저도 같은 결둠에 λ„λ‹¬ν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

$snap_path="/path/to/where/snapshot/is/accessible"
$orig_fs="/path/to/filesystem"
proot -b "${snap_path}":"${orig_fs}" restic backup "${orig_fs}"

이것은 잘 μž‘λ™ν•˜λ©° 이제 λͺ¨λ“  μŠ€λƒ…μƒ·μ€ cd λ˜λŠ” pushd 없이 λ™μΌν•œ 경둜λ₯Ό κ°–μŠ΅λ‹ˆλ‹€. λ˜ν•œ rootλŠ” μ‚¬μš©μž κ³΅κ°„μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ―€λ‘œ root둜 백업을 ν•˜μ§€ μ•Šμ•„λ„ κ°€λŠ₯ν•©λ‹ˆλ‹€.

λ‚΄ μ‚¬μš© 사둀: /tmp/tmpzmn28r02(mktemp λ˜λŠ” python의 mkdtemp()λ₯Ό 톡해 μ–»μŒ)와 같은 μž„μ‹œ 디렉토리에 λ°μ΄ν„°λ² μ΄μŠ€ 데이터λ₯Ό λ€ν”„ν•œ λ‹€μŒ λ°±μ—…ν•©λ‹ˆλ‹€.
이 방법은 2개의 μŠ€λƒ…μƒ· μ‚¬μ΄μ˜ λͺ¨λ“  νŒŒμΌμ„ μ„œλ‘œ λ‹€λ₯Έ κ²ƒμœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ μž„μ‹œ 디렉토리 접두사λ₯Ό μ™„μ „νžˆ λ¬΄μ‹œν•˜λ„λ‘ restic에 μ§€μ‹œν•˜λŠ” 방법이 ν•„μš”ν•©λ‹ˆλ‹€.
또 λ‹€λ₯Έ κ°€λŠ₯ν•œ μ‚¬μš© 사둀: μ˜€λŠ˜μ€ λͺ¨λ“  사진이 '/mnt/something/pictures'에 μžˆμ§€λ§Œ 내일은 λ™μΌν•œ μ½˜ν…μΈ κ°€ '/mnt/external/pictures-from-home'(λ‹€λ₯Έ νŒŒν‹°μ…˜ κ΅¬μ„±ν‘œ/무엇이든) μ•„λž˜μ— μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λ˜ν•œ λ™μΌν•œ μ‹€ν–‰μ—μ„œ μ—¬λŸ¬ 디렉터리λ₯Ό λ°±μ—…ν•˜κ³  λ‚˜λ¨Έμ§€λ₯Ό μ‚¬μš©ν•˜λ €λŠ” 경우 λ™μΌν•œ μŠ€λƒ…μƒ·μ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 이 μž‘μ—…μ΄ 훨씬 더 λ³΅μž‘ν•΄μ§‘λ‹ˆλ‹€.

μˆ˜μ •μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ 'proot' μ œμ•ˆμ„ μ‚¬μš©ν•  κ²ƒμž…λ‹ˆλ‹€ - @blurayne 및 @whi-tw κ°μ‚¬ν•©λ‹ˆλ‹€

μ•ˆλ…•! λΉ„μŠ·ν•œ κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 폴더가 μžˆμŠ΅λ‹ˆλ‹€.

/srv/my/long/server1/path/data (with many subfolders and dozen of files)
/path/to/dump.sql
/path/certbot.tar.gz

κ·Έλž˜μ„œ λ‚˜λŠ” 백업을 λ°›κ³  μ‹Άλ‹€

/data
/dump.sql
/certbot.tar.gz

λ‹€λ₯Έ 경둜(μƒλŒ€)λ₯Ό 톡해 λ‹€λ₯Έ μ„œλ²„(이전 폴더 ꡬ쑰에 λŒ€ν•΄μ„œλŠ” 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€)μ—μ„œ 볡원할 수 μžˆλŠ” κΈ°λŠ₯을 μ–»μŠ΅λ‹ˆλ‹€.

이 μ‚¬μ†Œν•œ μž‘μ—…μ„ ν•΄κ²°ν•  아이디어가 μ—†μŠ΅λ‹ˆλ‹€. Restic은 λ†€λΌμš΄ λ„κ΅¬μ΄μ§€λ§Œ... μ΅œμ’… μ‚¬μš©μžμ—κ²Œ μ™œ κ·Έλ ‡κ²Œ μ–΄λ ΅κ²Œ μž‘λ™ν•©λ‹ˆκΉŒ?

미리 μ •μ˜λœ λ°±μ—… 폴더(/backup)에 ν•„μš”ν•œ λͺ¨λ“  것을 λ³΅μ‚¬ν•˜κ³  κ±°κΈ°μ—μ„œ (cdλ₯Ό 톡해) Restic 백업을 μ‹€ν–‰ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 μ†”λ£¨μ…˜μ€ μ†ŒλŸ‰μ˜ λ°μ΄ν„°μ—λ§Œ μ μš©λ©λ‹ˆλ‹€.

ν…œν”Œλ¦Ώ λ°”λ‘œ λ’€(λ˜λŠ” 이 마슀크 포함) --include ν•˜μœ„ 폴더λ₯Ό μ‚¬μš©ν•˜μ—¬ κΈ°λŠ₯을 λ³΅μ›ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. μ „.:
restic restore --include data --target /my/new/path
결과둜 얻을
/my/new/path/data


proot -b /path/i/wanted:./path_in_repo restic backup . μ†”λ£¨μ…˜μ— λŒ€ν•΄ @whi-twμ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μ €μ—κ²Œ νš¨κ³Όμ μž…λ‹ˆλ‹€.

제 μ‚¬μš© μ‚¬λ‘€λŠ” λ‹€λ₯Έ λ°±μ—… μ†”λ£¨μ…˜μ˜ μŠ€λƒ…μƒ·μ„ restic으둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€(제 κ²½μš°μ—λŠ” Time Machine 및 λ””μŠ€ν¬ 이미지).

/Volumes/TimeMachine-Backups/Backups.backupdb/MacBook Pro/2019-05-22-185113/Macintosh SSD/ 맀우 κΈΈμ–΄μ§ˆ 수 μžˆλŠ” TM에 μ˜ν•΄ μƒμ„±λœ μŠ€λƒ…μƒ·μ˜ 이미지 λ˜λŠ” ν•˜μœ„ 디렉토리λ₯Ό λ§ˆμš΄νŠΈν•˜λŠ” μœ„μΉ˜μ—μ„œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•©λ‹ˆλ‹€.

cd μ†”λ£¨μ…˜μ€ restic mount 및 restic restore μ‚¬μš©ν•  λ•Œ μž‘λ™ν•˜μ§€λ§Œ restic snapshots μ‹€ν–‰ν•  λ•Œ 원본 μŠ€λƒ…μƒ·μ˜ μ ˆλŒ€ κ²½λ‘œκ°€ λ‚˜μ—΄λ©λ‹ˆλ‹€.

λ§ˆμ΄κ·Έλ ˆμ΄μ…˜λœ μŠ€λƒ…μƒ·μ΄κΈ° λ•Œλ¬Έμ— 원본 μŠ€λƒ…μƒ·μ΄ μƒμ„±λœ κ²½λ‘œλ„ λ§ˆμ°¬κ°€μ§€μ˜€μœΌλ©΄ ν•©λ‹ˆλ‹€. κ·Έ 외에도 κΈ΄ 경둜λ₯Ό μ‚¬μš©ν•˜λ©΄ restic snapshots 좜λ ₯이 μ•½κ°„ μ‹œλ„λŸ½μŠ΅λ‹ˆλ‹€.

λŒ€μ²΄ 접두사λ₯Ό μ„€μ •ν•˜λŠ” ν”Œλž˜κ·ΈλŠ” μ €μ—κ²Œλ„ μ΄μƒμ μž…λ‹ˆλ‹€.

이것은 잘 μž‘λ™ν•˜λ©° 이제 λͺ¨λ“  μŠ€λƒ…μƒ·μ€ cd λ˜λŠ” pushd 없이 λ™μΌν•œ 경둜λ₯Ό κ°–μŠ΅λ‹ˆλ‹€. λ˜ν•œ rootλŠ” μ‚¬μš©μž κ³΅κ°„μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ―€λ‘œ root둜 백업을 ν•˜μ§€ μ•Šμ•„λ„ κ°€λŠ₯ν•©λ‹ˆλ‹€.

이것은 쒋은 ν•΄κ²° λ°©λ²•μ΄μ—ˆμ§€λ§Œ proot λŠ” macOSμ—μ„œ μ‚¬μš©ν•  수 μ—†μœΌλ©° μ‘°λ§Œκ°„ μ œκ³΅λ˜μ§€ μ•Šμ„ 것 κ°™μŠ΅λ‹ˆλ‹€(λŒ€λΆ€λΆ„μ˜ μ½”λ“œλŠ” 특히 Linux용으둜 μž‘μ„±λ¨): PRootκ°€ MacOSXμ—μ„œ μž‘λ™ν•©λ‹ˆκΉŒ?

μƒκ°λ‚˜λŠ” λ‹€λ₯Έ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄ μ‚¬μš© 사둀: /tmp/tmpzmn28r02(mktemp λ˜λŠ” python의 mkdtemp()λ₯Ό 톡해 μ–»μŒ)와 같은 μž„μ‹œ 디렉토리에 λ°μ΄ν„°λ² μ΄μŠ€ 데이터λ₯Ό λ€ν”„ν•œ λ‹€μŒ λ°±μ—…ν•©λ‹ˆλ‹€.
이 방법은 2개의 μŠ€λƒ…μƒ· μ‚¬μ΄μ˜ λͺ¨λ“  νŒŒμΌμ„ μ„œλ‘œ λ‹€λ₯Έ κ²ƒμœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€.

μ–΄μ¨Œλ“  νŒŒμΌμ€ _are_ λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ 백업은 일반적으둜 처음 λͺ‡ 쀄에 νƒ€μž„μŠ€νƒ¬ν”„λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ 덀프 λͺ…령을 μ‘°μ •ν•˜μ—¬ 동적 주석을 μ œμ™Έν•˜κ³  κΈ°λ³Έ ν‚€λ‘œ μ •λ ¬ν•˜μ—¬ 느리게 λ³€κ²½λ˜λŠ” 데이터λ₯Ό μ‹€μ œλ‘œ 쀑볡 μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈ: 'proot'λŠ” λ‚˜λ₯Ό μœ„ν•΄ ν•œ μ‹œμŠ€ν…œμ—μ„œλ§Œ μž‘λ™ν–ˆμœΌλ©° λ‹€λ₯Έ μ‹œμŠ€ν…œμ—μ„œλŠ” segfaultsκ°€ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.
그것에 λŒ€ν•œ λŒ€μ•ˆ(μ΅œμ‹ ) - λ²„λΈ”λž©
λ™μΌν•œ '-b' λ§€κ°œλ³€μˆ˜μ™€ ν•¨κ»˜ μž‘λ™ν•΄μ•Ό ν•˜λŠ” 래퍼(첨뢀됨)λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν•„μš”μ™€ 디렉토리 μœ„μΉ˜μ— 따라 래퍼λ₯Ό μ•½κ°„ λ³€κ²½ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
μ—¬λŸ¬λΆ„μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‚˜λŠ” restic 자체 λ‚΄λΆ€μ˜ 지원을 κΈ°λŒ€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

root.sh.txt

proot μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. μΆ”κ°€ κΈ°λŠ₯(https://restic.readthedocs.io/en/stable/080_examples.html#full-backup-without-root)을 μ‚¬μš©ν•˜μ—¬ λ£¨νŠΈκ°€ μ•„λ‹Œ μ‚¬μš©μžλ‘œ restic을 μ‹€ν–‰ν•˜λŠ” κΈ°λŠ₯을 μ€‘λ‹¨ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 적어도 proot 없이 restic을 μ‹€ν–‰ν•  λ•Œ 얻지 λͺ»ν•œ scan: Open: open /.pulse: permission denied 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

bwrap 와 같은 λ¬Έμ œμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ‚˜μ—κ²ŒλŠ” restic μžμ²΄μ—μ„œ 경둜 접두사λ₯Ό μ œκ±°ν•˜λŠ” 것이 μ—¬μ „νžˆ μœ μš©ν•΄ λ³΄μž…λ‹ˆλ‹€.

이 λˆ„λ½λœ κΈ°λŠ₯으둜 인해 VM을 λ°±μ—…ν•˜λŠ” 것이 ν•„μš” μ΄μƒμœΌλ‘œ μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.
λ‚΄ VM μŠ€λƒ…μƒ·μ€ μž„μ‹œ 폴더에 μ €μž₯되고 λ‚˜λ¨Έμ§€λŠ” λ°±μ—…λ©λ‹ˆλ‹€.
κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

ID        Time                 Host         Tags        Paths
--------------------------------------------------------------------------------------
02c536db  2020-04-10 14:28:27  resolver-02              /tmp/tmp.vOFFxxly9O/config.xml
c5709aed  2020-04-10 14:28:29  resolver-02              /tmp/tmp.vOFFxxly9O/sdb.img
a88cc1e7  2020-04-10 14:36:22  resolver-02              /tmp/tmp.FoY1j5JPIZ/config.xml
7c44e6ee  2020-04-10 14:36:24  resolver-02              /tmp/tmp.FoY1j5JPIZ/sdb.img
65456111  2020-04-10 14:37:48  resolver-02              /tmp/tmp.vjtI9JE3Iz/config.xml
eaced756  2020-04-10 14:37:49  resolver-02              /tmp/tmp.vjtI9JE3Iz/sdb.img
8eccec2c  2020-04-10 16:04:30  resolver-02              /tmp/tmp.YtLYRd0rNI/config.xml
34c897e1  2020-04-10 16:04:31  resolver-02              /tmp/tmp.YtLYRd0rNI/sdb.img
99b67b97  2020-04-10 16:07:53  resolver-02              /tmp/tmp.aWaEDqAaTq/config.xml
cad2c9d8  2020-04-10 16:07:54  resolver-02              /tmp/tmp.aWaEDqAaTq/sdb.img
--------------------------------------------------------------------------------------

이것은 λ™μΌν•œ νŒŒμΌμ„ μΈμ‹ν•˜μ§€ λͺ»ν•˜κ³  λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ μŠ€λƒ…μƒ·μ„ μœ μ§€ν•˜κΈ° λ•Œλ¬Έμ— restic forget μ€‘λ‹¨ν•©λ‹ˆλ‹€. μ•Œλ €μ§„ 접두사λ₯Ό μ œκ±°ν•˜κ±°λ‚˜ μ ˆλŒ€ κ²½λ‘œκ°€ μ•„λ‹Œ μƒλŒ€ 경둜 만 μ €μž₯ν•˜λŠ” 방법이 μžˆλ‹€λ©΄ 더 μ’‹κ² μŠ΅λ‹ˆλ‹€.
λ‚˜λŠ” 이미 μƒλŒ€ 경둜λ₯Ό μ‚¬μš©ν•˜μ—¬ restic을 ν˜ΈμΆœν•˜κ³  μž„μ‹œ ν΄λ”μ—μ„œ ching을 ν˜ΈμΆœν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μŠ¬ν”„κ²Œλ„ λ„μ›€μ΄λ˜μ§€ μ•ŠμœΌλ©° 이에 λŒ€ν•΄ bindmountsλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

이것은 λ™μΌν•œ νŒŒμΌμ„ μΈμ‹ν•˜μ§€ λͺ»ν•˜κ³  λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ μŠ€λƒ…μƒ·μ„ μœ μ§€ν•˜κΈ° λ•Œλ¬Έμ— restic forget μ€‘λ‹¨ν•©λ‹ˆλ‹€.

μš°λ¦¬λ„ 이 λ¬Έμ œμ— μ§λ©΄ν–ˆμ§€λ§Œ μ†”λ£¨μ…˜μ€ 맀우 κ°„λ‹¨ν•©λ‹ˆλ‹€. λ°±μ—… 쀑인 νŒŒμΌμ„ 기반으둜 각 백업에 νƒœκ·Έλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ 여기에 config.xml 및 sdb.img νƒœκ·Έλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ μΆ”κ°€ --group-by host,tags μ‹€ν–‰ν•˜λŠ” 경우 restic forget .

이 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μ–΄λ €μš΄ μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? μŠ€λƒ…μƒ· 메타데이터에 λŒ€ν•œ λ™μΌν•œ κΈ°λ³Έ λ¬Έμžμ—΄ 필터링이 μ•„λ‹Œκ°€μš”? 그것이 κ°€μ Έμ˜¬ κ°€μΉ˜λŠ” μ—„μ²­λ‚©λ‹ˆλ‹€. 예, νƒœκ·Έ μ§€μ •μœΌλ‘œ ν•΄κ²°ν•  수 μžˆμ§€λ§Œ 경둜 ν•„λ“œκ°€ 있고 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€...

이 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μ–΄λ €μš΄ μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

κ°œλ°œμžλ‘œμ„œ 슀슀둜 λ§ν•˜κΈ°(λ‹¨μˆœν•œ 것이 μ•„λ‹ˆλΌ λ‹€λ₯Έ μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈ): κΈ°λŠ₯ κ΅¬ν˜„μ„ λ°©ν•΄ν•˜λŠ” 것은 κΈ°λŠ₯의 λ³΅μž‘μ„±μ΄ μ•„λ‹ˆλΌ μ‹œκ°„ λΆ€μ‘±, 동기 λΆ€μ—¬ λ˜λŠ” λ‹¨μˆœνžˆ "μ‹€μ œ μƒν™œ"κ³Ό 같은 일상적인 κ²ƒμž…λ‹ˆλ‹€...

λ¬Όλ‘  λ‚΄ λͺ©ν‘œλŠ” λΉ„νŒμ μ΄μ§€ μ•Šκ³  μ§„μ •μœΌλ‘œ 잠재적 κΈ°μ—¬μžμ˜ λ³΅μž‘μ„±μ„ νŒŒμ•…ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”, μ €λŠ” 이 "μ‚¬μš©μž μ •μ˜ 루트" κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” μž‘μ—…μ„ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. κ΅¬ν˜„ μžμ²΄λŠ” κ²‰λ³΄κΈ°μ—λŠ” κ°„λ‹¨ν–ˆμ§€λ§Œ μ΄μ „μ—λŠ” C#만 μ•Œκ³  golang을 λ°°μ›Œμ•Ό ν–ˆμŠ΅λ‹ˆλ‹€... μ–΄μ¨Œλ“ , 2λ…„ 전인 2018λ…„λΆ€ν„° 이 λ¬Έμ œκ°€ μ–΄λ–€ μ’…λ₯˜μ˜ 지원을 λ°›κ³  μžˆλŠ”μ§€ μΈ‘μ •ν•˜λ €κ³  ν•©λ‹ˆλ‹€. . golang으둜 λ‚˜λ₯Ό 도와주고 싢은 μ‚¬λžŒμ΄ 있으면 곧 https://github.com/TheRealVincentVanGogh/restic/tree/2092-feature-custom-path-prefix 에 전념할 κ²ƒμž…λ‹ˆλ‹€. μ‘°λ§Œκ°„ 여기에 ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό 올릴 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

@TheRealVincentVanGogh λ‚˜λŠ” 바둑을 λ°°μš°μ§€ μ•Šμ„ κ²ƒμ΄μ§€λ§Œ, λ‚˜λŠ” μ—¬μ „νžˆ 이 κΈ°λŠ₯을 κ°ˆλ§ν•˜κ³  있고 λ‚˜λŠ” μ—¬μ „νžˆ λ ˆμŠ€μŠ€ν‹±μœΌλ‘œ μ΄μ‹ν•˜κ³  μ‹Άμ§€λ§Œ 이 λ¬Έμ œμ— λŒ€ν•΄ λ§Žμ€ 백업을 가지고 μžˆμŠ΅λ‹ˆλ‹€. μž‘λ™ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 것이 있으면 PR을 μ—΄κ³  여기에 링크λ₯Ό κ²Œμ‹œν•˜λ©΄ λͺ‡ 가지 κ°•λ ₯ν•œ ν…ŒμŠ€νŠΈλ₯Ό λΉŒλ €μ€„ κ²ƒμž…λ‹ˆλ‹€.

@TheRealVincentVanGogh κ³„νšλœ κ΅¬ν˜„μ΄ PR #2010κ³Ό μ–΄λ–€ 관련이 μžˆμŠ΅λ‹ˆκΉŒ?

@TheRealVincentVanGogh κ³„νšλœ κ΅¬ν˜„μ΄ PR #2010κ³Ό μ–΄λ–€ 관련이 μžˆμŠ΅λ‹ˆκΉŒ?

@MichaelEischer 였 μŠ›! 이미 λˆ„κ΅°κ°€κ°€ μ €λ₯Ό λ•Œλ¦° 것 κ°™μŠ΅λ‹ˆλ‹€. λ„€, PR #2010이 λ°”λ‘œ μ œκ°€ ν•˜κ³  μžˆλŠ”... μž¬μ„±κ³΅... μ  μž₯. @cdhowie λŠ” 미래의 ν˜Όλž€μ„ ν”Όν•˜κΈ° μœ„ν•΄ PR #2010을 이 λ¬Έμ œμ— μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 감사 ν•΄μš”!

@themightychris λ‹€μŒμ€ ν•΄λ‹Ή PR에 λŒ€ν•œ λ§ν¬μž…λ‹ˆλ‹€. κ°œλ°œμžλ„ 2018년에 μ€‘ν‡΄ν•œ 것 같은데... κΆκΈˆν•˜λ„€μš”.

νŽΈμ§‘ν•˜λ‹€:

μŠ€λƒ…μƒ· 파일 VSμ—μ„œ 경둜 접두사λ₯Ό μ œκ±°ν•˜λŠ” 것 사이에 μ•½κ°„μ˜ λͺ¨ν˜Έμ„±μ΄ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λͺ¨λ“  파일 ꡬ쑰 + μŠ€λƒ…μƒ· νŒŒμΌμ—μ„œ 경둜 접두사 제거. PR #2010은 μ „μž 만 λ‹€λ£¨λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. OPκ°€ "λͺ¨λ“  λ°±μ—… 파일의 κ²½λ‘œμ—μ„œ 이 μ„ ν–‰ 경둜 제거" (일λͺ… 파일 ꡬ쑰 μˆ˜μ€€ 경둜 μˆ˜μ •)λ₯Ό μ°Ύκ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμ— PR #2010을 이 λ¬Έμ œμ— μ—°κ²°ν•˜λŠ” 것에 λŒ€ν•΄ λ§ν•œ 것을 μ² νšŒν•΄μ•Ό ν•©λ‹ˆλ‹€. cdhowie μ–ΈκΈ‰ μ£„μ†‘ν•©λ‹ˆλ‹€!

κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³ ! @MichaelEischer λ‚΄ μ˜λ„λŠ” 항상

μΆ”μ‹ : μ €λŠ” μš”μ¦˜ κ½€ λ°”λΉ μ„œ μž‘μ—…μ΄ μž μ‹œ 느릴 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘ , μ—¬λŸ¬λΆ„ λͺ¨λ‘μ™€ κ³΅μœ ν•  κ°€μΉ˜κ°€ μžˆλ‹€κ³  μƒκ°λ˜λ©΄ PR을 κ²Œμ‹œν•  κ²ƒμž…λ‹ˆλ‹€! λͺ¨λ‘λ“€ μ•ˆμ „ν•˜μ„Έμš”! πŸ˜„

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