rsync的三種工做模式:node
一、單個主機本地進行數據傳輸 相似與cp命令 另外rsync還有刪除功能vim
二、藉助與rcp,ssh通道來進行傳輸 相似與scp功能安全
rsync -avz /etc/hosts -e ssh 192.168.12.246:/etc/init.d/服務器
-a:保持文件自身屬性 -z:壓縮傳輸 -e:使用通訊協議 -v:輸出給出進度提示ssh
將 本地的/etc/hosts文件 藉助ssh通道來傳輸到192.168.12.246的/etc/init.d/目錄下socket
三、以守護進程(socket)方式進行傳輸ui
當以守護進程的方式傳輸,須要新建該文件:vim /etc/rsyncd.conf日誌
uid = rsync 用戶
gid = rsync 組
use chroot = no
max connections = 200 鏈接數
timeout = 300 超時退出
pid file = /var/run/rsyncd.pid 日誌
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[lzk]
path = /usr/local/tools/ 同步的目錄
ignore errors 忽略輸出時錯誤提示
read only = false 讀寫
list = false
hosts allow = 192.168.12.0/24 容許的網段
hosts deny = 0.0.0.0/32
auth users = slave 認證的用戶
secrets file = /etc/rsync.password 將客戶端用戶的密碼寫入該文件,不會在要求密碼進程
當建立寫好配置文件時使用rsync --daemon啓動服務 查看873端口ip
[root@node1 ~]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rsync 17160 root 4u IPv6 175668 TCP *:rsync (LISTEN)
rsync 17160 root 5u IPv4 175669 TCP *:rsync (LISTEN)
在配置文件中咱們定義的用戶是rsync,因此咱們如今建立虛擬用戶
useradd rsync -s /sbin/nologin
將咱們共享的文件目錄賦予用戶權限
chown rsync.rsync /usr/local/tools/
在配置文件中定義了密碼文件,咱們將認證用戶和密碼寫入該文件中
echo "slave:lzk.1995" > /etc/rsync.password
因爲該文件是有咱們認證的信息,因此要給最小的權限最安全 chmod 600 /etc/rsync.password
這時,咱們的客戶端就配置好了。
咱們在客戶端也須要建立rsync.password文件,當同步數據時,能夠不顯示密碼提示
echo "lzk.1995" > /etc/rsync.password
給該文件賦予最小最安全的權限
chmod 600 /etc/rsync.password
配置到此,咱們即可以經過客戶端像服務器端推拉數據了
[root@node2 /]# rsync -avz slave@192.168.12.237::lzk /usr/local/tls/
Password:
能夠看出如今仍是須要密碼,咱們添加格外參數
[root@node2 /]# rsync -avz slave@192.168.12.237::lzk /usr/local/tls/ --password-file=/etc/rsync.password
receiving file list ... done
./
memeda
sent 125 bytes received 870686 bytes 1741622.00 bytes/sec
total size is 789158893 speedup is 906.23
注意:sync -avz slave@192.168.12.237::lzk /usr/local/tls/ --password-file=/etc/rsync.password
上面標紅的字母在ip後面是兩個冒號,scp則是一個。另外lzk和服務器端配置文件中[lzk]是對應的。