溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用rsync實(shí)現(xiàn)網(wǎng)站鏡像和備份

發(fā)布時(shí)間:2021-07-10 15:27:48 來(lái)源:億速云 閱讀:207 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“怎么用rsync實(shí)現(xiàn)網(wǎng)站鏡像和備份”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用rsync實(shí)現(xiàn)網(wǎng)站鏡像和備份”吧!

服務(wù)器

 

# more /etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = no

max connections = 4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

 

[wap]

path = /usr/local/backup

ignore errors

read only = yes

list = no

hosts allow = 192.168.1.2

hosts deny =0.0.0.0/32

auth users = backup

secrets file = /etc/rsyncd.secrets

 

 

# more /etc/rsyncd.secrets

backup:backup

 

# chmod 600 /etc/rsyncd.secrets

# chown root.root /etc/rsyncd.secrets

 

# rsync --daemon

 

客戶端

# more /etc/rsync.pass

backup

 

# more /etc/rsync.sh

rsync -avP  backup@192.168.1.1::www /usr/local/backup

 --password-file=/etc/rsync.pass

 

   

FAQ

Q:如何通過(guò)ssh進(jìn)行rsync,而且無(wú)須輸入密碼?

A:可以通過(guò)以下幾個(gè)步驟

 

1. 通過(guò)ssh-keygenserver A上建立SSH keys,不要指定密碼,你會(huì)在~/.ssh下看到identityidentity.pub文件

2. server B上的home目錄建立子目錄.ssh

3. Aidentity.pub拷貝到server B

4. identity.pub加到~[user b]/.ssh/authorized_keys

5. 于是server A上的A用戶,可通過(guò)下面命令以用戶B sshserver B上了

e.g. ssh -l userB serverB

這樣就使server A上的用戶A就可以ssh以用戶B的身份無(wú)需密碼登陸到server B上了。

 

Q:如何通過(guò)在不危害安全的情況下通過(guò)防火墻使用rsync?

A:解答如下:

 

這通常有兩種情況,一種是服務(wù)器在防火墻內(nèi),一種是服務(wù)器在防火墻外。無(wú)論哪種情況,通常還是使用ssh,這時(shí)最好新建一個(gè)備份用戶,并且配置 sshd僅允許這個(gè)用戶通過(guò)RSA認(rèn)證方式進(jìn)入。如果服務(wù)器在防火墻內(nèi),則最好限定客戶端的IP地址,拒絕其它所有連接。如果客戶機(jī)在防火墻內(nèi),則可以簡(jiǎn)單允許防火墻打開(kāi)TCP端口22ssh外發(fā)連接就ok了。

 

Q:我能將更改過(guò)或者刪除的文件也備份上來(lái)嗎?

A:當(dāng)然可以:

 

你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13...這樣的命令來(lái)實(shí)現(xiàn)。

這樣如果源文件:/path/to/some/file.c改變了,那么舊的文件就會(huì)被移到./backup-2000-2-13/path/to/some/file.c,

這里這個(gè)目錄需要自己手工建立起來(lái)

 

Q:我需要在防火墻上開(kāi)放哪些端口以適應(yīng)rsync?

A:視情況而定

 

rsync可以直接通過(guò)873端口的tcp連接傳文件,也可以通過(guò)22端口的ssh來(lái)進(jìn)行文件傳遞,但你也可以通過(guò)下列命令改變它的端口:

 

rsync --port 8730 otherhost::

或者

rsync -e 'ssh -p 2002' otherhost:

 

Q:我如何通過(guò)rsync只復(fù)制目錄結(jié)構(gòu),忽略掉文件呢?

Arsync -av --include '*/' --exclude '*' source-dir dest-dir

 

Q:為什么我總會(huì)出現(xiàn)"Read-only file system"的錯(cuò)誤呢?

A:看看是否忘了設(shè)"read only = no"

 

Q:為什么我會(huì)出現(xiàn)'@ERROR: invalid gid'的錯(cuò)誤呢?

Arsync使用時(shí)默認(rèn)是用uid=nobody;gid=nobody來(lái)運(yùn)行的,如果你的系統(tǒng)不存在nobody組的話,就會(huì)出現(xiàn)這樣的錯(cuò)誤,可以試試gid = nogroup或者其它

 

Q:綁定端口873失敗是怎么回事?

A:如果你不是以root權(quán)限運(yùn)行這一守護(hù)進(jìn)程的話,因?yàn)?span lang="EN-US">1024端口以下是特權(quán)端口,會(huì)出現(xiàn)這樣的錯(cuò)誤。你可以用--port參數(shù)來(lái)改變。

 

Q:為什么我認(rèn)證失敗?

A:從你的命令行看來(lái):

 

你用的是:

>; bash$ rsync -a 144.16.251.213::test test

>; Password:

>; @ERROR: auth failed on module test

>;

>; I dont understand this. Can somebody explain as to how to acomplish this.

>; All suggestions are welcome.

 

應(yīng)該是沒(méi)有以你的用戶名登陸導(dǎo)致的問(wèn)題,試試rsync -a max@144.16.251.213::test test

到此,相信大家對(duì)“怎么用rsync實(shí)現(xiàn)網(wǎng)站鏡像和備份”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI