天天看點

rsync詳解

一、rsync是什麼?

rsync遠端同步資料的一個指令,而且支援增量備份,解釋:A機器和C機器考備過一次,A機器上的資料發生了改變,再次将A機器考備到C機器,它不會覆寫 原有的資料,隻會增加A與C之間不同的地方。

二、rsync選項?

-a==r(針對目錄,歸檔)

        l(保留軟連結檔案)

例如:

<a href="https://s3.51cto.com/wyfs02/M00/8F/7B/wKioL1jgjTeSH1zeAAALhQ2cgfo766.png-wh_500x0-wm_3-wmp_4-s_2681858340.png" target="_blank"></a>

<a href="https://s3.51cto.com/wyfs02/M01/8F/7D/wKiom1jgjTij117rAAAKLImNWuA467.png-wh_500x0-wm_3-wmp_4-s_2418672791.png" target="_blank"></a>

<a href="https://s3.51cto.com/wyfs02/M01/8F/7B/wKioL1jgjTiiprTXAAAWVO5zWLc110.png-wh_500x0-wm_3-wmp_4-s_3928909393.png" target="_blank"></a>

        p(讀寫執行,權限)

        t(時間)

         g(屬組)

         o(屬主)

         D(裝置檔案)

-v可視化

-P顯示同步時的百分比

--delete 強制保持檔案的一緻性,源是什麼,目标就是什麼。

--exclude==*.log不要字尾為.log的檔案

-L rsync可以在同步的時候把軟連結對應的源檔案拉過來

-u 允許目标機器上的新檔案 。A機器copy到C機器,C機器上的資料就需要一些改動

-z  壓縮

三、具體用法?

拉,遠端的資料到本地:rsync -av 192.168.11.190:/tmp/1.txt    /tmp

推,本地的資料到遠端:rsync -av /tmp/1.txt   192.168.11.190:/tmp

四、以daemon方式啟動rsync

日志檔案為,var/log/rsync.log(排錯去找)

搭建過程:伺服器端192.168.8.102

a.建立配置檔案,且修改配置檔案

[root@Herry ~]# vim /etc/rsyncd.conf

port=8730

log file=/var/log/rsync.log

pid file=/var/run/rsync.pid

[test]

path=/tmp/rsync         

use chroot=no

max connections=4

read only=no

list=true

uid=aop

gid=aop

auth users=wenwen

secrets file=/etc/rsyncd.passwd

hosts allow=192.168.8.101

path:是推送檔案的路徑,

use chroot:是把遠端使用者限制規定的目錄内,即/tmp/rsync中,如果使用-L同步軟連結的源檔案,而源檔案又在/etc目錄下(非tmp/rsync目錄),use chroot=yes,則無法使用L選項;

max connection:最大連接配接數;

read only隻讀;

list是否要将子產品名test列出來;

uid屬主,後面紅色的有詳細介紹;

gid屬組,後面紅色的有詳細介紹;

auth user 驗證使用者名,作連接配接用;

secrets file密碼檔案;

hosts allow允許哪些主機IP連接配接;

b.啟動一個守護程序,且檢視程序是否生成

     [root@Herry ~]# rsync --daemon

      [root@Herry ~]# ps aux | grep rsync

       root      8129  0.2  0.0 107624   552 ?        Ss   00:05   0:00 rsync --daemon

       root      8135  0.0  0.0 103260   848 pts/0    S+   00:06   0:00 grep rsync

c.建立/tmp/rsync

[root@Herry ~]# mkdir /tmp/rsync

[root@Herry ~]# touch /tmp/rsync/1.txt

[root@Herry ~]# echo "asdsa" &gt; /tmp/rsync/1.txt

d.在服務端192.168.8.101上建立密碼檔案

vim /etc/rsyncd.passwd

wenwen:l426844  wenwen是驗證帳号,l426844是驗證密碼。

e.給密碼檔案設定權限:chmod 400  /etc/rsyncd.passwd

f.用戶端192.168.8.101驗證,将伺服器上的1.txt,拉取過來,其中--port指的是與伺服器端的8730端口連接配接,預設是tcp 873端口,因為在伺服器端中的配置檔案/etc/rsyncd.conf中指定過。

[root@wenwen ~]# rsync -avzP --port 8730 [email protected]::test/1.txt ./

Password:

receiving incremental file list

1.txt

           6 100%    5.86kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 75 bytes  received 144 bytes  39.82 bytes/sec

total size is 6  speedup is 0.03

[root@wenwen ~]# ls

123      1.txt    2.txt  anaconda-ks.cfg  install.log         公共的  視訊  文檔  音樂

123.txt  234.txt  9.txt  cisco            install.log.syslog  模闆    圖檔  下載下傳  桌面

五、部分參數剖析

/etc/rsyncd.conf中UID和GID意義:

針對用戶端往伺服器上的拉取和推送等操作,在伺服器上的/tmp/rsync/下看傳過來的檔案屬主:

1.伺服器端如果是root,則同步過來的就跟用戶端的屬主屬組保持一緻,如果在伺服器端本地沒有建立用戶端的檔案屬主屬組,則直接用數字替補(跟用戶端的UID和GID一樣的數字),用id查詢UID和GID哦!

2.伺服器端如果是非root,則同步過來的檔案屬主和屬組就是伺服器端指定的UID和GID

本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1912163如需轉載請自行聯系原作者

ziwenzhou