Вопрос

Я создаю сценарий Bash для резервного копирования моих файлов с rsync.

Все резервные копии поступают из одного каталога. Я только хочу, чтобы новые или модифицированные файлы были созданы резервными копиями.

В настоящее время я говорю rsync сделать резервную копию dir, и проверять файлы по сравнению с последней резервной копией.

То, как я делаю это, это

THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current

Я уверен, что у меня есть синтаксис правильно для этого. Каждое резервное копирование проверит по отношению к «текущей» папке и загружает только в качестве необходимой. Затем он будет удалять текущую папку и повторно создать SymLink на новейшую резервную копию, которая только что сделала.

Я получаю ошибку при запуске скрипта:

rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"

=> /Backup/current/dgs1200series_manual_310.pdf не удалось: операция не поддерживается (45)

Хост-ОС запущает файловую систему HFS, которая поддерживает жесткую связь. Я пытаюсь выяснить, если что-то еще не поддерживает это, или если у меня проблема в моем коде.

Спасибо за любую помощь

Редактировать:

Я могу создать жесткую ссылку на моей местной машине. Я также могу создать жесткую ссылку на удаленном сервере (при регистрации в локальном уровне) Я не могу создавать жесткую ссылку на удаленном сервере при установке через AFP. Даже если оба файла существуют на сервере.

Я предполагаю, что это ограничение AFP.

Это было полезно?

Решение

Две вещи с страницы человека выделяются, которые стоит проверять:

Если файл не связывают, дважды проверьте свои атрибуты. Также убедитесь, что некоторые атрибуты получают вынужденные за пределами управления RSYNC, такое вариант монтажа, который высыхает root одному пользователю, или устанавливает съемный диск с общей властью (например, os X, «игнорируя владение на этом томе»).

а также

Обратите внимание, что rsync версии до 2,6,1 имели ошибку, которая может предотвратить правильную работу - Dest от работы не суперпользователю, когда -O был указан (или подразумевается на -а). Вы можете обойти эту ошибку, избегая опции -O при отправке на старый rsync.

Включите ли у вас параметр «игнорировать владение»? Какая версия rsync у вас есть?

Кроме того, вы пробовали вручную создавать подобную жесткую ближнюю ln В командной строке?

Другие советы

На всякий случай, если ваша командная строка только пример: обязательно укажете каталог link-dest с абсолютно Шида! Это то, что забрало меня довольно некоторое время, чтобы выяснить ...

Я не знаю, это та же проблема, но я знаю, что rsync не может синхронизировать файл, когда пункт назначения представляет собой раздел FAT32, а имя файла имеет в нем «:» (CoLon). [Исходная файловая система EXT3, а место назначения - FAT32

Попробуйте переконфигурировать date Команда так, чтобы она не использовала толстой кишки и посмотрим, имеет ли это значение.

например

THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top