VPS를 백업하는 가장 쉬운 방법

VPS를 백업하는 가장 쉬운 방법

내 상황:

2개의 웹사이트가 있는 VPS(ubuntu)가 있습니다. 저는 VPS를 처음 접했기 때문에(최근 공유 호스팅에서 옮겼습니다) 제가 원하는 방식으로 모든 웹을 실행하도록 VPS를 구성하는 방법을 배우는 데 거의 2주를 보냈습니다. VPS를 구성하면서 실수를 많이 해서 재설치/구성/잘못/재설치/구성 등을 하면서 익히고 있었습니다.

이제 모든 것이 정상입니다. VPS가 실행되고 있으며 필요한 모든 서비스도 작동하고 많은 교훈을 얻었습니다. 모두 괜찮습니다.

질문:

  1. 전체 VPS 백업을 만드는 가장 쉬운 방법은 무엇입니까?

  2. WinSCP를 사용하여 간단히 VPS 백업을 만들 수 있습니까? 루트(/) 폴더에 연결하고 거기에서 모든 VPS 파일을 다운로드한다는 뜻인가요?

  3. 그렇다면 나중에 전체 VPS를 처음부터 다시 설치해야 할 경우 어떻게 복원할 수 있습니까?

내 상황에 대한 추가 정보:

  • 데이터베이스는 직접 백업됩니다(phpmyadmin을 통해 가능).
  • 내 VPS 관리 패널(SolusVM)에 백업 도구가 없습니다.
  • 저는 GUI cpanel/directadmin/virtualmin 등을 사용하지 않고 콘솔만 사용합니다.

답변1

내가 선호하는 원격 가상 서버 백업 방법은 단순히 파일을 복사하는 것입니다. 어쨌든 커널은 호스트에 있습니다. 물론 복원 시에는 주의가 필요하며, 전체 복원은 (디스크 이미지와 달리) 불가능할 수도 있습니다. 반면에 테스트를 위해 로컬 서버와 같은 다른 서버로 마이그레이션하는 것이 더 쉽습니다.

이제 원격 연결을 통해 많은 작은 파일을 다운로드하는 것은 많은 오버헤드로 인해 실제로 상당히 느립니다. 이는 서버에서 물리적으로 멀리 떨어져 있는 경우 더욱 중요합니다. 일반적으로 저는 모든 것을 단일 tar아카이브로 묶은 다음 더 작은 크기로 압축하는 것을 선호합니다.

이에 대한 명령은 다음과 같습니다 tar cpzf filename.tar.gz /(여기서 /루트의 모든 항목을 재귀적으로 백업한다는 의미). 당신은 원할 수도 있습니다기존 백업 파일 제외- 많은 백업을 보관할 계획이라면 모두 하나의 디렉터리에 넣고 해당 디렉터리를 제외하는 것이 더 쉬울 것입니다. 그런 다음 원하는 방법으로 해당 파일을 다운로드하기만 하면 됩니다.

tar xpf filename.tar복원은 루트 디렉터리에 있는 동안 명령을 사용하여 수행됩니다 . 당신은 또한 수대상 디렉토리를 지정와 함께 -C.

답변2

나는 대답했다동일한 질문serverfault에서 bob의 답변과 동일한 내용을 다루고 있지만 약간 다른 도구와 약간 다른 초점을 사용하고 있습니다. 패키지 목록을 생성하고 rsync를 사용하는 것이 좋습니다(권한을 유지할 수 있고 파일 전송에 매우 효율적이기 때문입니다).

다른 모든 방법이 실패하면 구식 방법이 있습니다. dpkg --get-selections를 사용하여 설치된 패키지 목록을 덤프하고 dpkg --set-selections를 사용하여 설치합니다. 필요한 경우 소스 시스템과 동일한 사용자를 생성합니다. cat /etc/passwd가 해당 사용자를 나열해야 하며 diff를 사용하여 두 목록이 동일한지 확인할 수 있습니다.

그런 다음 rsync를 사용하여 설정을 위한 /etc/ 폴더, 사용자를 위한 다양한 /home/ 폴더(여기에서 권한 확인) 및 /var/www/와 같은 기타 폴더를 복제합니다. 테스트하고 모든 것이 있는지 확인하면 작업이 완료됩니다. 새로운 서버를 설정하는 것보다 시간이 덜 걸립니다.

때로는 오래되고 간단한 방법이 가장 좋습니다. 이 문제를 수동으로 해결하려면 현재 서버에서 자동으로 복제하는 스크립트를 작성하세요.

답변3

간편한 증분 백업을 위해 rsync를 사용하세요. 명령줄이나 스크립트를 통해 보다 정교한 시나리오를 통해 이를 수행할 수 있습니다.

다음과 같이 시작할 수 있는 예:

$ options="--stats -aHh --delete"; echo == RUNNING with options: $options; time rsync -e ssh $options root@your-server-ip-or-hostname:/ /destination/my-server-backup --exclude /proc --exclude /dev --exclude /sys --exclude /run/udev

제가 작성한 스크립트에서 더 많은 예제를 찾을 수 있습니다. 원래는 Windows용이지만 Linux에도 직접 적용할 수 있습니다.https://github.com/paravz/windows-rsync-backup

관련 정보