전체 Centos 서버를 백업하는 방법?


24

몇 주 전에 전용 서버에서 VPS로 전환했습니다. 이제 모든 것이 VPS에서 제대로 작동하므로 전용 서버를 종료하고 호스팅 회사의 계정을 닫고 싶습니다.

안심하고 더 안전하게하기 위해 서버를 중지하기 전에 전체 백업을하고 싶습니다.

가장 좋은 방법은 백업에 무언가가 필요한 경우 찾아 볼 수있는 백업입니다.

명령 줄에서 가장 좋은 솔루션은 무엇입니까?

업데이트 :

매체 : 네트워크

답변:


28

이를 위해 사용하는 가장 좋은 도구는 아마도 덤프 일 것입니다. 덤프는 표준 리눅스 도구이며 전체 파일 시스템을 제공합니다. 나는 이런 식으로 할 것입니다 :

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

이것은 /의 파일 시스템 덤프를 수행하고 (다른 마운트를 덤프 할 필요가 없습니다!) gzip으로 압축하여 원격 서버 (backupserver.example.com)에 ssh를 넣고 / backup /에 저장합니다 . 나중에 백업을 찾아 보려면 복원을 사용하십시오.

restore -i

덤프에 액세스 할 수없는 경우 또 다른 옵션은 tar를 사용하고 다음과 같은 작업을 수행하는 것입니다

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

그러나 tar는 파일 시스템의 변경 사항도 처리하지 않습니다.


이 덤프 명령은 설치된 프로그램도 관리합니까? nginx 등.
Thale

덤프는 파일 시스템의 모든 복사본이 포함 된 리터럴 사본입니다. 당신이 필요로하는 하나 이상 (실행하여 확인 mount)이없는 한.
Bill Weiss

나는 이것을 얻는다-bash: /sbin/dump: No such file or directory
Lucas Bustamante

@LucasB 덤프를 설치해야 할 수도 있습니다. Ubuntu에서는 다음과 같은 작업을 수행합니다.sudo apt-get install dump
pehrs

@ pehrs .gz파일을 사용하여 어떻게 복원 합니까? 답변에 추가해 주시겠습니까? 정말 도움이 될 것입니다.
빨간 병

10

Linux에서 Linux로 백업하려는 경우 백업 파일 내부의 무언가에 액세스해야 할 때 불편하기 때문에 덤프를 사용하지 않습니다. 그냥 사용 rsync하는 SSH를 통해 전체 시스템 백업을 수행 대부분의 경우 잘해야한다 :

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

이렇게하면 모든 것이 중요하게 되고 추가 단계없이 백업을 찾아 볼 수 있습니다.

--delete이 백업 폴더를 여러 번 실행하는 경우 rsync 옵션 을 추가 할 수 있습니다 . 이 경우 소스 경로가로 끝나지 않아야합니다. 그렇지 않으면 /*이 옵션이 소스 디렉토리의 서브 디렉토리에있는 파일에만 적용되지만 소스 디렉토리에 직접있는 파일에는 영향을 미치지 않습니다.


3

백업을 저장할 매체는 무엇입니까? 네트워크를 통해 백업하는 경우 sshfs / nfs는 소스 서버에 대상을 마운트하고 다음과 같이 실행합니다.

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

테스트되지 않았으므로 일반적인 생각은 그보다 더 많거나 적은 것을 제외하고 싶을 것입니다.


3

pehrs에서 위에서 설명한 명령을 사용하지만 ftp 사용을 위해 수정되었습니다. 크론 탭 샘플 :

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x에는 ftp 자격 증명 및 업로드 규칙이 포함되어 있습니다.

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

참고 1 : 대상에 도달 할 수없는 경우 다시 연결하려고하면 lftp가 높은 CPU 사용량을 유발할 수 있습니다. 이러한 경우 많은 호스팅 VPS가 재설정 될 수 있으므로 호스트 소유자가 서버를 종료하지 못하게하는 lftp 프로세스를 종료하기 위해 CPU로드를 모니터링하는 것이 좋습니다. 프로세스 lftp (및 보관 용 계정)의로드 평균> 1.33의 예입니다. 불행히도, 누군가 덕분에 초기 코드의 소스를 기억하지 못합니다.

크론 탭 */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***s@gmail.com
fi

참고 2 : 덤프 유틸리티는 OpenVZ VPS 또는 다른 가상 서버에서 작동하지 않을 수 있습니다.


2

Bacula에 대해 들어 보셨습니까 ?

Bacula는 다양한 종류의 컴퓨터 네트워크에서 컴퓨터 데이터의 백업, 복구 및 검증을 관리 할 수있는 오픈 소스, 엔터프라이즈 급 컴퓨터 프로그램 세트입니다. Bacula는 비교적 사용하기 쉽고 효율적이며 손실되거나 손상된 파일을 쉽게 찾고 복구 할 수있는 많은 고급 스토리지 관리 기능을 제공합니다. 기술적 인 측면에서 볼 때, 이는 오픈 소스, 엔터프라이즈 급 네트워크 기반 백업 프로그램입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.