バックアップに使用する新しいサーバーがあります。このサーバーには、他の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
)。
いくつかの一般的な質問:
rsync
バックアップサーバーおよび/または制限された権限を持つ別のユーザーに接続できるように、各サーバーにSSHキーを設定する必要があります。どのようなセキュリティを探しているかによって異なります。スクリプトが実行可能であることを確認してください
backup.sh
。フォルダ
backup.sh
に入れると、/etc/cron.*
root権限で実行されます。何らかの理由でこれをしたくない場合は、crontab -e
必要なユーザーに応じてオプションを使用してください。