日常運維(七)
阿新 • • 發佈:2018-03-08
rsyncrsync
文件同步工具 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
日常運維(七)