내 모든 서버의 백업을 다른 서버에 어떻게 저장합니까?

내 모든 서버의 백업을 다른 서버에 어떻게 저장합니까?

백업에 사용할 새 서버가 있습니다. 이 서버에는 다른 13개 서버의 데이터베이스를 모두 저장하고 싶습니다 gziped. 각 서버에서 매시간 백업을 수행하여 백업 서버에 저장하는 가장 좋은 방법은 무엇입니까?

서버 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원하는 사용자에 따라 옵션을 사용하십시오.

관련 정보