Я пытаюсь rsync файлы с одного сервера на другой, но получаю эту ошибку
rsync: не удалось установить время для «/ dept / intranet / dept / atest /.»: операция не разрешена (1)
Может кто-нибудь помочь мне, почему так?
Я думаю, это проблема с разрешениями.
Это моя команда:
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop
${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}
LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x 11 root root 4096 Mar 19 2009 f1
REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld a1 4096 Mar 19 2009 f1
Ответы:
Просто так мы на одной странице:
Тогда две вещи:
Это просто файловая система
Если папка назначения - это NFS-монтирование или какая-то файловая система, которая плохо обрабатывает мод-времена, то она ломается.
Попробуйте добавить параметр
-O
(for--omit-dir-times
) в вашу команду.Время модификации будет сохранено, но не указано для каталогов:
Это мое лучшее предположение, так как синхронизация файлов, кажется, работает, и ваша ошибка происходит во время синхронизации модов. В любом случае, вам действительно нужно сохранить время модификации ? В
-c
варианте Пропустить файлы на основе контрольных сумм (так моды времени не имеет значения).Или это, собственно, проблема с разрешением
ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test"
)ssh -vv thegooduser@test.desktop "touch /dept/intranet/dept/atest/f1/test"
)Ни один из вышеперечисленных
Запустите вашу команду с
-v
опцией, для многословия.источник
--omit-dir-times
совет. Действительно помогает.Добавьте -O ( --omit-dir-times ) в вашу командную строку, чтобы избежать попыток установить время изменения каталогов.
Также прочитайте это: /programming/667992/rsync-error-failed-to-set-times-on-foo-txt-operation-not-permitted
источник
В моем случае я решил проблему, предоставив разрешения для родительского каталога, в котором была выполнена синхронизация.
На самом деле владелец родительского каталога был другим, чем пользователь, выполняющий синхронизацию.
источник