답변:
이를 위해 사용하는 가장 좋은 도구는 아마도 덤프 일 것입니다. 덤프는 표준 리눅스 도구이며 전체 파일 시스템을 제공합니다. 나는 이런 식으로 할 것입니다 :
/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는 파일 시스템의 변경 사항도 처리하지 않습니다.
mount
)이없는 한.
-bash: /sbin/dump: No such file or directory
sudo apt-get install dump
.gz
파일을 사용하여 어떻게 복원 합니까? 답변에 추가해 주시겠습니까? 정말 도움이 될 것입니다.
Linux에서 Linux로 백업하려는 경우 백업 파일 내부의 무언가에 액세스해야 할 때 불편하기 때문에 덤프를 사용하지 않습니다. 그냥 사용 rsync
하는 SSH를 통해 전체 시스템 백업을 수행 대부분의 경우 잘해야한다 :
rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder
이렇게하면 모든 것이 중요하게 되고 추가 단계없이 백업을 찾아 볼 수 있습니다.
--delete
이 백업 폴더를 여러 번 실행하는 경우 rsync 옵션 을 추가 할 수 있습니다 . 이 경우 소스 경로가로 끝나지 않아야합니다. 그렇지 않으면/*
이 옵션이 소스 디렉토리의 서브 디렉토리에있는 파일에만 적용되지만 소스 디렉토리에 직접있는 파일에는 영향을 미치지 않습니다.
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 또는 다른 가상 서버에서 작동하지 않을 수 있습니다.