標籤:des 使用 檔案 資料 os art
rsync安裝配置
yum -y install rsync
配置rsync
rsync服務需要三個檔案
rsyncd.conf rsync服務的設定檔
rsyncd.secrets rsync服務的使用者密碼儲存檔案 使用者必須為伺服器上存在的使用者
rsyncd.motd rsync服務的登陸提示資訊
為了密碼的安全 rsyncd.secrets的許可權需要修改為600 chmod 0600 rsyncd.secrets
這幾個檔案預設不存在 需要自行建立 mkdir -p /etc/rsyncd
cd /etc/rsyncd
touch rsyncd.conf
touch rsyncd.secrets
touch rsyncd.motd
chmod 600 /etc/rsyncd/rsyncd.secrets #將rsyncd.secrets這個密碼檔案的檔案屬性設為root擁有, 且許可權要設為600, 否則無法備份成功!
設定rsyncd.conf
vi rsyncd.conf
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.1.2 #伺服器IP
uid = root
gid = root
use chroot = yes
read only = yes #主讀
hosts allow= 192.168.1.3 192.168.1.4 #允許訪問的主機列表
hosts deny=*
max connections = 5
#motd file = /etc/rsyncd.motd
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[video] #要同步的組,名字隨便
path = /home/web/video #同步的目錄
list = no #禁止列出檔案
ignore errors
auth users = root #執行的使用者
exclude = folder folder1 #排除的目錄
secrets file = /etc/rsyncd/rsyncd.secrets #密碼檔案,直接從檔案讀取執行使用者的密碼,省去輸入密碼的互動,較多用於計劃任務
儲存退出
啟動rsync伺服器及防火牆的設定
啟動rsync伺服器相當簡單,有以下幾種方法
A、--daemon參數方式,是讓rsync以伺服器模式運行
#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #--config用於指定rsyncd.conf的位置,如果在/etc下可以不寫
B、xinetd方式
修改services加入如下內容
# nano -w /etc/services
rsync 873/tcp # rsync
rsync 873/udp # rsync
這一步一般可以不做,通常都有這兩行
設定 /etc/xinetd.d/rsync, 簡單例子如下:
# default: off
# description: The rsync server is a good addition to am 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
}
上述, 主要是要開啟rsync這個daemon, 一旦有rsync client要串連時, xinetd會把它轉介給 rsyncd(port 873)。然後service xinetd restart, 使上述設定生效.
rsync伺服器和防火牆
Linux 防火牆是用iptables,所以我們至少在伺服器端要讓你所定義的rsync 伺服器連接埠通過,用戶端上也應該讓通過。
#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
#iptables -L 查看一下防火牆是不是開啟了 873連接埠
通過rsync用戶端來同步資料
A、文法詳解
在配置完rsync伺服器後,就可以從用戶端發出rsync命令來實現各種同步的操作。rsync有很多功能選項,下面就對介紹一下常用的選項:
rsync的命令格式可以為:
1. rsync [OPTION]... SRC [SRC]... [[email protected]]HOSTEST
2. rsync [OPTION]... [[email protected]]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [[email protected]]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [[email protected]]HOST:EST
6. rsync [OPTION]... rsync://[[email protected]]HOST[ORT]/SRC [DEST]
rsync有六種不同的工作模式:
1. 拷貝本地檔案;當SRC和DES路徑資訊都不包含有單個冒號":"分隔字元時就啟動這種工作模式。
2.使用一個遠程shell程式(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔字元時啟動該模式。
3.使用一個遠程shell程式(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔字元時啟動該模式。
4. 從遠程rsync伺服器中拷貝檔案到本地機。當SRC路徑資訊包含"::"分隔字元時啟動該模式。
5. 從本地機器拷貝檔案到遠程rsync伺服器中。當DST路徑資訊包含"::"分隔字元時啟動該模式。
6. 列遠程機的檔案清單。這類似於rsync傳輸,不過只要在命令中省略掉本地機資訊即可。
rsync中的參數
-a 以archive模式操作、複製目錄、符號串連 相當於-rlptgoD
-r 是遞迴
-l 是連結檔案,意思是拷貝連結檔案;-p 表示保持檔案原有許可權;-t 保持檔案原有時間;-g 保持檔案原有使用者組;-o 保持檔案原有屬主;-D 相當於塊裝置檔案;
-z 傳輸時壓縮;
-P 傳輸進度;
-v 傳輸時的進度等資訊,和-P有點關係,自己試試。可以看文檔;
-e ssh的參數建立起加密的串連。
-u只進行更新,防止本地新檔案被重寫,注意兩者機器的時鐘的同時
--progress是指顯示出詳細的進度情況
--delete是指如果伺服器端刪除了這一檔案,那麼用戶端也相應把檔案刪除,保持真正的一致
--password-file=/password/path/file來指定密碼檔案,這樣就可以在指令碼中使用而無需互動式地輸入驗證密碼了,這裡需要注意的是這份密碼檔案許可權屬性要設得只有屬主可讀。
B、一些執行個體
B1、列出rsync 伺服器上的所提供的同步內容;
首先:我們看看rsync伺服器上提供了哪些可用的資料來源
# rsync --list-only [email protected]::
B2、rsync用戶端同步資料;
# rsync -avzP [email protected]::video video
註: 這 個命令的意思就是說,用root使用者登入到伺服器上,把video資料,同步到本地目前的目錄video上。當然本地的目錄是可以你自己定義的。
如果當你在用戶端上當前操作的目錄下沒有video這個目錄時,系統會自動為你建立一個;當存在video這個目錄中,你要注意它 的寫入權限。
設定密碼檔案
# touch /etc/rsyncd/syncd.secrets
# chmod 600 /etc/rsyncd/rsyncd.secrets
# echo "123456"> /etc/rsyncd/rsyncd.secrets 注:rsync伺服器執行使用者密碼
#rsync -avzP --password-file=/etc/rsyncd/rsyncd.secrets [email protected]::video video