一、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" > /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