1. 程式人生 > >日常運維(七)

日常運維(七)

rsync

rsync

文件同步工具 rsync

rsync -av /etc/passwd /tmp/1.txt
                    `-v 可以查看過程`
rsync  -av /etc/passwd  [email protected]:/tmp/1.txt

遠程同步

本機  -av  src源目錄   DEST 目標文件或者目錄
遠程  -av  SRC  user@ip:DEST
反遠程   -av  user@ip:SRC  DEST
                         -av  SRC  user@ip::DEST  
                        -av  user@ip::SRC  DEST

rsync 常用選項

`-a  :包含-rtplgoD選擇
`-r   :同步目錄時要加上,類似cp時的-r 選項
`-v   :同步時顯示一些信息,讓我們知道同步的過程
`-l    :保留軟連接
`-L   :加上該選項後,同步軟連接是會把源文件給同步
`-p   :保持文件的權限屬性  prem權限
`-o   :保持文件的屬主
`-g   :保持文件的屬組
`-D   :保持設備文件信息
`-t    :保持文件的時間屬性
`- -delte  :刪除DEST中SRC沒有的文件 (保持一模一樣的)
`- -exclude :過濾指定文件,如--exclude "logs"會把文件名包含logs的文件或者目錄過濾掉,不同步 (支持通配符)
`-P   :顯示同步進程,比如速率,比-v更加詳細
`-u   :加上選項後,如果DEST中文件比SRC新,則不同步
`-z   :傳輸時壓縮 
`-e   :指定端口  -e  "ssh -p 22"
`- -port 8730 :指定端口 #rsync --port 8730 192.168.100.100::

rsync 通過ssh 方式同步傳輸
rsync -av root/test/  192.168.100.100:/tmp/test2/
rsync -av -e "ssh -p 22" test1/192.168.100.100:/tmp/1

rsync 通過服務的方式同步
要編輯配置文件 /etc/rsyncd.conf
啟動服務 rsync --daemon

格式:
rsync -av test1/192.168.100.100::module(模塊名)/dir(目錄)/

檢查端口是否通的命令

telnet 192.168.100.100 873

rsyncd.conf

兩個::冒號就是使用的rsyncd 服務

port=873  #默認端口873
log file=/var/log/rsync.log  #日誌文件
pid file=/var/run/rsyncd.pid   #制定pid 文件
address=192.168.100.100  #指定啟動rsyncd服務的IP
[test]  #模塊名字
path=/tmp/rsync    #指定數據存放的路徑。
use chroot=true      #安全模式,建議設置成false,
max connections=4  #指定最大的連接數,默認是0,即沒有限制
read only=no    #安全選項,如果為true,則不能上傳到該模塊指定的路徑下。
list =true   #查看服務器上可用模塊,設定為true則列出,false則隱藏
uid=root    #指定傳輸文件時以哪個用戶/組的身份傳輸。
gid=root
auth users=test     #指定傳輸時要使用的用戶名,可以是nobody,最小權限用戶
secrets file =/etc/rsyncd.passwd  #連接需要輸入密碼
hosts allow=192.168.100.102  #定義允許連接白名單,加空格或者/24

rsyncd.conf , 置文件詳解

port:
指定在哪個端口啟動 rsyncd服務,默認是873端口。

log file: 
指定日誌文件。

pid file: 
指定pid文件,這個文件的作用涉及服務的啟動、停等進程管理操作。

address:
 指定啟動rsyncd服務的IP。
 假如你的機器有多個IP就可以指定由其中一個啟動rsy.ncd服務,如果不指定該參數,默認是在全部IP上啟動。

[ ... ]:
 指定模塊名,裏面內容自定義。

path :
指定數據存放的路徑。

use chroot = true | false: 
表示在傳輸文件前首先chroot到path參數所指定的目錄下。
這樣做的原因是實現額外的安全防護,但缺點是需要以roots權限,並且不能備份指向外部的符號連接所指向的目錄文件。
默認情況下chroot值為true,如果你的數據當中有軟連接文件,建議設置成false。

max connections:
指定最大的連接數,默認是0,即沒有限制。

read only ture | false: 
如果為true,則不能上傳到該模塊指定的路徑下。

list:
表示當用戶查詢該服務器上的可用模塊時,該模塊是否被列出,設定為true則列出,false則隱藏。
#rsync - -port 8730 192.168.100.100::   true 列出

uid / gid :
指定傳輸文件時以哪個用戶/組的身份傳輸。

auth users: 
指定傳輸時要使用的用戶名。

secrets file: 
指定密碼文件,該參數連同上面的參數如果不指定,則不使用密碼驗證。
註意該密碼文件的權限一定要是600。格式: 用戶名:密碼

hosts allow: 
表示被允許連接該模塊的主機,可以是IP或者網段,如果是多個,中間用空格隔開。
當設置了auth users和secrets file後,客戶端連服務端也需要用用戶名密碼了。
若想在命令行中帶上密碼,可以設定一個密碼文件。

rsync-avL [email protected]::test/test  /tmp/test8/ - -password-file=/etc/pass。
其中/etc/pass內容就是一個密碼,權限要改為600

開啟服務

rsync - -daemon

關閉服務

killall rsync     

##########killall工具要yum安裝psmisc

secrets file =  指定密碼文件,該參數連同上面的參數如果不指定,則不使用密碼驗證。
註意該密碼文件的權限一定要是600。格式: 用戶名:密碼

`- -password-file=/密碼路徑
#rsync -avP - -port 8730 - -password-file=/root/passwd /etc/passwd [email protected]::huidou/3ppp

rsync 客戶端
直接寫密碼
rsync 服務端 密碼
用戶名:密碼
權限設置都為 chmod 600 flie

日常運維(七)