더 많은 보안을 위해 rsnapshot이 사용하는 백업 디렉토리를 두 번째 위치로 미러링하고 싶습니다. 솔루션은 ssh와 함께 rsync를 사용하는 것이 이상적입니다. (rsnapshot에 의해 생성 된) 하드 링크와 심볼릭 링크를 보존하고, 파일을 삭제하고, 재귀 적으로 복사하고, 대상의 파일을 삭제하는 등 rsync에 제공해야 할 인수는 무엇입니까? 파일은 모두 ext3 파일 시스템에 있습니다. 또한 소스가 손상되면 결함이 미러에 동기화 될 가능성을 피하기 위해 무엇을 할 수 있습니까?미러 rsnapshot 백업 디렉토리
답변
원하는 작업을 수행하는 옵션은 대부분 rsync
매뉴얼 페이지에 설명되어 있습니다. 특히 -H
옵션 (--hard-links
)은 하드 링크 감지를 활성화하고 --delete
은 rsync가 소스에없는 대상에서 삭제하도록합니다. 그래서 어쩌면 같은 :
rsync -aH --delete /path/to/src/ /path/to/destination
또한 나는 소스가 손상되었을 경우, 결함이 거울에 rsynced 있다는 가능성을 방지하기 위해 무엇을 할 수 있는가?
글쎄, 그건 까다 롭습니다. 부패를 어떻게 감지합니까? 유일한 실제 해결책은 백업 백업을 비틀어서 (즉, 기본 백업 대상으로 실제 백업을 수행 한 후 다음 백업 실행 직전에 보조 대상으로 rsync하는 것입니다). 이렇게하면 다음 번 백업을 실행해야 문제가 다시 감지됩니다.
다른 해결책은 rsnapshot
을 여러 대상에 백업하는 것이므로 두 원본 위치에서 원본 원본의 백업을 실제로 생성 할 수 있습니다. 이 방법은 하나가 손상되면 두 번째는 영향을받지 않습니다.
모든 옵션은 맨 페이지에 있습니다. 나는 단지 내가 무엇을 잊지 않고 있는지 확인하고 싶었다. 그러나 -a 옵션은 꽤 컴팩트 한 것 같습니다. 2 개의 목적지가 동시에 이용 가능하지 않기 때문에 2 개의 위치에 대한 rsnapshot은 가능하지 않습니다. 미러에 최신 스냅 샷을 rsync하는 것이 항상 가능하지 않습니까? 이렇게하면이 위치의 이전 스냅 샷은 기본 위치에서 손상된 경우에도 보존됩니다.물론 스냅 샷을 추가 할 때 rsnapshot이 수행하는 이름 바꾸기를 반복해야합니다. – highsciguy
손상된 데이터의 복사본을 방지하려면 매주 백업을 유지하고 모든 백업을 손실하기 전에 원본에서 손상이 발생했는지 확인하십시오. 가장 좋은 방법은 -c를 사용하는 것입니다. 그러면 소스와 대상의 체크 합계를 비교하여 파일을 복사할지 여부를 결정합니다. 유일한 단점은 백업을 느린 프로세스로 만드는 전체 파일을 읽어야한다는 것입니다.
#!/bin/sh
# Create a Backup of Today
# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)
# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago
mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$username
rsync -aHvz /storage/`date --date=yesterday +\%Y-\%m-\%d`-`date --date=yesterday +\%A`/$host/$user/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
rsync -acHvz -e ssh --delete --exclude='logs' [email protected]:/home/tim/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
- 1. 레일 백업, rsnapshot, 이중성, 크래시 플랜?
- 2. Makefile 미러 빌드 디렉토리
- 3. 아파치 htaccess가있는 미러 디렉토리
- 4. Sql 백업 또는 미러 데이터베이스 방법은 무엇입니까?
- 5. InstallShield 롤백 백업 디렉토리?
- 6. 백업 git repo : 아카이브 미러 클론 ... tar -Pzcf는 어떨까요?
- 7. 배시의 MySQL 백업 스크립트
- 8. 수은 미러 설정
- 9. 백업 디렉토리 + bash를 사용하여 이름 바꾸기
- 10. RestKit 및 iCloud 디렉토리 백업 정책
- 11. 배치 파일을 사용하여 디렉토리 업데이트 및 백업
- 12. 미러 구현
- 13. 미러 된 데이터베이스의 스키마를 변경하려면 어떻게합니까?
- 14. jquery 플러그인 미러
- 15. PHP 미러 웹 페이지
- 16. httrack가있는 단일 페이지 미러
- 17. HTML 섹션을 미러
- 18. 미러 레이아웃/역순으로 배열
- 19. Maven 프록시 대 미러
- 20. maven에서 미러 id를 고유해야합니까?
- 21. UIImage 뒤집기 및 미러
- 22. 유니 코드 미러 문자?
- 23. 복제/미러 SVN repos
- 24. plesk가있는 미러 서버의 rsync
- 25. Rabbitmq 미러 큐 성능
- 26. 꾸준히 성장하는 데비안 미러
- 27. python tarfile로 postgresql 데이터 디렉토리 백업. 예상/무시할 오류는 무엇입니까
- 28. CVS 백업 디렉토리 (서버없이)에서 프로젝트를 복원하는 방법
- 29. Perl을 사용하여 디렉토리 내의 마지막 백업 파일 찾기
- 30. perforce 백업 질문
내가 초기 동기화를위한 것입니다 스크립트라는 rsnapshot도 복사가 있음을 발견 : [rsnapshot도 복사] (http://cpansearch.perl.org/src/DCANTRELL/App-Rsnapshot-1.999_00002/utils/rsnapshot-copy). 이 파일의 헤더에는 다음과 같이 쓰여 있습니다 :'rsnapshot-copy는 현재 스냅 샷의 점진적 미러링을 위해 설계되지 않았습니다. (증분 모드가 추후에 추가 될 수 있습니다.)'어떤 아이디어가 이것을 지원합니까? – highsciguy
또 다른 아이디어는 rsnapshot 로그 파일을 사용하여 (아마도 먼저 내부 로깅 루틴을 수정하여) 백업의 미러 사본에 대해서도 기본 백업에서 rsync가 수행 한 동일한 mv 및 rsync 작업을 정확하게 실행하는 셸 스크립트를 만드는 것입니다 . – highsciguy
조금 명확히하기 위해 정상적인 rsync에서 문제가 보이는 곳 (아래 답변 참조). rsnapshot 경로의 파일이 손상된 경우 (예 : 디스크 오류로 인해) 하드 링크를 사용하기 때문에 나중에 변경되지 않는 한 모든 최신 스냅 샷에서 손상됩니다. 이것은 파일이 손실되었음을 의미합니다. 백업의 미러 사본에 정기적 인 자동 rsync를 수행하면 결국 파일을 손상되지 않은 버전으로 미러에 덮어 씁니다. 문제는 이것을 피하는 해결책이 있는지입니다. – highsciguy