今天要接續昨天的排程備份來實作「異地備份」
讀者們如果對rsync操作尚不熟悉,可到 昨天 複習喔
只在本地備份並不能滿足所需
最好要能夠在離峰時間備份,並且有快取碟執行的話,還要避免跟快取搬移的時間衝突
這時備份時機和自動化就顯得格外重要:
- 目標:在一次完整備份結束後能自動排程差異備份到另一台Server上的ZFS陣列
- 效果:自動排程unRaid Array差異備份到另一台Server上
(可依據<12Day>建立ZFS的方法在另一台Server建立陣列,確保備份資料安全無虞)
先設定rsyncd.secrets認證檔,設定非常簡單帳號:密碼
例:
user:123456
修改完儲存(ctrl+o),接著編輯rsyncd.conf:
rsyncd.conf範例
log file = /var/log/rsyncd.log #log日誌,出錯可以前往查看
[unraidbk] #任務名稱
path = /backup #放置資料路徑(異地Server位置)
auth users = user #指定Server帳號(隨rsyncd.secrets設定內容調整)
uid = root
gid = root #設定身份組,維持預設(root)不調整
secrets file = /etc/rsyncd.secrets #import認證檔
read only = no #寫入
修改完儲存,接著編輯myrsync.sh
#! /bin/sh
#指令請自行刪改調整
#unraidbk為rsyncd.conf指令任務名稱
#192.168.0.123 (Server IP自行修改)
#/mnt/disk1為要備份的資料路徑,可建立多個指令
/usr/bin/rsync -avHS --numeric-ids --password-file=/etc/rsyncd.secrets /mnt/cache@192.168.0.123::unraidbk
/usr/bin/rsync -avHS --numeric-ids --password-file=/etc/rsyncd.secrets /mnt/disk1@192.168.0.123::unraidbk
/usr/bin/rsync -avHS --numeric-ids --password-file=/etc/rsyncd.secrets /mnt/disk2@192.168.0.123::unraidbk
設定完記得執行sh,看看有無ERROR Code 或 異地Server目錄裡有無資料
最後一步建立排程就結束啦
這裡使用linux常用的crontab排程套件
TIP:依據 <[10 Day](https://ithelp.ithome.com.tw/articles/10264635)> 介紹快取碟Mover的機制,為了避免干擾 Mover 時程,備份可排在Mover執行後2-4小時左右
SETTINGS > User Preferences 的Scheduler
預設是每天的3:40分
可以調整Mover時間至rsync排程時間的前2-4小時
nano etc/cron.d/root
新增以下指令
30 4 * * 7 /etc/myrsync.sh --your –parameter #每星期日4:30分執行rsync
- 指令規則:
* * * * * /etc/myrsync.sh
由左而右分別代表:- 分鐘(MIN) 0 到 59
- 小時(HOUR) 0 到 23
- 日(DAY) 1 到 31
- 月份(MON) 1 到 12
- 星期幾(WEEK) 1 到 7
完工後把unRaid重開機,往後到異地Server檢查有無備份內容就說明沒問題啦