내 모든 서버의 백업을 다른 서버에 어떻게 저장할 수 있나요?

내 모든 서버의 백업을 다른 서버에 어떻게 저장할 수 있나요?

백업에 사용할 새 서버가 있습니다. 이 서버에는 gziped다른 모든 13개 서버의 DB를 저장하고 싶습니다 . 각 서버에서 매 시간마다 백업을 만들어 백업 서버에 저장하는 가장 좋은 방법은 무엇입니까?

서버 SO Linux Centos
13개 서버 모두 WHM/Cpanel이 있습니다.
백업 서버에는 Centos 7.7만 있습니다. (제어판 없음)
cpanel은 시간별 백업을 허용하지 않기 때문에 cpanel로 백업을 만들 수 없습니다.

답변1

rsync및 를 사용하여 이를 달성할 수 있습니다 cron.

각 서버에서 다음 줄을 사용하여 backup.sh 파일을 만듭니다.

#!/bin/bash
mysqldump > /etc/backups/mysqldump.sql
rsync /etc/backups/mysqldump.sql -e ssh <username>@<ip-address-of-backup-server>:/<path-to your-backup-folder>/<server-name>/"$(date "+%Y-%m-%d-%H")"-backup.sql

확인해보세요MySQL 문서덤프 옵션(또는 선호하는 데이터베이스 덤프 방법 사용) <server-name>백업이 있는 서버에 대한 일종의 식별자여야 합니다.

에 파일을 넣으세요 /etc/cron.hourly. 다른 타이밍을 원할 경우 다른 /etc/cron.*폴더를 확인하거나 다음을 사용할 수 있습니다.크론탭 생성기명령을 사용하십시오 crontab -e.

/etc/backups해당 항목 (또는 이에 상응하는 항목)이 존재하는지 확인하거나 생성하세요( mkdir).

몇 가지 일반적인 문제점:

  1. rsync백업 서버에 연결하거나 제한된 권한을 가진 사용자를 분리할 수 있도록 각 서버에 SSH 키를 설정해야 합니다 . 어떤 종류의 보안을 찾고 있는지에 따라 다릅니다.

  2. 스크립트가 실행 가능한지 확인하십시오 backup.sh.

  3. backup.sh폴더 에 넣으면 /etc/cron.*루트 권한으로 실행됩니다. 어떤 이유로든 이를 원하지 않으면 crontab -e원하는 사용자로 옵션을 사용하십시오.

관련 정보