我有一台新伺服器,打算用於備份。在這台伺服器上,我想儲存gziped
所有其他 13 台伺服器的資料庫。每小時從每台伺服器進行備份並將其儲存在備份伺服器上的最佳方法是什麼?
伺服器 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 產生器並使用命令crontab -e
。
確保/etc/backups
(或您的等效項)存在或建立它 ( mkdir
)。
一些常見的問題:
確保在每台伺服器上設定 ssh 金鑰,以便
rsync
可以連接到備份伺服器和/或具有有限權限的單獨使用者。取決於您正在尋找什麼樣的安全性。確保該
backup.sh
腳本可執行。如果您放入資料夾
backup.sh
中/etc/cron.*
,它將以 root 權限運行。如果您出於某種原因不希望這樣做,請crontab -e
根據所需用戶使用選項。