문제

네트워크를 통해 해체 될 Linux 서버 전체를 복사하고 싶습니다.

나는했다 du / 그리고 60GB의 아래 /가 있다고 들었습니다.

그럼 나는했다 rsync -r / root@newserver:/old-server 그리고 할 때 du 에서 old-server dir 22GB를 받았습니다.

그렇다면 왜 그 차이가 있습니까? 그게 뭔가가 있습니까? du 볼 수 있지만 rsync 복사 할 수 없습니까?

도움이 되었습니까?

해결책

파일 핸들이 열려 있기 때문에 아직 처리 할 수없는 파일을 삭제했을 것입니다. (DU가 이전에 사용법을 보게 될 것이라는 것을 알지 못했지만 일부 테스트는 그 사실을 보여주었습니다.) LSOF. 내 경험에서 이것의 두 가지 주요 원인은 httpd를 걷어 차지 않고 낙하 테이블을 사용하지 않고 파일 시스템에서 mySQL 테이블을 삭제하지 않고 Apache 로그를 삭제하는 것입니다.

다른 팁

손에 약간의 시간이 있다면 차이점이 무엇인지 정확히 알아낼 수 있습니다. cd /; find . > /tmp/old 이전 서버에서 cd /old-server; find . > /tmp/new 그러면 새 서버에서 vimdiff 변경된 내용을 확인하기 위해 두 파일.

복사를 피해야 할 특별한 파일 시스템이 있습니다. rsync, 예를 들어, /proc, /sys, /tmp. 그들은 당신이 보는 차이를 설명 할 수 있지만 어쨌든 너무 큰 것 같습니다.

읽을 수없는 디렉토리가있을 수 있습니다 (예 : r 또는 x 그들에게). 프로세스가 실행되는지 기억이 나지 않습니다 root 권한은 먼저 권한을 고치지 않고도 그러한 디렉토리에 액세스 할 수 있습니다.

파일 목록과 MD5 합계를 더 잘 생성하고 비교합니다.

몇 가지 제안 :

  • 드문 파일 (사용 -S)
  • 하드 링크 (사용 -H)
  • /proc 그리고 /sys (사용 -exclude 또는 더 나은, -x 및 각 파일 시스템을 별도로 백업).

나는 사용하는 경향이있다 rsync -axHSW --numeric-ids 비슷한 상황에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top