SSH를 통해 라이브 시스템의 이미지를 만드는 방법은 무엇입니까?

SSH를 통해 라이브 시스템의 이미지를 만드는 방법은 무엇입니까?

현재 접속할 수 없는 FreeBSD 서버에 관한 질문이 있습니다. 하지만 우리는 몇 가지 새로운 것을 시도하고 싶기 때문에 먼저 이 시스템의 백업을 만들고 싶습니다.

문제는 현재 라이브 시스템인 전체 서버 디스크에서 SSH를 통해 디스크 이미지를 생성할 가능성이 있습니까?입니다.

있는 경우: 이를 수행하는 방법을 알고 싶습니다.

답변1

Linux에서는 실제로 불가능합니다. Windows에 있는 이유는 볼륨 섀도 복사본입니다.

시스템에서 LVM을 사용하는 경우 스냅샷을 찍은 다음 rsync이를 통해 파일의 원자 복사본을 만들 수 있지만 파티션/부트 로더를 복원해야 합니다.

수행해야 하는 경우 가장 쉬운 방법은 dd복사하는 것입니다.

dd if=/dev/sda | ssh user@remotehost 'dd of=/path/to/output'

그런 다음 파일이 괜찮은지 100% 확인하기 위해 실행 중인 파일부터 이미지를 마운트한 rsync드라이브까지 이미지를 마운트했습니다 . dd(나는 rsync아무런 영향 없이 차이점을 수백 번 건너뛰었지만 이는 많이 읽은 기반 서버 액세스에만 해당됩니다)

답변2

사용덤프(8)(파일)시스템의 스냅샷을 생성합니다.

dump -0aLf /path/to/dumpfile /

그러면 루트 파일 시스템의 라이브 덤프가 생성되어 /path/to/dumpfile에 저장됩니다. 해당 덤프는 SSH를 통해 다른 컴퓨터로 전송할 수 있습니다. 아니면 이것을 사용하면 한 번에 할 수 있습니다.

dump -0aLf - | ssh my.backup.server dd of=/path/on/my/server/dumpfile

나중에 다음을 통해 복원할 수 있습니다.

cd /where/I/should/restore
restore -xf /path/to/dumpfile

데이터베이스와 같은 애플리케이션은 별도로 처리해야 합니다. 예를 들어 MySQL 데이터베이스를 사용하면 다른 MySQL 서버에서 가져올 수 있는 SQL 명령의 텍스트 파일을 생성하는 mysqldump가 있습니다. 다른 데이터베이스에도 비슷한 방법이 있습니다.

답변3

대상 머신에 복사할 root-fs만 있는 경우 다음과 같이 사용하세요.

rsync --numeric-ids --delete -vax source_machine:/ /target_dir

두 번 이상. 두 번째 실행에서는 이미 첫 번째 실행에서 캐시된 항목을 재사용하고 매우 빠르게 진행되며 몇 가지 제한 사항이 있는 거의 실제 스냅샷을 제공합니다. 'rsync'를 임의의 횟수만큼 반복하면 '원자성'을 볼 수 있습니다. 반복 사이에 실제로 변경된(따라서 복사/삭제해야 하는) 파일(로그 파일 등)은 대부분 거의 없습니다.

관련 정보