Programing

복사 중에 SCP가 심볼릭 링크를 무시하도록 할 수 있습니까?

lottogame 2020. 10. 30. 07:36
반응형

복사 중에 SCP가 심볼릭 링크를 무시하도록 할 수 있습니까?


나는 우리의 서버 중 하나를 다시 설치해야하고, 예방 차원에서, 나는 이동할 /home, /etc, /opt, 및 /Services백업 서버에.

그러나 문제가 있습니다. 심볼릭 링크가 많기 때문에 많은 파일이 여러 번 복사됩니다.

scp심볼릭 링크를 무시 하도록 만들 수 있습니까 (또는 실제로 링크를 디렉토리 나 파일이 아닌 링크로 복사)? 그렇지 않은 경우 다른 방법이 있습니까?


나는 그것이 가능하다는 것을 알았고 잘못된 도구를 사용했습니다. 나는 rsync로 해냈다.

rsync --progress -avhe ssh /usr/local/  XXX.XXX.XXX.XXX:/BackUp/usr/local/

나는 것을 발견 방법은 나를 위해 작동하지 않았다, 그러나 나는이 웹 사이트 (작업을했던 대안을 발견 www.docstore.mik.ua/orelly ).rsync

특히 "O'Reilly : SSH : The Secure Shell. The Definitive Guide"의 섹션 7.5.3 .

7.5.3. 디렉터리의 재귀 복사본

...

scp는 디렉토리를 복사 할 수 있지만 반드시 최선의 방법은 아닙니다. 디렉토리에 하드 링크 또는 소프트 링크가 포함되어 있으면 복제되지 않습니다. 링크는 일반 파일 (링크 대상)로 복사되며, 더 나쁜 경우 순환 디렉토리 링크로 인해 scp1이 무한 반복됩니다. (scp2는 심볼릭 링크를 감지하고 대신 해당 대상을 복사합니다.) 명명 된 파이프와 같은 다른 유형의 특수 파일도 올바르게 복사되지 않습니다. 더 나은 해결책은 특수 파일을 올바르게 처리하는 tar를 사용하여 원격으로 보내는 것입니다. SSH를 통해 압축 해제 할 머신 :

$ tar cf - /usr/local/bin | ssh server.example.com tar xf -

tarover ssh를 발신자와 수신자로 사용 하는 것도 트릭입니다.

cd $DEST_DIR
ssh user@remote-host 'cd $REMOTE_SRC_DIR; tar cf - ./' | tar xvf -

한 가지 해결책은 쉘 파이프를 사용하는 것입니다. 약간 더 짧은 이름을 가진 동일한 * .gz 파일에 연결하기 위해 일부 소프트웨어에서 생성 된 일부 * .gz 파일과 심볼릭 링크가있는 상황이 있습니다. 단순히 scp를 사용하면 심볼릭 링크가 일반 파일로 복사되어 중복됩니다. rsync가 심볼릭 링크를 무시할 수 있다는 것을 알고 있지만 내 gz 파일은 동기화 가능한 옵션으로 압축되지 않으며 이러한 gz 파일을 복사 할 때 동기화 속도가 매우 느립니다. 따라서 다음 스크립트를 사용하여 파일을 복사합니다.

find . -type f -exec scp {} target_host:/directory/name/data \;

-f 옵션은 일반 파일 만 찾고 기호 링크를 무시합니다. 소스 호스트에서이 명령을 제공해야합니다. 이것이 내 상황의 일부 사용자에게 도움이되기를 바랍니다. 내가 놓친 것이 있으면 알려주세요.

참고 URL : https://stackoverflow.com/questions/11030394/is-it-possible-to-make-scp-ignore-symbolic-links-during-copy

반응형