rsync详解
一、rsync是什么?
rsync遠程同步數據的一個命令,而且支持增量備份,解釋:A機器和C機器考備過一次,A機器上的數據發生了改變,再次將A機器考備到C機器,它不會覆蓋 原有的數據,只會增加A與C之間不同的地方。
二、rsync選項?
-a==r(針對目錄,歸檔)
? ? ? ? l(保留軟鏈接文件)
例如:
? ? ? ? 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 wenwen@192.168.8.102::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
轉載于:https://blog.51cto.com/9237101/1912163
總結
- 上一篇: JMeter 测试计划
- 下一篇: PostgreSQL cheatShee