zoukankan      html  css  js  c++  java
  • rsync 同步目录到linux

    0 背景

    目前因为被拉壮丁,接手一个C/C++的项目,作为一个写java代码的垃圾,搭建C/C++的环境完全是懵逼的,并且为了贴近真是的运行环境,果断使用虚拟机搭建了一个centos7的环境。

    所以,目前的操作是,在windows下进行代码的编写,然后想通过同步到虚拟机上,进行打包和测试。哦豁,问我为啥不使用IDE工具来在本地来编写测试,我曾经也这么天真过,但旧项目用的依赖包实在是太多了,其中一些不提供windows版本... 无奈只能在centos上进行测试了

    前人栽树,后人乘凉,本文主要是参考文章 blog,以及结合自己实践中的步骤

    1 准备工具

    • cwrsync_6.2.1_x64_free 可能需要science上网,如果打不开,聪明的你肯定可以在其他地方找到
    • 一台centos7虚拟机

    2 rsync的服务端

    rsync安装和服务启动

    # 检查是否安装
    rpm -qa|grep rsync
    
    # 没有就安装上去
    yum install -y rsync
    
    # 设置为开机启动,现在启动它
    systemctl enable rsyncd
    ssytemctl start rsyncd
    

    服务端的配置文件

    rsync涉及的配置主要是下面几个

    • /etc/rsyncd.conf: rsync服务端配置文件
    • /etc/rsyncd.passwd :进行密码验证的账号信息
    • /home/linxd: 待同步的目标目录,就是你要将windows上的文件,同步到哪个目录

    /etc/rsyncd.conf目录的东西比较多,不懂的话可以通过man rsyncd.conf命令来查看具体有哪些配置可以配置,这里我贴上我使用的配置吧,也十分的简单

    # /etc/rsyncd: configuration file for rsync daemon mode
    # See rsyncd.conf man page for more options.
    
    max connections = 4
    pid file= /var/run/rsyncd.pid
    log file=/var/log/rsync.log
    exclude = lost+found/
    ignore nonreadable = yes
    
    [demo]
           uid=root
           gid=root
           path = /home/linxd
           comment = ftp export area
           use chroot=true
           read only=no
           list=true
           auth users=linxd:rw
           secrets file=/etc/rsyncd.passwd
           hosts allow=*
    

    创建密码文件

    echo "linxd:123456" > /etc/rsyncd.passwd
    
    #更改权限为600,这点很重要,一定要做
    chmod 600 /etc/rsyncd.passwd
    

    启动rsync服务systemctl start rsyncd

    这里我们需要确认rsync的默认端口873是否可以在windows下访问,所以我们需要在windows下运行telnet命令,打开控制台 win+R,输入cmd。
    telnet 192.168.56.101 873
    如果界面可以很顺利的出现下面这个,就表示可以了
    @RSYNCD: 31.0

    centos7的防火墙也需要记得关闭掉,最好是直接禁用掉,特别像是我的破电脑,没什么被黑的价值,防火墙直接禁用掉。

    另外可能会有SElinux的问题,可以直接修改文件/etc/selinux/config,里面会有三种级别,可以使用disabled,省去一些麻烦。

    SELINUX=disabled
    SELINUXTYPE=targeted
    

    3 windows客户端

    一开始我们下载的windows的rsync的软件安装一下,然后编写一个bat文件,这样你每次双击就可以了,当然网上也有老哥是添加到系统的定时任务里去了,这个都是可以的。
    可以将安装的windows版本的rsync加入到环境变量里去

    password.txt文件的内容就是你在linux上设置的密码

    # rsync.exe -avPz --port 873 --delete --password-file 这些基本都是固定的, 然后就是你本地的文件夹  linux上的文件夹 用户@ip::模块名称
    rsync.exe -avPz --port 873 --delete --password-file=/cygdrive/e/cwrsync_6.2.1/password.txt /cygdrive/f/workspace/demo  linxd@192.168.56.101::demo
    

    到此为止,你就可以很开心的吧本地的目录,同步到centos机器上去了

  • 相关阅读:
    怎样理解 DOCTYPE 声明
    怎样理解 Vue 组件中 data 必须为函数 ?
    怎样在 Vue 里面使用自定义事件将子组件的数据传回给父组件?
    怎样在 Vue 的 component 组件中使用 props ?
    怎样创建并使用 vue 组件 (component) ?
    怎样在 Vue 中使用 v-model 处理表单?
    怎样理解 MVVM ( Model-View-ViewModel ) ?
    怎样在 Vue 中使用 事件修饰符 ?
    怎样在 Vue 里面绑定样式属性 ?
    怎样使用 Vue 的监听属性 watch ?
  • 原文地址:https://www.cnblogs.com/westlin/p/14793048.html
Copyright © 2011-2022 走看看