rsync和rsync后台模式


注意(有軟連接的rsync同步,-L可以把軟鏈接里的當普通文件同步。-l 只同步軟鏈接不同步軟鏈接指向的目錄或文件) 

rsync命令詳解

rsync  
-a 歸檔模式 ,表示以遞歸方式傳輸文件,並保持所有屬性,等同於-rlptgoD,-a選項后面可以跟一個--no-OPTION這個表示關閉-rlptgdoD中的某一個例如-a --no-l等同於-rptgoD -r 對於目錄以遞歸模式處理,主要針對目錄,傳輸的是目錄必須加-r -v 打印一些信息出來,比如速率,文件數量等。 -l 保留軟連鏈 -L 向對待常規文件一樣處理軟鏈接,如果是src(源機)中有軟鏈接文件,剛加上該選項后會把軟連接指向的目標文件拷貝到dst(目標機) -p 保持文件權限 -o 保持文件屬主信息 -g 保持文件屬組信息 -D 保持 設備文件信息 -t 保持 文件時間信息 --delete 刪除那些dst中src沒有的文件 --exclude=PATTERN指定排除不需要傳輸的文件,等號后面跟文件名,可以是萬用字符模式(如*.txt)
  PATTERN路徑是相對弄要同步的路徑如(rsync -avPz --exclude=zabbix /opt/sh 10.8.64.99::backup/tmp/ #排除的是/opt/sh/zabbix)
--progress或-P 在同步的過程中可以看到同步的過程狀態,比如統計要同步的文件數量,同步的文件傳輸速度等等。。。 --bwlimit=10 (限制傳輸速度) -u 加上這個選項后將會把DST中比SRC還新的文件排除掉,不會覆蓋 -z 壓縮 傳輸的過程中會壓縮,我們並不會感知。 文件到了目標機器上我們看到的是一樣的。 (工作中常用的幾個 -a -v --delete --exclude ,請熟記他們)

rsync幾種寫法:

rsync同步ssh隧道方式:#后面的目錄是目標地址
    例1:rsync -avPz 192.168.183.109:/tmp/1.txt /tmp/   拉 遠程到本機
    例2:rsync -avPz /tmp/1.txt  192.168.183.109:/tmp/   推  本機到遠程
    例3:rsync -avPz -e "ssh -p 10022" /tmp/1.txt  192.168.183.109:/tmp/   推  本機到遠程  端口不     是22的情況
rsync同步daemon方式
    例4:不需要密碼   學ssh免密碼登陸
    rsync -auvPz --bwlimit=10 (限制傳輸速度) net-snmp-5.7.3.tar.gz test@113.204.101.197::test --password-file=/home/hanxiaohui/.rsync.password
    例5:查詢rsyncd 可用模塊   (list參數,yes會顯示,no不會顯示)
    rsync -list --port 873  192.168.186.118::

rsync daemon 配置文件詳解

port=873  這是默認端口,要用其它端口改這個
log file=/var/log/rsync.log  指定日志文件
pid file=/var/run/rsyncd.pid 指定pid ,啟支停止等進程管理操作
#address=192.168.0.10  指定啟動rsyncd服務的ip,假如你的機器 有多個ip,就可以指定其中一個啟動rsyncd服務,默認是在全部ip上啟動
[test]  指定模塊名,自定義
path=/root/rsync 數據存放路徑(路徑不存在會報@ERROR: chroot failed)
use chroot=true  true|false 默認是true,意思是在傳輸文件以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全保護,但是缺點是需要以root權限,並且不能備份指向外部的符號連接所指向的目錄文件。默認情況下chroot值為true,如果你的數據當中有軟連接文件的話建議設置成false.(待驗證    )
max connections=4  指定最大的連接數,默認是0即沒有限制。
read only=no 如果為true則不能上傳到該模塊指定的路徑下。
list=true 指定當用戶查詢該服務器上的可用模塊時,該模塊是否被列出,設定true列出,false隱藏
uid=root
gid=root  uid/gid指定傳輸文件時,以哪個用戶/組的身份傳輸
auth users=test 指定 傳輸時要使用的用戶名
secrets file=/etc/rsyncd.passwd  指定密碼文件,該參數連同上面的參數如果不指定則不使用密碼驗證,注意該密碼文件的權限一定要是600(相對於rsync的啟動用戶)
hosts allow=192.168.183.109 192.168.55.0/24 指定被允許連接該模塊的主機,可以是Ip或者網段,如果是多個之間用空格隔開。
配置文件會為兩部分:全局,模塊   可以有多個模塊
全局:port,log file, pid file, address
其實模塊中的一些參數例如use chroot,max connetcions,uid,gid,auth users, secrets file,hosts allow都可以配置成全局的。

rsync daemon啟動

rsync --daemon --config=/etc/rsyncd.conf

rsync daemon例子1(無密碼)

[root@host1 111]# cat /etc/rsyncd.conf
#port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
uid=root
gid=root
[test]
path=/root/test
use chroot=no
max connections=50 
read only=no
list=true 
ignore errors
timeout = 600 
hosts allow=192.168.55.0/24


啟動
rsync --daemon --config=/etc/rsyncd.conf

客戶端同步
rsync -avPz /tmp/abc 192.168.55.51::test/ #把abc目錄 同步到服務端test模塊下

例2:
uid git = deploy
rsync -avPz --no-o --no-g /data/media/* 47.100.217.13::data/ #這種同步方式,目標文件的用戶和組都是deploy

rsync daemon例子1(有密碼)

#port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
uid=root
gid=root
#address=192.168.0.10
[test]
path=/root/rsync #
use chroot=true 
max connections=50 
read only=no 
list=true 
ignore errors
timeout = 600 
auth users=test 
secrets file=/etc/rsyncd.passwd 
hosts allow=192.168.183.0/24 
2.編輯secrets file,保存后要賦予600權限,如果權限不對,不能完成同步(相對於啟動rsync的用戶)
cat /etc/rsyncd.passwd      test:test123
chmod 600/etc/rsyncd.passwd     更改權限

啟動rsync
rsync --daemon --config=/etc/rsyncd.conf  啟動服務
啟動后可以查看一下日志文件,並查看端口是否啟動
cat /var/log/rsync.log      netstat -lnp | grep 873
如果 想開機啟動,請把命令
#rsync --daemon --config=/etc/rsyncd.conf 寫入到 /etc/rc.d/rc.local文件中rsyncd.conf修改配置文件 不需要重啟服務

例1:  rsync -avLpz test@192.168.183.118::test/test/ ./test1/  拉  遠程到本機
例 2: rsync -avL ./test2/ test@192.168.183.118::test/test/  推  本機到遠程
例3: 自定義端口
rsync -avL --port 8730  ./test2/ test@192.168.183.118::test/test/  推  本機到遠程
例4: 免輸密碼 1.vim /etc/pass   加入test的密碼 test123
2.修改密碼的權限  chmod 600 /etc/pass
3.在 同步的時候指定一下密碼文件
rsync -avL ./test2/ test@192.168.183.118::test/test/  --password-file=/etc/pass  #這個密碼文件必須跟執行人是同一個所有者

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM