Rsync配置及使用

介紹:

cp只能對本地文件的複製bash

wget是對遠程文件進行復制服務器

 

remote sync:ssh

能夠鏡像保存整個目錄樹和文件系統socket

能夠增量同步數據工具

能夠保留原文件的權限、時間等屬性ui

加密傳輸數據加密

可使用rcp\ssh等方式傳輸文件(也可直接經過socket傳輸)spa

支持匿名傳輸code

 

用於替代rcp的一個工具,rsync能夠經過rsh或ssh使用,也能以daemon模式去運行,在以daemon方式運行時rsync server會開一個873端口,等待客戶端去鏈接,鏈接時,rsync server會檢查口令是否相符,若經過口令查覈,則能夠經過進行文件傳輸,第一次連通完成時,會把整份文件傳輸一次,之後則就只需進行增量備份;server

 

四種模式:

一、本地模式

複製包括license目錄

rsync -av license /tmp

複製包括license目錄下內容

rsync -av license/ /tmp

二、遠程模式(使用ssh執行底層鏈接和加密傳輸)

本地複製到遠程test目錄下

rsync -av license 192.168.1.2:test

三、查詢模式(與ls命令實現的功能相似)

查看本地文件

rsync -a 192.168.1.2:test

四、服務器模式(日常說的rsync服務器就是這種,屬於C/S模式)

rsync在後臺啓動一個守護進程,這個守護進程在服務端永久運行,用於接收文件傳輸請求。客戶端能夠把文件傳輸給守護進程,也能夠向守護進程請求文件。

 

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

歸檔模式,以遞歸方式傳輸文件,並保持全部文件的屬性

-v, --verbose               increase verbosity

輸出詳細信息模式

 

服務器模式配置介紹

服務端配置

#默認沒有rsyncd.conf文件,須要手動建立

/etc/rsyncd.conf配置內容:

uid=nobody
gid=nobody
use chroot=no
max connections=20
strict modes=yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/letv/rsync/log/rsyncd.log

[log_8281]
path=/data/log/report8281
comment=8281 log file
ignore errors
read only=no
hosts allow=10.110.144.177 10.110.144.178
hosts deny=*
list=false
uid=root
gid=root
auth users=backup
secrets file=/etc/backupserver.pass

[log_8282]
path=/data/log/report8282
comment=8282 log file
ignore errors
read only=no
hosts allow=10.110.144.177 10.110.144.178
hosts deny=*
list=false
uid=root
gid=root
auth users=backup
secrets file=/etc/backupserver.pass

backupserver.pass爲密碼文件,內容:backup:password(注意:chmod 600 backupserver.pass)

注:backupserver.pass中backup爲用戶名,和rsyncd.conf中的auth users保持一致

 

啓動rsync服務端(守護進程):

/usr/bin/rsync --daemon
--config=/etc/rsyncd.conf #指定配置文件,能夠不指定
--prot=873 #指定監聽端口,能夠不指定;若是指定不爲873,客戶端鏈接時須要帶上參數--port=指定端口號

若是要開機啓動rsync,把/usr/local/rsync –daemon加入文件/etc/rc.local

 

客戶端配置

建立backupserver.pass文件,內容爲服務端配置訪問帳戶的密碼

cat backupserver.pass
password

 

從服務端拉取文件:

rsync -a backup@10.127.92.181::log_8281/sdk-report-2017-12-21.log.gz /data/ --password-file=/etc/backupserver.pass

同步目錄:

rsync -a backup@10.127.92.181::log_8282 /data --password-file=/etc/backupserver.pass

上傳文件:

rsync -a /data/sdk-report-2017-12-21.log.gz backup@10.127.92.181::log_8281  --password-file=/etc/backupserver.pass

注:

backup爲服務器端rsyncd.conf中配置的訪問帳戶;

ip爲服務端服務器ip;

log_8281爲rsyncd.conf中配置的受權id;

log_8281能夠跟目錄;

 

同步log腳本:

#!/bin/bash

myTime=$1

if [ -z $myTime ];then
    myTime=`date +'%Y-%m-%d' -d "-1 day"`
fi

#獲取IP
ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`

#上傳文件並重命名文件,加上ip後綴。${ip##*.}爲獲取ip最後一個.以後的數字
#這麼作是爲了集羣部署上傳的log名稱不會衝突
rsync -a /logs/mstore.log.$myTime backup@10.127.92.181::log_8281/log/mstore_${ip##*.}.log.$myTime --password-file=/etc/backupserver.pass --port=8088
相關文章
相關標籤/搜索