1、什麼是Rsync
Rsync(
remote synchronize)是一個遠程數據同步工具,可經過
LAN/WAN快速同步多臺主機間的文件。
Rsync使用所謂的「
Rsync算法」來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不一樣部分,而不是每次都整份傳送,所以速度至關快。
Rsync原本是用於替代
rcp的一個工具,目前由
rsync.samba.org維護,因此
rsync.conf文件的格式相似於
samba的主配置文件。
Rsync能夠經過
rsh或
ssh使用,也能以
daemon模式去運行,在以
daemon方式運行時
Rsync server會打開一個
873端口,等待客戶端去鏈接。鏈接時,
Rsync server會檢查口令是否相符,若經過口令查覈,則能夠開始進行文件傳輸。第一次連通完成時,會把整份文件傳輸一次,之後則就只需進行增量備份。
Rsync支持大多數的類
Unix系統,不管是
Linux、
Solaris仍是
BSD上都通過了良好的測試。此外,它在
windows平臺下也有相應的版本,如
cwRsync和
Sync2NAS等工具。
Rsync的基本特色以下:
1.能夠鏡像保存整個目錄樹和文件系統;
2.能夠很容易作到保持原來文件的權限、時間、軟硬連接等;
3.無須特殊權限便可安裝;
4.優化的流程,文件傳輸效率高;
5.可使用
rsh、
ssh等方式來傳輸文件,固然也能夠經過直接的
socket鏈接;
6.支持匿名傳輸。
2、Rsync同步算法
Rsync只因此同步文件的速度至關快,是由於「
Rsync同步算法」能在很短的時間內計算出須要備份的數據,關於
Rsync的同步算法描述以下:
假定在
1號和
2號兩臺計算機之間同步類似的文件
A與
B,其中
1號對文件
A擁有訪問權,
2號對文件
B擁有訪問權。而且假定主機
1號與
2號之間的網絡帶寬很小。那麼
rsync算法將經過下面的五個步驟來完成:
1、
2號將文件
B分割成一組不重疊的固定大小爲
S字節的數據塊,最後一塊可能會比
S 小。
2、
2號對每個分割好的數據塊執行兩種校驗:一種是
32位的滾動弱校驗,另外一種是
128位的
MD4強校驗。
3、
2號將這些校驗結果發給
1號。
4、
1號經過搜索文件
A的全部大小爲
S的數據塊
(偏移量能夠任選,不必定非要是
S的倍數
),來尋找與文件
B的某一塊有着相同的弱校驗碼和強校驗碼的數據塊。這項工做能夠藉助滾動校驗的特性很快完成。
5、
1號發給
2號一串指令來生成文件
A在
2號上的備份。這裏的每一條指令要麼是對文件
B經擁有某一個數據塊而不須重傳的證實,要麼是一個數據塊,這個數據塊確定是沒有與文件
B的任何一個數據塊匹配上的。
3、Rsync參數說明
3.1 rsyncd.conf配置文件
-、全局參數
在文件中
[module]以前的全部參數都是全局參數,固然也能夠在全局參數部分定義模塊參數,這時候該參數的值就是全部模塊的默認值。
port
指定後臺程序使用的端口號,默認爲
873。
motd file
"motd file"參數用來指定一個消息文件,當客戶鏈接服務器時該文件的內容顯示給客戶,默認是沒有
motd文件的。
log file
"log file"指定
rsync的日誌文件,而不將日誌發送給
syslog。好比可指定爲「
/var/log/rsyncd.log」。
pid file
指定
rsync的
pid文件,一般指定爲「
/var/run/rsyncd.pid」。
syslog facility
指定
rsync發送日誌消息給
syslog時的消息級別,常見的消息級別是:
uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和
local7。默認值是
daemon。
2、模塊參數
主要是定義服務器哪一個目錄要被同步。其格式必須爲「
[module]」形式,這個名字就是在
rsync 客戶端看到的名字,其實有點象
Samba服務器提供的共享名。而服務器真正同步的數據是經過
path 來指定的。咱們能夠根據本身的須要,來指定多個模塊,模塊中能夠定義如下參數:
comment
給模塊指定一個描述,該描述連同模塊名在客戶鏈接獲得模塊列表時顯示給客戶。默認沒有描述定義。
path
指定該模塊的供備份的目錄樹路徑,該參數是必須指定的。
use chroot
若是
"use chroot"指定爲
true,那麼
rsync在傳輸文件之前首先
chroot到
path參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,可是缺點是須要以
roots權限,而且不能備份指向外部的符號鏈接所指向的目錄文件。默認狀況下
chroot值爲
true。
uid
該選項指定當該模塊傳輸文件時守護進程應該具備的
uid,配合
gid選項使用能夠肯定哪些能夠訪問怎麼樣的文件權限,默認值是
"nobody"。
gid
該選項指定當該模塊傳輸文件時守護進程應該具備的
gid。默認值爲
"nobody"。
max connections
指定該模塊的最大併發鏈接數量以保護服務器,超過限制的鏈接請求將被告知隨後再試。默認值是
0,也就是沒有限制。
list
該選項設定當客戶請求可使用的模塊列表時,該模塊是否應該被列出。若是設置該選項爲
false,能夠建立隱藏的模塊。默認值是
true。
read only
該選項設定是否容許客戶上載文件。若是爲
true那麼任何上載請求都會失敗,若是爲
false而且服務器目錄讀寫權限容許那麼上載是容許的。默認值爲
true。
exclude
用來指定多個由空格隔開的多個文件或目錄
(相對路徑
),並將其添加到
exclude列表中。這等同於在客戶端命令中使用
--exclude來指定模式,一個模塊只能指定一個
exclude選項。可是須要注意的一點是該選項有必定的安全性問題,客戶頗有可能繞過
exclude列表,若是但願確保特定的文件不能被訪問,那就最好結合
uid/gid選項一塊兒使用。
exclude from
指定一個包含
exclude模式的定義的文件名,服務器從該文件中讀取
exclude列表定義。
include
用來指定不排除符合要求的文件或目錄。這等同於在客戶端命令中使用
--include來指定模式,結合
include和
exclude能夠定義複雜的
exclude/include規則。
include from
指定一個包含
include模式的定義的文件名,服務器從該文件中讀取
include列表定義。
auth users
該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才容許鏈接該模塊。這裏的用戶和系統用戶沒有任何關係。若是
"auth users"被設置,那麼客戶端發出對該模塊的鏈接請求之後會被
rsync請求
challenged進行驗證身份這裏使用的
challenge/response認證協議。用戶的名和密碼以明文方式存放在
"secrets file"選項指定的文件中。默認狀況下無需密碼就能夠鏈接模塊
(也就是匿名方式
)。
secrets file
該選項指定一個包含定義用戶名
:密碼對的文件。只有在
"auth users"被定義時,該文件纔有做用。文件每行包含一個
username:passwd對。通常來講密碼最好不要超過
8個字符。沒有默認的
secures file名,須要限式指定一個
(例如:
/etc/rsyncd.passwd)。注意:該文件的權限必定要是
600,不然客戶端將不能鏈接服務器。
strict modes
該選項指定是否監測密碼文件的權限,若是該選項值爲
true那麼密碼文件只能被
rsync服務器運行身份的用戶訪問,其餘任何用戶不能夠訪問該文件。默認值爲
true。
hosts allow
該選項指定哪些
IP的客戶容許鏈接該模塊。客戶模式定義能夠是如下形式:
單個
IP地址,例如:
192.167.0.1
整個網段,例如:
192.168.0.0/24,也能夠是
192.168.0.0/255.255.255.0
多個
IP或網段須要用空格隔開,「
*」則表示全部,默認是容許全部主機鏈接。
hosts deny
指定不容許鏈接
rsync服務器的機器,可使用
hosts allow的定義方式來進行定義。默認是沒有
hosts deny定義。
ignore errors
指定
rsyncd在判斷是否運行傳輸時的刪除操做時忽略
server上的
IO錯誤,通常來講
rsync在出現
IO錯誤時將將跳過
--delete操做,以防止由於暫時的資源不足或其它
IO錯誤致使的嚴重問題。
ignore nonreadable
指定
rysnc服務器徹底忽略那些用戶沒有訪問權限的文件。這對於在須要備份的目錄中有些文件是不該該被備份者獲得的狀況是有意義的。
lock file
指定支持
max connections參數的鎖文件,默認值是
/var/run/rsyncd.lock。
transfer logging
使
rsync服務器使用
ftp格式的文件來記錄下載和上載操做在本身單獨的日誌中。
log format
經過該選項用戶在使用
transfer logging能夠本身定製日誌文件的字段。其格式是一個包含格式定義符的字符串,可使用的格式定義符以下所示:
%h 遠程主機名
%a 遠程
IP地址
%l 文件長度字符數
%p 該次
rsync會話的進程
id
%o 操做類型:
"send"或
"recv"
%f 文件名
%P 模塊路徑
%m 模塊名
%t 當前時間
%u 認證的用戶名
(匿名時是
null)
%b 實際傳輸的字節數
%c 當發送文件時,該字段記錄該文件的校驗碼
默認
log格式爲:
"%o %h [%a] %m (%u) %f %l",通常來講
,在每行的頭上會添加
"%t [%p] "。在源代碼中同時發佈有一個叫
rsyncstats的
perl腳本程序來統計這種格式的日誌文件。
timeout
經過該選項能夠覆蓋客戶指定的
IP超時時間。經過該選項能夠確保
rsync服務器不會永遠等待一個崩潰的客戶端。超時單位爲秒鐘,
0表示沒有超時定義,這也是默認值。對於匿名
rsync服務器來講,一個理想的數字是
600。
refuse options
經過該選項能夠定義一些不容許客戶對該模塊使用的命令參數列表。這裏必須使用命令全名,而不能是簡稱。但發生拒絕某個命令的狀況時服務器將報告錯誤信息而後退出。若是要防止使用壓縮,應該是:
"dont compress = *"。
dont compress
用來指定那些不進行壓縮處理再傳輸的文件,默認值是
*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
3.2 Rsync命令
在對
rsync服務器配置結束之後,下一步就須要在客戶端發出
rsync命令來實現將服務器端的文件備份到客戶端來。
rsync是一個功能很是強大的工具,其命令也有不少功能特點選項,咱們下面就對它的選項一一進行分析說明。
Rsync的命令格式能夠爲如下六種:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
|
對應於以上六種命令格式,
rsync有六種不一樣的工做模式:
1)拷貝本地文件。當
SRC和
DES路徑信息都不包含有單個冒號
":"分隔符時就啓動這種工做模式。如:
rsync -a /data /backup
2)使用一個遠程
shell程序
(如
rsh、
ssh)來實現將本地機器的內容拷貝到遠程機器。當
DST路徑地址包含單個冒號
":"分隔符時啓動該模式。如:
rsync -avz *.c foo:src
3)使用一個遠程
shell程序
(如
rsh、
ssh)來實現將遠程機器的內容拷貝到本地機器。當
SRC地址路徑包含單個冒號
":"分隔符時啓動該模式。如:
rsync -avz foo:src/bar /data
4)從遠程
rsync服務器中拷貝文件到本地機。當
SRC路徑信息包含
"::"分隔符時啓動該模式。如:
rsync -av root@172.16.78.192::www /databack
5)從本地機器拷貝文件到遠程
rsync服務器中。當
DST路徑信息包含
"::"分隔符時啓動該模式。如:
rsync -av /databack root@172.16.78.192::www
6)列遠程機的文件列表。這相似於
rsync傳輸,不過只要在命令中省略掉本地機信息便可。如:
rsync -v rsync://172.16.78.192/www
rsync參數的具體解釋以下:
-v, --verbose 詳細模式輸出
-q, --quiet 精簡輸出模式
-c, --checksum 打開校驗開關,強制對文件傳輸進行校驗
-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持全部文件屬性,等於
-rlptgoD
-r, --recursive 對子目錄以遞歸模式處理
-R, --relative 使用相對路徑信息
-b, --backup 建立備份,也就是對於目的已經存在有一樣的文件名時,將老的文件從新命名爲
~filename。可使用
--suffix選項來指定不一樣的備份文件前綴。
--backup-dir 將備份文件
(如
~filename)存放在在目錄下。
-suffix=SUFFIX 定義備份文件前綴
-u, --update 僅僅進行更新,也就是跳過全部已經存在於
DST,而且文件時間晚於要備份的文件。
(不覆蓋更新的文件
)
-l, --links 保留軟鏈結
-L, --copy-links 想對待常規文件同樣處理軟鏈結
--copy-unsafe-links 僅僅拷貝指向
SRC路徑目錄樹之外的鏈結
--safe-links 忽略指向
SRC路徑目錄樹之外的鏈結
-H, --hard-links 保留硬鏈結
-p, --perms 保持文件權限
-o, --owner 保持文件屬主信息
-g, --group 保持文件屬組信息
-D, --devices 保持設備文件信息
-t, --times 保持文件時間信息
-S, --sparse 對稀疏文件進行特殊處理以節省
DST的空間
-n, --dry-run現實哪些文件將被傳輸
-W, --whole-file 拷貝文件,不進行增量檢測
-x, --one-file-system 不要跨越文件系統邊界
-B, --block-size=SIZE 檢驗算法使用的塊尺寸,默認是
700字節
-e, --rsh=COMMAND 指定使用
rsh、
ssh方式進行數據同步
--rsync-path=PATH 指定遠程服務器上的
rsync命令所在路徑信息
-C, --cvs-exclude 使用和
CVS同樣的方法自動忽略文件,用來排除那些不但願傳輸的文件
--existing 僅僅更新那些已經存在於
DST的文件,而不備份那些新建立的文件
--delete 刪除那些
DST中
SRC沒有的文件
--delete-excluded 一樣刪除接收端那些被該選項指定排除的文件
--delete-after 傳輸結束之後再刪除
--ignore-errors 及時出現
IO錯誤也進行刪除
--max-delete=NUM 最多刪除
NUM個文件
--partial 保留那些因故沒有徹底傳輸的文件,以是加快隨後的再次傳輸
--force 強制刪除目錄,即便不爲空
--numeric-ids 不將數字的用戶和組
ID匹配爲用戶名和組名
--timeout=TIME IP超時時間,單位爲秒
-I, --ignore-times 不跳過那些有一樣的時間和長度的文件
--size-only 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間
--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認爲
0
-T --temp-dir=DIR 在
DIR中建立臨時文件
--compare-dest=DIR 一樣比較
DIR中的文件來決定是否須要備份
-P 等同於
--partial
--progress 顯示備份過程
-z, --compress 對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN 指定排除不須要傳輸的文件模式
--include=PATTERN 指定不排除而須要傳輸的文件模式
--exclude-from=FILE 排除
FILE中指定模式的文件
--include-from=FILE 不排除
FILE指定模式匹配的文件
--version 打印版本信息
--address 綁定到特定的地址
--config=FILE 指定其餘的配置文件,不使用默認的
rsyncd.conf文件
--port=PORT 指定其餘的
rsync服務端口
--blocking-io 對遠程
shell使用阻塞
IO
-stats 給出某些文件的傳輸狀態
--progress 在傳輸時現實傳輸過程
--log-format=formAT 指定日誌文件格式
--password-file=FILE 從
FILE中獲得密碼
--bwlimit=KBPS 限制
I/O帶寬,
KBytes per second
-h, --help 顯示幫助信息
4、Rsync使用實例
4.1、SSH方式
1、首先在服務端啓動
ssh服務:
# service sshd start
啓動
sshd:
[肯定
]
|
2、使用
rsync進行同步
接下來就能夠在客戶端使用
rsync命令來備份服務端上的數據了,
SSH方式是經過系統用戶來進行備份的,以下:
# rsync -vzrtopg --progress -e ssh --delete work@172.16.78.192:/www/* /databack/experiment/rsync
work@172.16.78.192's password:
receiving file list ...
5 files to consider
test/
a
0 100% 0.00kB/s 527:35:41 (1, 20.0% of 5)
b
67 100% 65.43kB/s 0:00:00 (2, 40.0% of 5)
c
0 100% 0.00kB/s 527:35:41 (3, 60.0% of 5)
dd
100663296 100% 42.22MB/s 0:00:02 (4, 80.0% of 5)
sent 96 bytes received 98190 bytes 11563.06 bytes/sec
total size is 100663363 speedup is 1024.19
|
上面的信息描述了整個的備份過程,以及總共備份數據的大小。
4.2 、後臺服務方式
1、啓動
rsync服務
編輯
/etc/xinetd.d/rsync文件,將其中的
disable=yes改成
disable=no,並重啓
xinetd服務,以下:
# vi /etc/xinetd.d/rsync
#default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
# /etc/init.d/xinetd restart
中止
xinetd:
[肯定
]
啓動
xinetd:
[肯定
]
|
2、建立配置文件
默認安裝好
rsync程序後,並不會自動建立
rsync的主配置文件,須要手工來建立,其主配置文件爲「
/etc/rsyncd.conf」,建立該文件並插入以下內容:
# vi /etc/rsyncd.conf
uid=root
gid=root
max connections=4
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.passwd
hosts deny=172.16.78.0/22
[www]
comment= backup web
path=/www
read only = no
exclude=test
auth users=work
|
3、建立密碼文件
採用這種方式不能使用系統用戶對客戶端進行認證,因此須要建立一個密碼文件,其格式爲「
username:password」,用戶名能夠和密碼能夠隨便定義,最好不要和系統賬戶一致,同時要把建立的密碼文件權限設置爲
600,這在前面的模塊參數作了詳細介紹。
# echo "work:abc123" > /etc/rsyncd.passwd
# chmod 600 /etc/rsyncd.passwd
|
4、備份
完成以上工做,如今就能夠對數據進行備份了,以下:
# rsync -avz --progress --delete work@172.16.78.192::www /databack/experiment/rsync
Password:
receiving file list ...
6 files to consider
./ files...
a
0 100% 0.00kB/s 528:20:41 (1, 50.0% of 6)
b
67 100% 65.43kB/s 0:00:00 (2, 66.7% of 6)
c
0 100% 0.00kB/s 528:20:41 (3, 83.3% of 6)
dd
100663296 100% 37.49MB/s 0:00:02 (4, 100.0% of 6)
sent 172 bytes received 98276 bytes 17899.64 bytes/sec
total size is 150995011 speedup is 1533.75
|
5、恢復
當服務器的數據出現問題時,那麼這時就須要經過客戶端的數據對服務端進行恢復,但前提是服務端容許客戶端有寫入權限,不然也不能在客戶端直接對服務端進行恢復,使用
rsync對數據進行恢復的方法以下:
# rsync -avz --progress /databack/experiment/rsync/ work@172.16.78.192::www
Password:
building file list ...
6 files to consider
./
a
b
67 100% 0.00kB/s 0:00:00 (2, 66.7% of 6)
c
sent 258 bytes received 76 bytes 95.43 bytes/sec
total size is 150995011 speedup is 452080.87
|
5、示例腳本
這裏這些腳本都是
rsync網站上的例子:
1、每隔七天將數據往中心服務器作增量備份
#!/bin/sh
# This script does personal backups to a rsync backup server. You will end up
# with a 7 day rotating incremental backup. The incrementals will go
# into subdirectories named after the day of the week, and the current
# full backup goes into a directory called "current"
# [email]tridge@linuxcare.com[/email]
# directory to backup
BDIR=/home/$USER
# excludes file - this contains a wildcard pattern per line of files to exclude
EXCLUDES=$HOME/cron/excludes
# the name of the backup machine
BSERVER=owl
# your password on the backup server
export RSYNC_PASSWORD=XXXXXX
########################################################################
BACKUPDIR=`date +%A`
OPTS="--force --ignore-errors --delete-excluded --exclude-from=$EXCLUDES
--delete --backup --backup-dir=/$BACKUPDIR -a"
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
# the following line clears the last weeks incremental directory
[ -d $HOME/emptydir ] || mkdir $HOME/emptydir
rsync --delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/
rmdir $HOME/emptydir
# now the actual transfer
rsync $OPTS $BDIR $BSERVER::$USER/current
2、備份至一個空閒的硬盤
#!/bin/sh
export PATH=/usr/local/bin:/usr/bin:/bin
LIST="rootfs usr data data2"
for d in $LIST; do
mount /backup/$d
rsync -ax --exclude fstab --delete /$d/ /backup/$d/
umount /backup/$d
done
DAY=`date "+%A"`
rsync -a --delete /usr/local/apache /data2/backups/$DAY
rsync -a --delete /data/solid /data2/backups/$DAY
3、對
vger.rutgers.edu的
cvs樹進行鏡像
#!/bin/bash
cd /var/www/cvs/vger/
PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin
RUN=`lps x | grep rsync | grep -v grep | wc -l`
if [ "$RUN" -gt 0 ]; then
echo already running
exit 1
fi
rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog $HOME/ChangeLog
sum1=`sum $HOME/ChangeLog`
sum2=`sum /var/www/cvs/vger/CVSROOT/ChangeLog`
if [ "$sum1" = "$sum2" ]; then
echo nothing to do
exit 0
fi
rsync -az --delete --force vger.rutgers.edu::cvs/ /var/www/cvs/vger/
exit 0
6、
FAQ
Q:如何經過
ssh進行
rsync,並且無須輸入密碼?
A:能夠經過如下幾個步驟
1. 經過
ssh-keygen在
server A上創建
SSH keys,不要指定密碼,你會在
~/.ssh下看到
identity和
identity.pub文件
2. 在
server B上的
home目錄創建子目錄
.ssh
3. 將
A的
identity.pub拷貝到
server B上
4. 將
identity.pub加到
~[user b]/.ssh/authorized_keys
5. 因而
server A上的
A用戶,可經過下面命令以用戶
B ssh到
server B上了
e.g. ssh -l userB serverB
這樣就使
server A上的用戶
A就能夠
ssh以用戶
B的身份無需密碼登錄到
server B上了。
Q:如何經過在不危害安全的狀況下經過防火牆使用
rsync?
A:解答以下:
這一般有兩種狀況,一種是服務器在防火牆內,一種是服務器在防火牆外。不管哪一種狀況,一般仍是使用
ssh,這時最好新建一個備份用戶,而且配置
sshd僅容許這個用戶經過
RSA認證方式進入。若是服務器在防火牆內,則最好限定客戶端的
IP地址,拒絕其它全部鏈接。若是客戶機在防火牆內,則能夠簡單容許防火牆打開
TCP端口
22的
ssh外發鏈接就
ok了。
Q:我能將更改過或者刪除的文件也備份上來嗎?
A:固然能夠:
你可使用如:
rsync -other -options -backupdir = ./backup-2000-2-13 ...這樣的命令來實現。
這樣若是源文件
:/path/to/some/file.c改變了,那麼舊的文件就會被移到
./backup-2000-2-13/path/to/some/file.c,
這裏這個目錄須要本身手工創建起來
Q:我須要在防火牆上開放哪些端口以適應
rsync?
A:視狀況而定
rsync能夠直接經過
873端口的
tcp鏈接傳文件,也能夠經過
22端口的
ssh來進行文件傳遞,但你也能夠經過下列命令改變它的端口:
rsync --port 8730 otherhost::
或者
rsync -e 'ssh -p 2002' otherhost:
Q:我如何經過
rsync只複製目錄結構,忽略掉文件呢?
A:
rsync -av --include '*/' --exclude '*' source-dir dest-dir
Q:爲何我總會出現
"Read-only file system"的錯誤呢?
A:看看是否忘了設
"read only = no"了
Q:爲何我會出現
'@ERROR: invalid gid'的錯誤呢?
A:
rsync使用時默認是用
uid=nobody;gid=nobody來運行的,若是你的系統不存在
nobody組的話,就會出現這樣的錯誤,能夠試試
gid = nogroup或者其它
Q:綁定端口
873失敗是怎麼回事?
A:若是你不是以
root權限運行這一守護進程的話,由於
1024端口如下是特權端口,會出現這樣的錯誤。你能夠用
--port參數來改變。
Q:爲何我認證失敗?
A:從你的命令行看來:
你用的是:
> 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.
|