rsync和rsync後臺模式

注意(有軟鏈接的rsync同步,-L能夠把軟連接裏的當普通文件同步。-l 只同步軟連接不一樣步軟連接指向的目錄或文件) git

rsync命令詳解vim

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啓動ssh

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

rsync daemon例子1(無密碼)ui

[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(有密碼)spa

#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  #這個密碼文件必須跟執行人是同一個全部者
相關文章
相關標籤/搜索