7.18 Linux系统下数据同步服务rsync

回顾

设置开机自启systemctl enable sshd

由于需要修改sshd端口,停用selinux服务

Setenforce 0

关闭防火墙

Systemctl stop firewalld

Systemctl disable firewalld  //开机不自启

对称加密和非对称加密

Des 信息传输的双方使用一个密钥

Rsa 公钥和私钥 两套加密算法

使用ssh远程管理

  1. 账号密码方式

   Ssh -l 用户 -p端口 用户域名/ip地址

   Ssh -p端口 用户@ip

   如果端口默认22,不需要添加-p

   Ssh 用户@ip

   修改ssh服务端口,不允许root远程登录

   Vim /etc/ssh/ssh_conf

   #38 root

   #17 端口

   重启

   root无法远程登陆,需要其他的用户权限

   

  1. 密钥对
  1. 选择一个账户
  2. 生成公钥和私钥  ssh-keygen
  3. ~/.ssh/

     id_rsa     私钥

        Id_rsa.pub  公钥

        将公钥中的字符串追加到对方主机的对应用户的家目录的~/.ssh/authorized_key

  1. Ssh-copy-id -p9999 用户@ip

 Linux系统下数据同步服务rsync

一.概述

sync同步:强制把缓存中的数据写入磁盘

async异步:将数据放到缓存区,在周期性(一般是30s)的同步到磁盘

rsync远程同步

rsync特点

可以镜像保存整个目录树和文件系统

可以保留原有权限

二.rsync的使用

1.安装rsync

yum -y install rsync

[root@y ~]# yum -y install rsync

基本选项

  1. rsync语法

rsync -av 源数据位置  目录位置

文件的增加会同步

修改文件也会被rsync同步

文件的删除(--delete)

文件的属性

  1. 本地文件同步

在家目录中创建一些文件,将文件同步到opt下

[root@y ~]# mkdir folder

[root@y ~]# mkdir folder/f{1..3}

[root@y ~]# tree folder/

[root@y ~]# touch folder/f1/file{0..4}

[root@y ~]# tree folder/

将folder目录下的文件传递到opt

[root@y ~]# rsync -av folder/ /opt/  //folder加/将folder目录下的文件同步过去

[root@y ~]# rsync -av folder /opt/  //folder不加/把folder整个目录同步过去

rsync -R选项的应用(保留相对路径) 也会携带目录

[root@y ~]# rsync -avR folder/ /opt/(加R表示把folder目录同步过去folder加不加/都是同步folder目录)

[root@y ~]# rsync -av folder/f1/ folder/f2/

[root@y ~]# rm -rf folder/f1/file0

[root@y ~]# rsync -av --delete folder/f1/ folder/f2/

[root@y ~]# chmod g+w folder/f1/file1

[root@y ~]# rsync -av --delete folder/f1/ folder/f2/

5.远程同步-----要求对面主机也要安装rsync

向x主机/tmp目录同步数据

[root@y ~]# rsync -av folder/ root@192.168.2.12:/tmp/

在x主机里面创建一个300M的文件

[root@x ~]# dd if=/dev/zero of=/tmp/lajiwenjian bs=300M count=1

在远程主机上拉取文件

[root@y ~]# rsync -av root@192.168.2.12:/tmp/lajiwenjian /tmp/

6.rsync作为系统服务

1)Linux系统服务的思路:

对外提供服务——>端⼝监听——>==启动服务==——>启动脚本——>配置⽂件

2)[root@y ~]# systemctl start rsyncd  //启动服务

3)[root@y ~]# netstat -lntup|grep rsync  //查看端口

4)查找服务的配置文件

[root@y ~]# find / -name "rsync*conf"

/etc/rsyncd.conf

[root@y ~]# mkdir -p /app/studentweb/src/main/java/co/goho/tjj.studentweb/

[root@y ~]# touch /app/studentweb/src/main/java/co/goho/tjj.studentweb//File{0..9}.java

[root@y ~]# systemctl stop firewalld

[root@y ~]# setenforce 0

[root@y ~]# cd /app/studentweb/

[root@y studentweb]# vim /etc/rsyncd.conf

[root@y studentweb]# systemctl restart rsyncd

以上操作在y主机提供了一个针对/app/下的项目rsync服务

下次访问直接找服务

[root@x ~]# rsync -a root@192.168.2.11::  //设置是否能够检测到项目app

5)在x主机里面把rsync项目拉取过去(不需要启动rsync服务)

[root@x ~]# rsync -av root@192.168.2.11::app /tmp/

7.自动化的推送拉取文件

例如:每1min自动推送

1)找到rsync的which地址

which rsync

/usr/bin/rsync

2)编辑计划任务

crontab -e

3)然后在x主机/tmp/下查看

8.为rsyncd服务添加密码:

1)编辑vim /etc/rsync.conf

添加两个属性

auth users=user0,user1

aecrets file=/etc/rsync.secrets

[root@y ~]# vim /etc/rsyncd.conf

2)创建编辑密码  账号:密码

[root@y ~]# vim /etc/rsync.secrets 

3)必须给/etc/rsync.secrets添加权限

[root@y ~]# chmod 600 /etc/rsync.secrets   //更改密码文件权限为600

4)重启rsyncd服务

Systemctl restart rsyncd

5)在x主机上拉取文件

[root@x ~]# rsync -av zhangsan@192.168.2.11::app /tmp/

9.实现代码实时同步

1)直接安装inotify-tools(监听工具)

Yum -y install inotify-tools 监听指定目录,一旦目录发生修改,就执行指定的指令

[root@y ~]# yum -y install inotify-tools

[root@y ~]# inotifywait mr /app/

一旦inotifywait监听到目录中的改变,就直接推送

  1. 编写inotifytest.sh脚本

#!/bin/bash

/usr/bin/inotifywait -mrq -e modify,delete,create,attrib,

move /app/studentweb|while read events

do

  rsync -av /app/studentweb/  root@192.168.2.12:/tmp/

Done

3)[root@y ~]# ./inotifytest.sh  //执行脚本 文件没有改变不动,会卡那

4)[root@y ~]# touch /app/studentweb/tt.txt  //再开一个终端创建文件

监听就会动

5)让inotifytest.sh一直执行下去

[root@y ~]# nohup ./inotifytest.sh &  //在后台一直执行,不显示

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值