HFS에서 NTFS 로의 링크 대상으로 rsync 사용


6

rsync에 문제가 있습니다.

저는 Mac을 사용하고 있으며 일상적인 변경 사항을 HFS + 파티션에서 NTFS 형식의 네트워크 드라이브로 동기화하고 싶습니다.

매우 간단하며 매번 모든 파일을 동기화한다는 점을 제외하면 모든 것이 잘 작동합니다.

내 스크립트는 다음과 같습니다.

#! /bin/sh

snapshot_dir=/Volumes/USB_Storage/Backups
snapshot_id=`date +%Y%m%d%H%M`

/usr/bin/rsync -a \
  --verbose \
  --delete --delete-excluded \
  --human-readable --progress \
  --one-file-system \
  --partial \
  --modify-window=1 \
  --exclude-from=.backup_excludes \
  --link-dest ../current \
  /Users/tommybergeron/Desktop/Brainpad \
  $snapshot_dir/in-progress

cd $snapshot_dir
rm -rf $snapshot_id
mv in-progress $snapshot_id
rm -f current
ln -s $snapshot_id $snapshot_dir/current

누군가 나를 도와 줄 수 있습니까? 나는 두 시간을 찾고 있었고 여전히 단서가 없습니다.

정말 고마워.

답변:


7

-aNTFS로 올바르게 변환되지 않을 수있는 권한을 복사하여 일치시켜야합니다. 나는 단지 사용합니다 -rltD. -a의미합니다 -rlptgoD.

참고 : Linux에서 EXT4와 함께 rsync를 사용하는데 HFS와 NTFS를 비교하는 방법을 모르겠습니다.

다음은 일부 폴더를 이동식 USB 디스크에 백업하는 데 사용하는 완전한 스크립트입니다. 이것은 우분투 10.4에서 잘 작동합니다.

#!/bin/bash
# Rotated backup from EXT4 to removable NTFS-disc using rsync.
# Four generations are saved and automatically purged each run.
# Generations: current, backups/old, backups/older, backups/oldest.
# This script is stored on and run from the root of the removable disc
# where the backups are stored. Destination paths in the rsync commands
# are relative to current working directory below.

# Purge oldest backup
rm -rf backups/oldest

# Prepare recieving folder.
mkdir inprogress

# Grab new contents. Use rsync to create hard links to files already backed up on media. 
# Note: --link-dest is set relative to dest.
# Note: Since we copy from EXT4 to NTFS we can't use -a. Rights are different in NTFS.
#       If we tried then rsync would copy every file, since rights don't match. 
#       I use -rltD instead of -a. Care must be taken when restoring files!

echo "Backup of Musik is updated with changes since last backup"
rsync -rltD --verbose --modify-window=1 --delete \
      --link-dest=../../current/Musik \
      /home/anders/Musik/ \
      inprogress/Musik

echo "Backup of tv is updated with changes since last backup"
rsync -rltD --verbose --modify-window=1 --delete \
      --link-dest=../../current/tv \
      /home/anders/Video/tv/ \
      inprogress/tv

echo "Backup of Calibre Library is updated with changes since last backup"
rsync -rltD --verbose --modify-window=1 --delete \
      --link-dest="../../current/Calibre Library" \
      "/home/anders/Calibre Library/" \
      "inprogress/Calibre Library"

# Rotate the backups
# mkdir backups (only needed first run)
mv backups/older backups/oldest
mv backups/old backups/older
mv current backups/old
mv inprogress current

echo Done!

실행의 샘플 출력 :

anders@anders-desktop:/media/Samsung S2$ ./refresh.sh 
Backup of Musik is updated with changes since last backup
sending incremental file list
./
Artists/
Various Artists/

sent 1787165 bytes  received 3256 bytes  102309.77 bytes/sec
total size is 230838013393  speedup is 128929.46
Backup of tv is updated with changes since last backup
sending incremental file list
./

sent 7558 bytes  received 35 bytes  5062.00 bytes/sec
total size is 64808873338  speedup is 8535344.84
Backup of Calibre Library is updated with changes since last backup
sending incremental file list
./

sent 227427 bytes  received 1883 bytes  91724.00 bytes/sec
total size is 825094709  speedup is 3598.16
Done!

+1 -a편리하지만, 한 파일 시스템에서 다른 파일 시스템 (예 : EXT4에서 NTFS로)으로 동기화 할 때뿐만 아니라 대상 파일 및 디렉토리의 소유자가 아닌 경우에도 옵션이 너무 무딘 경우가 많습니다. 나는 후자의 시나리오가 발생하고 종종 두 개의 디렉토리 트리를 동등하게 만들어야 할 때 다음 조합을 사용합니다. -rvOlt --delete(니모닉 : 반란).
FMc

0

한 번 이상 물린 것을 확인하는 간단한 방법 : 두 컴퓨터의 시스템 시계가 같은 시간으로 설정되어 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.