首页 > 系统相关 >rysnc实现linux与windows数据同步

rysnc实现linux与windows数据同步

时间:2022-09-05 17:45:49浏览次数:118  
标签:文件 rsync 同步 windows -- linux rysnc

一、前言

1.1目的

​ 1.1.1实现linux之间同步;

​ 1.1.2实现linux与windows之间同步;

​ 1.1.3了解windows定时任务。

1.2部署架构

rpm安装包下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=rsync

Rsync在windows使用的是cwrsync

二、服务部署

2.1部署备份服务端

在192.168.100.101上操作

检查服务安装情况

soft]# rpm -qa|grep rsync
rsync-3.1.2-10.el7.x86_64

没有安装的使用yum安装,没有的话直接用rpm包进行部署

yum -y localinstall rsync-3.1.2-10.el7.x86_64.rpm

编辑配置文件

vim /etc/rsyncd.conf
#全局配置
uid = root
gid = root
use chroot = no
max connections = 4
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#局部配置,可配置多个,用于不同网段的客户端同步到不同的目录
[linux]
path = /bak/linux/
comment = linuxbak
auth users = linux_user
uid = root
gid = root
hosts allow = 192.168.100.0/24
secrets file = /etc/rsyncd.secrets
read only = no
list = n

[windows]
path = /bak/windows
comment = windowsbak
auth users = windows_user
uid = root
gid = root
hosts allow = 192.168.100.0/24
secrets file = /etc/rsyncd.secrets
read only = no
list = n

配置密码文件

vim /etc/rsyncd.secrets
linux_user:linux1234
windows_user:windows1234

设置600权限

chmod 600 /etc/rsyncd.secrets

创建存备份文件的目录

mkdir /bak/{linux,windows} -p 

启动服务并加入开机自启

systemctl start rsyncd && systemctl enable rsyncd

在/var/log/rsyncd.log可以查看同步情况的日志

2.2部署linux客户端

在192.168.100.110上操作

2.2.1安装rsync服务

# rpm -qa|grep rsync
rsync-3.1.2-10.el7.x86_64

配置密码文件

vim /etc/rsyncd.passwd
linux1234

创建需要备份的目录

mkdir /test1
echo “111” >> /test1/1.txt
echo "nnnn" >> /test1/nohup.out
echo "nnnn" >> /test1/nohup

2.2.2推送并添加计划任务

便捷推送脚本

vim /root/scripts/rsync.sh
rsync -avztopg --password-file=/etc/rsyncd.passwd --port 873 --exclude "nohup.out" --bwlimit=1024 /test1 [email protected]::linux/192.168.100.110
chmod +x /root/scripts/rsync.sh

测试

bash /root/scripts/rsync.sh

去服务端查看(nohup.out被屏蔽了)

# ls /bak/linux/192.168.100.110/test1/
1.txt  nohup

加入计划任务没半小时执行一次

]# crontab -e
*/30 * * * * /root/scripts/rsync.sh

2.3部署windows服务端

2.3.1安装cwrsync

点击安装cwrsync服务,安装过程中需要设置服务端的用户名和密码,我们只用到推送功能,无须在意

安装在E盘下

在bin目录下新建密码文件(可能需要修改权限)

2.3.2添加推送脚本

在bin目录下新建w_rsync.bat脚本文件

注意:

不要用--password-file不然会一直提示password file must not be other-accessible需要手动输入密码才行 改用 "< "就行了,密码文件导入时需要用相对路径,绝对路径无法识别,且密码文件需要放在bin目录下

@echo off
e:
cd \ICW\bin
rsync -avztopg --exclude "nohup.out" --bwlimit=1024  /cygdrive/e/test2 [email protected]::windows/192.168.100.1 <rsync.passwd

注意:改为rsync -avztopg --exclude "nohup.out" --bwlimit=1024 [email protected]::windows/192.168.100.1 /cygdrive/e/test2 <rsync.passwd

就会将linux服务器的文件同步到windows上

2.3.3加入计划任务

Ctrl+R输入control,显示控制面板——》系统和安全——》管理工具——》任务计划程序

创建任务

设置触发器,点击新建,设置每个30分钟触发一次

点击操作——》新建,添加执行脚本

最后点击确定即可(可能有弹窗需要输入用户的密码)

2.3实时同步

2.3.1说明

可以根据业务数据实际情况选择实时、同步还是定时同步,也可以两者都用

使用inotify+rsyncd服务进行实时同步

inotify下载地址:https://sourceforge.net/projects/inotify-tools/

Linux实时同步(windows无inotify版本)

2.3.2部署inotify

tar -zxvf inotify-tools-3.13.tar.gz -C /usr/src/
cd /usr/src/inotify-tools-3.13/
]#  ./configure --prefix=/usr/local/inotify
make && make install

编写同步脚本

vim /root/scripts/inotify_rsync.sh
#!/bin/bash
host=192.168.100.101
src=/test3
des=linux/192.168.100.110
user=linux_user
/usr/local/inotify/bin/inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files
do
/usr/bin/rsync -avztopg --password-file=/etc/rsyncd.passwd --port 873 --bwlimit=10240 --delete $src $user@$host::$des
echo "${files} was rsynced" >>/var/log/rsync.log 2>&1
done

给执行权限

chmod +x /root/scripts/inotify_rsync.sh

后台启动即可,观察源地址数据变化后备份服务器上是否有变动

cd /root/scripts
nohup ./inotify_rsync.sh &

三、关于rsync

3.1介绍

Remote Sync(远程同步)

是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持连接和权限,传输之前执行压缩。

在远程同步,负责发起rsync同步操作的客户机成为发起端。而负责响应来自客户机的rsync同步操作的服务器成为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端响应对该位置具有读取权限。

3.2基本语法格式

1)本地使用:

rsync [OPTION...] SRC... [DEST]

2)通过远程 Shell 使用:

拉: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推: rsync [OPTION...] SRC... [USER@]HOST:DEST

3)访问 rsync 服务器:

拉: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
推: rsync [OPTION...] SRC... [USER@]HOST::DEST
拉: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

其中:

SRC: 是要复制的源位置

DEST: 是复制目标位置

若本地登录用户与远程主机上的用户一致,可以省略 USER@

使用远程 shell 同步时,主机名与资源之间使用单个冒号“:”作为分隔符

使用 rsync 服务器同步时,主机名与资源之间使用两个冒号“::”作为分隔符

当访问 rsync 服务器时也可以使用 rsync:// URL

“拉”复制是指从远程主机复制文件到本地主机

“推”复制是指从本地主机复制文件到远程主机

当进行“拉”复制时,若指定一个 SRC 且省略 DEST,则只列出资源而不进行复制

3.3选项参数说明

  • 选项 说明
    -a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (注意不包括 -H)
    -r, ––recursive 对子目录以递归模式处理
    -l, ––links 保持符号链接文件
    -H, ––hard-links 保持硬链接文件
    -p, ––perms 保持文件权限
    -t, ––times 保持文件时间信息
    -g, ––group 保持文件属组信息
    -o, ––owner 保持文件属主信息 (super-user only)
    -D 保持设备文件和特殊文件 (super-user only)
    -z, ––compress 在传输文件时进行压缩处理
    ––exclude=PATTERN 指定排除一个不需要传输的文件匹配模式
    ––exclude-from=FILE 从 FILE 中读取排除规则
    ––include=PATTERN 指定需要传输的文件匹配模式
    ––include-from=FILE 从 FILE 中读取包含规则
    ––copy-unsafe-links 拷贝指向SRC路径目录树以外的链接文件
    ––safe-links 忽略指向SRC路径目录树以外的链接文件(默认)
    ––existing 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件
    ––ignore-existing 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件
    -b, ––backup 当有变化时,对目标目录中的旧版文件进行备份
    ––backup-dir=DIR 与 -b 结合使用,将备份的文件存到 DIR 目录中
    ––link-dest=DIR 当文件未改变时基于 DIR 创建硬链接文件
    ––delete 删除那些接收端还有而发送端已经不存在的文件
    ––delete-before 接收者在传输之前进行删除操作 (默认)
    ––delete-during 接收者在传输过程中进行删除操作
    ––delete-after 接收者在传输之后进行删除操作
    ––delete-excluded 在接收方同时删除被排除的文件
    -e, ––rsh=COMMAND 指定替代 rsh 的 shell 程序
    ––ignore-errors 即使出现 I/O 错误也进行删除
    ––partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
    ––progress 在传输时显示传输过程
    -P 等价于 ––partial ––progress
    ––delay-updates 将正在更新的文件先保存到一个临时目录(默认为 “.tmp”),待传输完毕再更新目标文件
    -v, ––verbose 详细输出模式
    -q, ––quiet 精简输出模式
    -h, ––human-readable 输出文件大小使用易读的单位(如,K,M等)
    -n, ––dry-run 显示哪些文件将被传输
    ––list-only 仅仅列出文件而不进行复制
    ––rsyncpath=PROGRAM 指定远程服务器上的 rsync 命令所在路径
    ––password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令,通常在 cron 中连接 rsync 服务器时使用
    -4, ––ipv4 使用 IPv4
    -6, ––ipv6 使用 IPv6
    ––version 打印版本信息
    ––help 显示帮助信息
  • 若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。

  • 若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。

标签:文件,rsync,同步,windows,--,linux,rysnc
From: https://www.cnblogs.com/wangyuanguang/p/16658974.html

相关文章

  • windows安装mysql时一直卡在starting the server这一位置,解决办法
    安装mysql时一直卡在startingtheserver这一位置,解决办法:1:保持住这个页面,不用叉掉从装2:计算机—>右键—>管理。找到mysql3:右键—>属性—>登录4:点击允许服务于桌面......
  • 直接在windows系统可以上架iOS app吗
    有2种方法:1.可以通过装苹果虚拟机来运行applicationloader。不过要求系统cpu是intel的。比较耗时间,我以前折腾装了个花了一个星期才搞好。2.另外可以用第三方工具appup......
  • ipmitool for windows下载网址
    ipmitoolforwindows版本下载网址http://ipmiutil.sourceforge.net/......
  • linux 十六进制查看文件hexdump
     hexdump-Ca.txthexdump-ca.txt ......
  • Windows系统下Dos命令记录
    #切换到F:\test\目录/d参数可以直接切换,不需要先切换盘符cd/dF:\test\#创建文件夹testmdtset#删除文件夹testrdtest#创建文件test.txtcd>test.txt#......
  • Linux之定时任务crontab
      常用命令:#查看当前用户下所有的定时任务crontab-l#查看指定用户下的定时任务crontab-l-uwww#编辑定时任务crontab-e 在Linux中经常使用......
  • windows下安装composer
    原文链接:windows下安装composer–每天进步一点点(longkui.site)Composer是一个用于PHP标准格式依赖管理的应用程序。Composer允许您声明PHP项目所依赖的库并为......
  • Linux(一)——安装
    Linux(一)——安装一、VMwareWorkstationPro(一款虚拟机软件)1.下载打开网址https://www.vmware.com/cn.html跟着红框走(为了方便下载想要的版本可以提前注册一个账号......
  • Linux 用户管理
    Linux用户管理查看所有用户信息通过文件/etc/passwd查看所有用户信息:每一行对应于一个用户通过文件/etc/shadow查看所有用户信息:用于记录用户密码通过命令getent查看......
  • 设置Windows的pip镜像配置文件 pip.ini
    1.前言首先来看看有什么pip镜像地址清华https://pypi.tuna.tsinghua.edu.cn/simple豆瓣http://pypi.douban.com/simple/阿里http://mirrors.aliyun.com/pypi/simple......