设为首页 收藏本站
查看: 2262|回复: 1

[linux] rsync的使用

[复制链接]
累计签到:67 天
连续签到:1 天
发表于 2019-11-28 19:49:44 | 显示全部楼层 |阅读模式
服务端:

yum install rsync xinetd -y

创建配置文件

vim /etc/rsyncd.conf

log file = /var/log/rsyncd.log              #日志存放路径

pidfile = /var/run/rsyncd.pid                #pid存放路径

lock file = /var/run/rsync.lock                #支持max connections参数的锁文件

secrets file = /etc/rsync.password        #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件

motd file = /etc/rsyncd.motd                #rsync启动时欢迎信息页面文件位置(自己创建这个文件,内容随便自定义)

[data]                                        #模块名称

path = /usr/local/mysql/data                #rsync服务端数据目录路径,即同步到目标目录后的存放路径,

comment = data                                #和模块名称一样

uid = 0                                #uid权限

gid = 0                                #gid权限

port=873                                #端口号

use chroot = no                                #默认为true,修改为no或false,增加对目录文件软连接的备份

read only = no                                #设置rsync服务端文件为读写权限

list = no                                #不显示rsync服务端资源列表

max connections = 200                        #最大连接数

timeout = 600                                #设置超时时间

auth users = test                        #执行数据同步的用户名,需要后面手动设置。可以设置多个,用英文状态下逗号隔开

hosts allow = 192.168.1.184                #允许进行同步的客户端地址,可以有多个,但是用逗号隔开

hosts deny = 192.168.1.194               #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开(如果没有禁止,就不用设置这一行)

设置密码文件

vim /etc/rsync.password

格式是:

用户:密码

chmod 600 /etc/rsyncd.conf

chmod 600 /etc/rsync.password

/etc/init.d/xinetd restart

创建rsync同步过来后的目标目录

mkdir /usr/local/mysql/data -p

元数据服务器:

查看是否支持inotify,有下列文件,就是支持

ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Jul 25 15:57 max_queued_events
-rw-r--r-- 1 root root 0 Jul 25 15:57 max_user_instances
-rw-r--r-- 1 root root 0 Jul 25 15:57 max_user_watches

yum install make gcc gcc-c++

yum install rsync xinetd -y

vim /etc/rsync.password

格式:

只写密码

wget  http://github.com/downloads/rvoi ... y-tools-3.14.tar.gz

tar xf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14

./configure --prefix=/usr/local/inotify  && make && make install

vim /etc/profile

export PATH=$PATH:/usr/local/inotify/bin

source /etc/profile

添加库文件
vim /etc/ld.so.conf

/usr/local/inotify/lib

ldconfig

修改inotify默认参数(inotify默认内核参数值太小)

sysctl -w fs.inotify.max_queued_events="99999999"

sysctl -w fs.inotify.max_user_watches="99999999"

sysctl -w fs.inotify.max_user_instances="65535"

参数说明:

max_queued_events:
inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确

max_user_watches:
要同步的文件包含多少目录,可以用:find /Data/xqsj_upload -type d | wc -l 统计这些源目录下的目录数,必须保证max_user_watches值大于统计结果(这里/Data/xqsj_upload为同步的源文件目录)

max_user_instances:
每个用户创建inotify实例最大值

启动:

/etc/init.d/xinetd restart

lsof -i:873

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

xinetd  31135 root    5u  IPv6  69298      0t0  TCP *:rsync (LISTEN)

测试:
在源服务器上执行:

第一次全量同步:

rsync -avz --port=873 --progress --delete /usr/local/mysql/data/ test@192.168.1.187::data  --password-file=/etc/rsync.password


rsync -avz --port=873 --progress --delete /usr/local/mysql/data/ test@192.168.1.187::data  --password-file=/etc/rsync.password

待第一次rsync全量同步完成后,就进行rsync+inotify实时同步脚本操作

自动同步数据:

vim rsync_inotify.sh

#!/bin/bash
SRCDIR=/data/
USER=test
IP=192.168.1.187
DESTDIR=data
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $SRCDIR | while read file
do
/usr/bin/rsync -avz --port=873 --progress --delete-before $SRCDIR $USER@$IP::$DESTDIR --password-file=/etc/rsync.password
echo " ${file} was rsynced" >> /tmp/rsync.log 2>&1
done


后台执行:

nohup sh rsync_inotify.sh &

查看是否执行:

ps -ef |grep inotify
root      31195   1408  0 17:41 pts/0    00:00:00 sh rsync_inotify.sh
root      31196  31195  0 17:41 pts/0    00:00:00 /usr/local/inotify/bin/inotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f%e -e close_write,modify,delete,create,attrib,move /data/
root      31197  31195  0 17:41 pts/0    00:00:00 sh rsync_inotify.sh
root      31279   1408  0 17:52 pts/0    00:00:00 grep inotify

测试是否能够自动同步数据:

比如在源目录/data/中创建一个文件或目录,会自动实时同步到目标机器192.168.1.187的目标目录/usr/local/mysql/data中。

参数说明:

所以,最好在使用rsync同步命令的时候,后面跟-avpgolr参数组合(将上面的-avz改成-avpgolr)
-a:递归
-v:打印详细过程
-p:保持文件属性
-g:文件所属组不变
-o:文件所属者不变
-l:软连接属性
-r:同步目录时的参数



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-989044-1-1.html 上篇帖子: [Linux]gocron定时任务平台的部署 下篇帖子: 2019年最新大数据人工智能研修课程
累计签到:8 天
连续签到:1 天
发表于 2019-12-25 22:38:28 | 显示全部楼层
不错~~  很详细的资料~~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表