Перейти к содержимому

Использование rsync с link-dest из HFS в NTFS

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 

Может ли кто-нибудь помочь мне, пожалуйста? Я искал около двух часов и до сих пор не знаю.

Спасибо.

2 540 просмотров
TomShreds спросил 16 лет назад
T 994

2 ответа

7

-aподразумевает, что права, которые могут неправильно переводиться в NTFS, должны быть скопированы и сопоставлены. Я использую только -rltD. -aподразумевает -rlptgoD.

Примечание: я использую rsync из linux с EXT4, и я не знаю, как HFS сравнивается с NTFS.

Вот полный скрипт, который я использую для резервного копирования некоторых моих папок на съемный USB-диск. Это прекрасно работает в Ubuntu 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 (мнемоника: Revolt).

FMc · 15 лет назад · 0
Anders ответил 16 лет назад
A 71
0

Простая вещь, чтобы проверить, что укусила меня не раз: убедитесь, что системные часы на обоих компьютерах установлены на одно и то же время.

Janne Pikkarainen ответил 16 лет назад
J 6 219