すべてのサーバーのバックアップを他のサーバーに保存するにはどうすればよいですか?

すべてのサーバーのバックアップを他のサーバーに保存するにはどうすればよいですか?

バックアップに使用する新しいサーバーがあります。このサーバーには、他の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.*root権限で実行されます。何らかの理由でこれをしたくない場合は、crontab -e必要なユーザーに応じてオプションを使用してください。

おすすめ記事