Próbuję zsynchronizować pliki między serwerami, ale otrzymuję ten błąd
rsync: nie udało się ustawić czasu na „/ dept / intranet / dept / atest /.”: Operacja niedozwolona (1)
Czy ktoś może mi pomóc, dlaczego tak jest?
Myślę, że to problem z uprawnieniami.
Oto moje polecenie:
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
Odpowiedzi:
Właśnie dlatego jesteśmy na tej samej stronie:
Następnie dwie rzeczy:
To tylko kwestia systemu plików
Jeśli folderem docelowym jest podłączenie NFS lub jakiś system plików, który nie obsługuje dobrze czasów modyfikacji, to może się zepsuć.
Spróbuj dodać parametr
-O
(for--omit-dir-times
) do swojego polecenia.Czasy modyfikacji zostaną zachowane, ale pominięte dla katalogów:
To jest moje najlepsze przypuszczenie, ponieważ synchronizacja plików wydaje się działać, a błąd występuje podczas synchronizacji czasu mod. W każdym razie, czy naprawdę musisz zachować czasy modyfikacji ? Na
-c
pliki opcję Przejdź na podstawie sum kontrolnych (czasami tak mod nie ma znaczenia).Lub jest to problem z pozwoleniem
ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test"
)ssh -vv [email protected] "touch /dept/intranet/dept/atest/f1/test"
)Żadne z powyższych
Uruchom polecenie z
-v
opcją, dla pełnych.źródło
--omit-dir-times
wskazówkę. Naprawdę pomaga.Dodaj -O ( --omit-dir-times ) do linii poleceń, aby uniknąć próby ustawienia czasów modyfikacji w katalogach.
Przeczytaj także: /programming/667992/rsync-error-failed-to-set-times-on-foo-txt-operation-not-permitted
źródło
W moim przypadku rozwiązałem problem, udzielając uprawnień w katalogu nadrzędnym, w którym odbyła się synchronizacja.
W rzeczywistości właściciel katalogu nadrzędnego był inny niż użytkownik wykonujący synchronizację.
źródło