Ubuntu 22.04 Rsync自動異地同步

 Ubuntu 22.04 Rsync 自動異地同步

Server 端:192.168.1.145          #資料來源

Clinet端:192.168.1.142           #異地備份

兩台都先安裝rsync

sudo apt install rsync

接下來

Server端

sudo vim /etc/rsyncd.conf                       #rsync設定檔

###########################################################

max connections = 10                     #最大連線數

pidfile = /var/run/rsyncd.pid          #pid 位置

log file = /var/log/rsync.log           #log 位置

transfer logging = yes                    #是否記錄傳輸文件日誌

log format = %t %a %m %f %b    #日誌文件格式

timeout = 300                                 #超時時間

dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  #設置不需要壓縮的文件

exclude = lost+found/                     #排除無法同步的檔案或目錄

uid = root                                        #啟動權限為root

gid = root                                        #啟動權限為root


[backup]                                          #要備份的區域設定

path = /var/lib/libvirt/images/         #備份路徑

hosts allow = 192.168.1.142           #允許的主機位置

hosts deny = *                                 #禁止的主機位置

read only = yes                                #只可讀取

list = yes                                          #是否顯示檔案目錄列表

auth users = backuper                     #用戶名稱,可使用空格或者逗號隔開多個用戶名,必須和 rsyncd.secrets中的用戶名對應

secrets file = /etc/rsyncd.secrets     #用戶帳密存放位置

存檔

###########################################################

sudo vim /etc/rsyncd.secrets               #允許帳密設定
格式
帳號:密碼
例:
backuper:ddf333
存檔
然後更改rsyncd.secrets權限為600
sudo chmod 600 /etc/rsyncd.secrets
啟動rsync
sudo systemctl start rsync
設定開機自啟動服務
sudo systemctl enable rsync
################以上 Server端設定完成#######################

Clinet端

sudo vim /root/backup.pass                       #存放位置,檔名自定
格式:只需要密碼就行了,但要注意要跟Server端設定的密碼相同
例如:
ddf333
然後存檔,並修改權限
sudo chmod 600 /root/backup.pass

接著
sudo vim /root/backup.sh

#!/bin/bash
sudo rsync -avh --delete --progress --password-file=/root/backup.pass backuper@192.168.1.145::backup /home/images

存檔

sudo chmod +x /root/backup.sh

參數說明:
-a: 以歸檔模式進行同步,包括遞歸、保留權限和時間等
-v: 顯示詳細輸出,以便查看正在進行的操作
-h: 以人類可讀的格式輸出數字
--delete: 刪除Clinet目錄中不存在於Server端的文件,簡單的說就是Server沒有,Clinet端也不會有
--progress: 顯示同步進度
--password-file=: 密碼存放位置

backuper@192.168.1.145::backup: 
備份帳號: backuper
192.168.1.145: 要備份的Server
backup: rsync設定檔的模塊名稱

/home/images: 設定Clinet端存放位置


把 backup.sh 加到cron裡面,實現遠端異地備份。

Enjoy !!



留言

這個網誌中的熱門文章

Windows 「指定的檔名無效或太長,請指定其他檔名」

金旭系統 票卷異常查修