1. 程式人生 > >使用Rsync備份檔案過程及問題解決

使用Rsync備份檔案過程及問題解決

折騰了這幾天,到底是把小站搞的差不多了,開始著手資料備份的施行。

之前用的海外的伺服器,能很便捷的同步備份到Google Drive,換到騰訊雲以後,GD失效了。因而只能思索此外計劃。

寶塔面板供給又拍雲、七牛、阿里的OSS備份計劃,但是對備份到雲端儲存臨時沒思索,由於免費……只剩下FTP

成果FTP不曉得怎地回事,能連線到備份伺服器,但是老是無響應,手動執行ftpcommand進行連線測試,發現老是在執行lscommand時卡住……目前還不曉得緣故,漸漸再搞定吧。

問題已搞定:阿里雲\騰訊雲沒法連線到其他FTP的問題搞定

因而最後挑選了rsync,好久以前用過這貨,以為不便捷就拋卻了。由於它使用CS架構,配置稍顯龐大,只能通過增加crontab來按時執行……

沒法,開搞吧,一切為了資料,記載一下使用rsync的淺易方式吧。

1.客戶端、服務端均需部署rsync

CentOS

yum install rsync -y

Ubuntu\Debian

sudo apt-get install rsync -y

2.服務端配置

如果是資料從伺服器A → 伺服器B,那麼伺服器 A 則需要作為 服務端 ,伺服器 B 作為 客戶端 來連線到A,拉取資料。

新建1個配置檔案

vi /etc/rsync/rsyncd.conf

寫入配置,就中 bugxia_backup 為自定義配置稱號, path=/www/backup 為需要備份的資料夾路徑,依據需要修正,save

pid file = /var/run/rsyncd.pid   

port = 873 

address = 伺服器IP

uid = root   

gid = root   

use chroot = yes 

read only = yes

hosts allow=客戶端IP

max connections = 3

log file = /root/rsync.log

log format = %t %a %m %f %b

syslog facility = local3

timeout = 300

[bugxia_backup]   

path = /www/backup   

list=yes

ignore errors

auth users = 使用者名

secrets file = /etc/rsync/rsyncd.secrets

新建使用者名及金鑰配置檔案

vi /etc/rsync/rsyncd.secrets

填入配置並save(增加的使用者名需與上面的配置檔案中連結劃一,使用者名金鑰以冒號分隔)

使用者名:金鑰

給使用者名金鑰檔案配置許可權

chmod 600 /etc/rsync/rsyncd.secrets

以daemon方法啟動程式

/usr/bin/rsync --daemon --config=/etc/rsync/rsyncd.conf

檢視日記檔案,檢查啟動能否一般

cat /root/rsync.log

tail -f /root/rsync.log

啟動一般則會提示(文末有常見錯誤及搞定方式)

rsyncd version *.*.* starting, listening on port 873

3.客戶端配置

新建金鑰檔案,修正為服務端已配置的金鑰便可,無需使用者名

touch /root/rsync.pass

echo "金鑰" > /root/rsync.pass

chmod 600 /root/rsync.pass

執行同步只需一行command,就中 bugxia_backup 為上述服務端的自定義配置稱號,/www/wwwroot/bugxia 為同步到本地的資料夾路徑

rsync -avzP --delete --password-file=/root/rsync.pass 使用者名@服務端IP::bugxia_backup /www/wwwroot/bugxia

4.常見錯誤

服務端log出現如下錯誤,需要將服務端IP改成0.0.0.0 譬如騰訊雲,如果使用公網IP則會出現如下錯誤

bind() failed: Cannot assign requested address

unable to bind any inbound sockets on port 873

客戶端出現錯誤,需要檢查服務端rsync能否成功開啟,並檢查防火牆能否放行873埠

rsync: failed to connect to *.*.*.*: Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(128)

許可權錯誤,需要給服務端與客戶端的金鑰檔案配置600許可權

ERROR: password file must not be other-accessible

原文連結:https://vps.fubi.hk/foreshadowingvps/zhishiku/20181025/6253.html