/export/home/remoteuser/stopforce.sh
Remotehost7에서 localhost 디렉토리로 파일을 가져오고 싶습니다 /tmp
.
파일이 원격 호스트에 존재하는지 확인하기 위해 다음 명령을 실행합니다.
[localuser@localhost ~]$ ssh remoteuser@remotehost7 ' ls -ltr /export/home/remoteuser/stopforce.sh'
This system is for the use by authorized users only. All data contained
on all systems is owned by the company and may be monitored, intercepted,
recorded, read, copied, or captured in any manner and disclosed in any
manner, by authorized company personnel. Users (authorized or unauthorized)
have no explicit or implicit expectation of privacy. Unauthorized or improper
use of this system may result in administrative, disciplinary action, civil
and criminal penalties. Use of this system by any user, authorized or
unauthorized, constitutes express consent to this monitoring, interception,
recording, reading, copying, or capturing and disclosure.
IF YOU DO NOT CONSENT, LOG OFF NOW.
##################################################################
# *** This Server is using Centrify *** #
# *** Remember to use your Active Directory account *** #
# *** password when logging in *** #
##################################################################
lrwxrwxrwx 1 remoteuser oinstall 65 Aug 30 2015 /export/home/remoteuser/stopforce.sh -> /u/marsh/external_products/apache-james-3.0/bin/stopforce.sh
위에서부터 파일이 소프트 링크임에도 불구하고 원격으로 존재한다는 것을 확인할 수 있습니다.
지금 실제 파일을 가져오려고 하는데 rsync
오류가 발생합니다.
[localuser@localhost ~]$ /bin/rsync --delay-updates -F --compress --copy-links --archive remoteuser@remotehost7:/export/home/remoteuser/stopforce.sh /tmp/
This system is for the use by authorized users only. All data contained
on all systems is owned by the company and may be monitored, intercepted,
recorded, read, copied, or captured in any manner and disclosed in any
manner, by authorized company personnel. Users (authorized or unauthorized)
have no explicit or implicit expectation of privacy. Unauthorized or improper
use of this system may result in administrative, disciplinary action, civil
and criminal penalties. Use of this system by any user, authorized or
unauthorized, constitutes express consent to this monitoring, interception,
recording, reading, copying, or capturing and disclosure.
IF YOU DO NOT CONSENT, LOG OFF NOW.
##################################################################
# *** This Server is using Centrify *** #
# *** Remember to use your Active Directory account *** #
# *** password when logging in *** #
##################################################################
rsync: [sender] link_stat "/export/home/remoteuser/stopforce.sh" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1651) [Receiver=3.1.2]
rsync: [Receiver] write error: Broken pipe (32)
localhost는 리눅스이고, remotehost7은 솔라리스입니다.
이 오류가 발생하는 이유와 문제에 대한 해결책을 제안해 주시겠습니까?
답변1
이 옵션을 사용하고 있습니다 --copy-links
. 이것은 텍스트로 기록됩니다.
기호 링크가 발견되면 기호 링크가 아니라 가리키는 항목(참조 개체)이 복사됩니다. [...]
심볼릭 링크가 기존 파일을 가리키지 않는 경우 이 --copy-links
옵션은 rsync
파일을 찾을 수 없다는 메시지를 표시합니다. 의 --copy-links
경우아니요사용하면 심볼릭 링크 자체가 복사됩니다.
이 문제에 대한 해결책은 달성하려는 목표에 따라 다릅니다. 기호 링크에서 참조하는 파일이 존재하는지 확인하거나 이 --copy-links
옵션을 사용하지 마십시오.
개인적으로 --archive
를 사용하는 경우 파일 계층 구조나 파일을 최대한 현실적으로 복제하려고 시도할 것입니다. 이 경우 --copy-links
심볼릭 링크를 보존하기 위해 그렇게 하지 않을 것입니다.