사용자가 떠날 때 나중에 특정 파일이 여전히 필요할 수 있다는 것을 발견할 경우를 대비하여 사용자 홈 폴더의 일회성 보관 복사본을 보관 서버에 만들어야 합니다(최종 삭제 대기 중). 그래서) 떠나기 전에 필요할 수 있는 모든 것을 직접 백업해 두십시오.
우리는 이것을 사용해 왔지만 scp
이제 이전 사용자가 폴더 중 하나에 특이한 심볼릭 링크 구조를 생성하는 일부 소프트웨어를 설치하도록 실수로 속여서 scp를 조회한 다음 차단되기 전에 복사를 시도하는 것으로 보입니다. , 의외로.
불행히도 scp는 항상 심볼릭 링크를 따르는 것으로 나타났으며 이를 방지할 수 있는 옵션은 없는 것 같습니다.
이 문제를 피하기 위해 사용자 폴더를 백업하는 다른 방법을 찾고 있습니다(이상적으로는 꼭 필요한 것보다 더 복잡하지 않습니다).
tar
가능할 수도 있지만, 아카이브 서버에 복사하기 전에 로컬에서 타르볼을 생성하면 많은 저장 공간을 사용할 수 있고 앞으로 파일 서버가 가득 차면 약간의 어려움을 겪을 수 있다는 점이 조금 걱정됩니다.
또 다른 가능성은 rsync 를 사용하는 것일 수 있지만 rsync
일회성 파일 전송에는 과잉일 수 있으며 이전 경험을 통해 rsync 자체 옵션을 조정하는 것이 때때로 그 자체로 지루할 수 있다는 것을 알고 있습니다.
이에 대한 안정적이고 간단한 scp 대안을 제안할 수 있는 사람이 있습니까?
답변1
임시 파일이 마음에 들지 않으면 tar
간단합니다. 임시 파일을 사용하지 마세요. 파이프를 사용하십시오.
cd /home ; tar cf - user | gzip | ssh archivehost -l archiveuser 'cat > user.archived.tar.gz'
대체 xz
또는 당신이 좋아하는 무엇이든 gzip
. 또는 마스터 서버의 CPU 주기를 저장하는 것이 네트워크 대역폭(따라서 보관 서버의 CPU)을 절약하는 것보다 더 중요한 경우 연결의 반대쪽으로 이동합니다.
cd /home ; tar cf - user | ssh archivehost -l archiveuser 'gzip > user.archived.tar.gz'
gpg
거기에 게시할 수도 있습니다 . 저장할 때는 공개 키 암호화를 사용하고, 무언가를 복원해야 할 때는 개인 키를 사용하여 이러한 아카이브 전용 키 쌍을 확보하세요.
요청 시 더 자세한 내용을 확인하실 수 있습니다:
나는 user
당신이 보관하고 있는 홈 디렉토리의 사용자가 될 것입니다 /home/user
. archivehost
아카이브를 저장하려는 서버와 archiveuser
아카이브 서버에서 아카이브를 소유한 계정입니다.
tar cf - user
"tar 아카이브를 생성하여 user
표준 출력에 쓴다"는 의미입니다. " 만들기 -c
", -f -
"stdin/stdout을 파일로 사용"입니다. 기본 작업이므로 작동할 수도 있지만 처음에는 기본 작업이 tar c user
테이프 장치 를 읽거나 쓰는 것입니다. 명시적 표현을 사용하는 것은 단지 내 나이가 들었다는 신호일 수도 있습니다.-f -
tar
-f -
tar z
플래그가 있으면 좋겠지만 이를 .tar 파일의 다른 쪽으로 이동하는 방법을 보여줄 수 없습니다 ssh
. (또한 명시적 파이프를 연결 gzip
하고 tar
사용하는 것은 "늙은 사람들"의 일 중 하나입니다. tar
이에 대한 옵션이 항상 있는 것은 아닙니다.) 또한 해당 옵션을 기억하지 않고도 bzip2
, lzop
, xz -3v
또는 기타 압축기를 교체할 수 있습니다 tar
.
나는 --checkpoint
이전에 들어본 적이 없으므로 직접 테스트에 의존해야 합니다.
답변2
Rsync는 합리적인 선택입니다. 일회성 전송에 rsync를 사용하는 데에는 아무런 문제가 없습니다.
Tar도 합리적인 선택입니다. 아카이브를 로컬에 저장할 필요는 없습니다.SSH로 직접 파이프.
또 다른 가능성은 서버 디렉토리를 다음 위치에 마운트하는 것입니다.SSHFS. 그러나 SSHFS는 모든 메타데이터(예: 권한)를 보존하지 않는다는 점에 유의하세요. (Tar 및 rsync도 모든 메타데이터를 보존할 수는 없지만 더 나은 성능을 발휘할 수 있습니다. --acls --xattrs
GNU tar로 전달하고 --acls --xattrs
rsync로 전달합니다.)