linux下安插rsync文件同步服务【韦德国际1946官网】

2019-09-10 15:59 来源:未知

rsync服务器与客户端配置文件

rsync 同步推送网上看过很多方法,实现免密同步只可以通过添加ssh-key免登录或者以配置文件启动的守护进程启动;

服务端配置:
前提:安装了xinetd和rsync

 

例子:

  1. 修改/etc/xinetd.d/rsync文件
    将下列内容中disable=yes改为no
    service rsync
    {
            disable = yes
            socket_type     = stream
            wait            = no
            user            = root
            server          = /usr/bin/rsync
            server_args     = --daemon
            log_on_failure  = USERID
    }
  2. 配置rsync自动启动
    执行命令:chkconfig rsync on
    执行命令chkconfig rsync --list后可以看到如下内容:
    rsync           on
     
    3. 配置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
     
    [test]  (这个是模块名称,可以配置多个模块分别对应服务端不同的目录。)
    path = /test  (这个是该模块对应的服务端路径)
    comment = This is test
    auth users = rsync  (客户端连接上来进行同步所使用的用户名,可以任意取名,但是后面的配置要对应。)
    uid = root
    gid = root
    secrets file = /home/rsync.ps  (口令文件,里面保存同步所使用的用户名和口令)
    read only = no
    list = no
     
    4 确保etc/services中rsync端口号正确
    一般为如下内容:
    rsync           873/tcp                         # rsync
    rsync           873/udp                         # rsync
     
    5 配置rsync密码(在上边的配置文件中已经写好路径)/home/rsync.ps(创建这个文件,名字随便写,只要和上边配置文件里的一致即可),格式为(用户名:密码),一行一个用户。
    例如:
    rsync:rsync
     
    6 配置rsync密码文件权限
    chown root.root rsync.ps
    chmod 400 rsync.ps
     
    7 启动配置
    service xinetd restart
    Stopping xinetd:                                           [  OK  ]
    Starting xinetd:                                           [  OK  ]
     
    8 检查rsync是否启动
    执行命令:lsof -i :873
    正常情况应该显示如下内容:
    COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
    xinetd  4396 root    5u  IPv4 633387       TCP *:rsync (LISTEN)
     
    客户端配置:
  3. 设定口令文件/home/rsync.ps ,这个文件随便起名,放在任意目录都可以,和服务端的配置没关系,但是内容只有一个密码,并且是要和服务端一致。
    根据上面服务端的配置,这里的内容应该是:
    rsync
    韦德国际1946官网,然后修改文件权限:
    chown root.root rsync.ps  
    chmod 600 rsync.ps         
  4. 将rsync指令放入计划任务(crond),假设服务端ip为192.168.1.100
    先测试是否可以使用
    从服务端取数据:rsync -avz --progress --delete --password-file=/opt/rsync.ps  [email protected]::test  /opt/web/public/
    向服务端发数据:rsync -avz --progress --delete --password-file=/opt/rsync.ps  /opt/web/public/  [email protected]::test
    修改/etc/crontab文件,增加类似如下内容(每分钟执行一次,从服务端取数据):
    * * * * * rsync -avz --progress --delete --password-file=/opt/rsync.ps  [email protected]::test  /opt/web/public/  

目标服务器端配置文件

假设服务器A作为源服务器,服务器B作为备份服务器

作者 surelei

 

1、服务器A只需要配置/etc/rsync.pass设定的密码就可以进行同步

# echo "密码" > /etc/rsync.pass

#chmod 600 /etc/rsync.pass

前提:安装了xinetd和rsync 1. 修改/etc/xinetd.d/rsync文件 将下列内容中disable=yes改为no service rsync { disable = yes socket_type = stream wait...

[rsyncd.conf]

2、服务器B需要配置给rsync读取的配置文件/etc/rsyncd.conf和/etc/rsync.pass设定用户和密码

# vim /etc/rsyncd.conf (下面会给出参考模板)

启动rsync服务:

#rsync --daemon --config=/etc/rsyncd.conf

服务器A同步命令:

rsync -avz --delete --progress --password-file=/etc/rsync.pass  '本地文件' 用户@服务器A IP::配置的模块名 本地同步的路径

需要说明一下的是配置的模块 本地相对的路径是怎么回事

假如使用的模块是:www                                目标路径是:/data/test/haha/

那么www模块的path=/data/                            本地相对路径就是 /test/haha/  ,即写成:

rsync -avz --delete --progress --password-file=/etc/rsync.pass  '本地文件' 用户@服务器A IP::www/test/haha/


 

3、配置文件/etc/rsyncd.conf详解:

全局参数

uid = root//运行RSYNC守护进程的用户

gid = root//运行RSYNC守护进程的组

use chroot = no //不使用chroot

max connections = 4 // 最大连接数为4

strict modes =yes//是否检查口令文件的权限

port = 873//默认端口873

注释:下面这3个文件是安装完RSYNC服务后自动生成的文件

pid file = /var/run/rsyncd.pid//pid文件的存放位置

lock file = /var/run/rsync.lock //锁文件的存放位置

log file = /var/log/rsyncd.log//日志记录文件的存放位置

模块参数

[backup] //这里是认证的模块名,在client端需要指定

path = /home/backup///需要做镜像的目录,不可缺少!

comment = This is a test //这个模块的注释信息

ignore errors//可以忽略一些无关的IO错误

read only = yes// 只读

list = no //不允许列文件

auth users = hening //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关

secrets file = /etc/rsync.pass //密码和用户名对比表,密码文件自己生成

#hosts allow = 192.168.1.1, 10.10.10 .10//允许主机

#hosts deny = 0.0.0 .0/0 //禁止主机

#transfer logging = yes


uid = nobody

附 rsync inotify-tools实现实时同步更新脚本

一、下载安装inotify-tools

wget

tar zxvf inotify-tools-3.14.tar.gz

cd inotify-tools

./configure && make && make install

二、同步脚本

Server B的inotify监控脚本

(监控客户端修改同步上传到服务器端)

#!/bin/bash

src=/data/tomcat8080/webapps/

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $src | while read file

do

rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pas $src root@192.168.100.247::wwwroot

echo "$src was rsynced"

done


文中有不妥或者错误的地方还望指出,以免误人子弟。参考总结自百度。

再次感谢您耐心的读完本篇文章。

gid = nobody

use chroot = no

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

 

#模块名

[web1]

#目标服务器目录

path = /usr/local/rubyzhu/test

comment = web1 file

ignore errors = yes

read only = no

write only = no

list = false

hosts allow = 127.0.0.1

hosts deny = *

uid = root

gid = root

#认证用户名,与操作系统用户无关

auth users = backup

secrets file = /etc/rsyncd.secrets

 

客户端配置文件(被监控系统)

 

[inotify-tool.sh 自写脚本]

 

#!/bin/sh

src=/usr/local/rubyzhu/test1/  #inotify监控的目录

des1=web1  #rsync服务器模块

 

ip1=127.0.0.1        #目标服务器的IP地址

 

user=backup  #目标服务器的rsyncr的web1模块的用户名,跟操作系统用户名无关  

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f'

-e close_write,modify,create,attrib,delete

${src}

| while read file

         do

                 rsync -avz --delete --progress --password-file=/etc/server.pass ${src} ${user}@${ip1}::${des1} &&

                 #rsync -avz --delete --progress --password-file=/etc/server.pass ${src} ${user}@${ip2}::${des2} &&

                 echo "${src} was rsynced"

                 echo "-----------------------------------------------------"

         done

目标服务器端配置文件 [rsyncd.conf] uid = nobody gid = nobody use chroot = no max connections = 10 strict modes = yes pid file = /va...

TAG标签: 韦德娱乐1946
版权声明:本文由韦德娱乐1946_韦德娱乐1946网页版|韦德国际1946官网发布于韦德国际1946官网,转载请注明出处:linux下安插rsync文件同步服务【韦德国际1946官网】