バックアップに使用する予定の新しいサーバーがあります。このサーバーに、gziped
他の 13 台のサーバーすべての DB を保存したいと考えています。各サーバーから 1 時間ごとにバックアップを作成し、バックアップ サーバーに保存する最適な方法は何ですか?
サーバー SO Linux Centos
13 台のサーバーすべてに WHM/Cpanel が搭載されています。
バックアップ サーバーには Centos 7.7 のみが搭載されています (コントロール パネルはありません)
。cpanel では 1 時間ごとのバックアップが許可されていないため、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 ジェネレーターコマンドを使用しますcrontab -e
。
/etc/backups
(または同等のもの)が存在することを確認するか、作成します( mkdir
)。
よくある落とし穴:
各サーバーに SSH キーを設定して、
rsync
バックアップ サーバーに接続したり、権限が制限された別のユーザーを設定したりできるようにしてください。必要なセキュリティの種類によって異なります。スクリプトが実行可能であることを確認してください
backup.sh
。backup.sh
フォルダーに置くと、/etc/cron.*
ルート権限で実行されます。何らかの理由でこれを望まない場合は、crontab -e
希望するユーザーとしてオプションを使用してください。