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
相关文章
相关标签/搜索