vsftp服务器同步文件

首先vsftp同步文件,并没有好的解决方案,网上有一些软件是可以定时同步文件的,我是用的是linux上的一款工具Rsync

首先先了解一下Rsync与scp的区别:点我

1.安装Rsync

两种安装方式:1:源代码编译安装,2:yum安装,因为我的虚拟机可以连接外网,所以我是使用yum安装,两台都要安装

[[email protected] /]# yum install rsync

安装完成后,输入命令 rsync ,如图说明安装成功

2.修改主从服务器配置文件

[[email protected] /]# vim /etc/rsyncd.conf 

将如下内容复制或替换进去

#工作中指定用户(可以不指定为0)

uid = 0

gid = 0

#相当于黑洞.出错定位

use chroot = no

#有多少个客户端同时传文件

max connections = 200

#超时时间

timeout = 300

#进程号文件

pid file = /var/run/rsyncd.pid

#日志文件

lock file = /var/run/rsync.lock

#日志文件

log file = /var/log/rsyncd.log

#模块开始

#模块名称随便起(可以是多个)

[home]

#需要备份的目录

path = /home

#表示出现错误忽略错误

ignore errors

#表示网络权限可写(本地控制真正可写)

read only = false

#这里设置IP或让不让同步

list = false

#指定允许的网段(即主ftp服务器)

hosts allow = 192.168.81.3

#拒绝链接的地址,一下表示没有拒绝的链接。

hosts deny = 0.0.0.0/32

#不要动的东西(默认情况)

#虚拟用户

auth users = rsync_backup

#虚拟用户的密码文件

secrets file = /etc/rsync.password

其中标红的部分一定要注意:

第一个标红的部分表示:模块名称,之后使用rsync传输文件要用到

第二个标红的部分表示:模块根路径,这个路径一定要存在否则会报错 错误为:@ERROR: chdir failed

第三个标红的部分表示:允许哪些地址来使用rsync请求,多个地址之间使用逗号分隔

第四个标红的部分表示:密码文件

3.备份服务器配置虚拟用户的密码文件

[[email protected] /]# echo "rsync_backup:123456" >/etc/rsync.password

[[email protected] /]# cat /etc/rsync.password

rsync_backup:123456 #注:rsync_backup为虚拟用户,123456为这个虚拟用户的密码

[[email protected]-slave /]# chmod 600 /etc/rsync.password #为密码文件提权,增加安全性

4、主服务器配置虚拟用户密码

[[email protected] ~]# echo "123456" >/etc/rsync.password

[[email protected] ~]# cat /etc/rsync.password

123456 #注意:这里只要写密码即可,切记。

[[email protected] ~]# chmod 600 /etc/rsync.password

5、准备工作

1.启动Rsync服务端(即备用服务器)

[[email protected] /]# rsync --daemon --config=/etc/rsyncd.conf

先说明一下,这种启动方式很麻烦,之后关闭重启需要 使用kill -9 关闭进程,然后再删除进程文件,才能重启,后面会使用脚本来启动rsync

2.如前面的配置文件所述(第二个标红处),在备份服务器建立【第二个标红处】上的路径,也就是说 ,我需要建立 /home 目录

3.在主服务器上建立任意文件夹,文件

6:测试

命令:

[[email protected] /]# rsync -avz /home/pic [email protected]192.168.81.4::home --password-file=/etc/rsync.password

命令的含义是 将主服务器/home/pic 目录下的文件,文件夹同步到从服务器上的 home模块中 注意标青色的部分,对照,上面的标红的第一部分,好了,如果出现如下所示,表示同步成功,便可以去看从服务器中的文件了

7.编写同步脚本脚本

[[email protected] /]# vim /usr/local/bin/rsync_push.sh
#!/bin/bash
rsync -avz /home/pic [email protected]192.168.81.4::home --password-file=/etc/rsync.password

将脚本加入crontab

[[email protected] /]# crontab -e

加入如下代码:

*/1 * * * * /usr/local/bin/rsync_push.sh

以上代码表示,每分钟执行一次rsync同步脚本  

8.使用脚本启动关闭rsync

[[email protected] pic]# vim /etc/init.d/rsync 

将如下内容复制粘贴

#!/bin/bash 

#this script for start|stop rsync daemon service
#date:2012/2/13 

status1=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v ‘grep‘)
pidfile="/var/run/rsyncd.pid"
start_rsync="rsync --daemon --config=/etc/rsyncd.conf" 

function rsyncstart() { 

    if [ "${status1}X" == "X" ];then 

        rm -f $pidfile       

        ${start_rsync}   

        status2=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v ‘grep‘) 

        if [  "${status2}X" != "X"  ];then 

            echo "rsync service start.......OK" 

        fi 

    else 

        echo "rsync service is running !"    

    fi
} 

function rsyncstop() { 

    if [ "${status1}X" != "X" ];then 

        kill -9 $(cat $pidfile) 

        status2=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v ‘grep‘) 

        if [ "${statusw2}X" == "X" ];then 

            echo "rsync service stop.......OK"
        fi
    else 

        echo "rsync service is not running !"    

    fi
} 

function rsyncstatus() { 

    if [ "${status1}X" != "X" ];then 

        echo "rsync service is running !"   

    else 

         echo "rsync service is not running !"  

    fi 

} 

function rsyncrestart() { 

    if [ "${status1}X" == "X" ];then 

               echo "rsync service is not running..." 

               rsyncstart
        else 

               rsyncstop 

               rsyncstart    

        fi
}  

case $1 in 

        "start")
               rsyncstart
                ;; 

        "stop")
               rsyncstop
                ;; 

        "status")
               rsyncstatus
               ;; 

        "restart")
               rsyncrestart
               ;; 

        *)
          echo
                echo  "Usage: $0 start|stop|restart|status"
          echo
esac

给脚本设置可执行权限:

[[email protected] pic]# chmod a+x /etc/init.d/rsync

启动命令:

[[email protected] /]# service rsync start

停止命令

[[email protected] /]# service rsync stop

原文地址:https://www.cnblogs.com/kanyun/p/8480053.html

时间: 2024-10-26 01:00:35

vsftp服务器同步文件的相关文章

linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)

inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm 原文地址:https://www.cnblogs.com/ccw869476711/p/9007156.html

vsftp服务器被动传输文件配置

vsftp服务器被动传输文件配置: iptables设置 vi /etc/sysconfig/iptables 添加规则 -A INPUT -p tcp -m multiport --dport 21,10045:10090 -j ACCEPT 添加iptables内核模块 modprobe ip_nat_ftp 编辑iptables模块加载文件 vi /etc/sysconfig/iptables-config IPTABLES_MODULES="ip_nat_ftp" 重启ipta

rsync+inotify在linux下的多服务器同步

本次采用三台centos7服务器进行同步演示. 结构图如下 提示:三台服务器都先允许873端口的防火墙配置 [[email protected] rsync]# iptables -I INPUT -p tcp --dport 873 -j ACCEPT 一.源服务器配置 1.安装rsync [[email protected] rsync-3.1.3]# cd /root/package/rsync-3.1.3/ [[email protected] rsync-3.1.3]# ./confi

sersync实现多台服务器实时同步文件

基本架构 如上图所示,线程组线程是等待线程队列的守护线程,当队列中有数据的时候,线程组守护线程逐个唤醒,当队列中inotify事件较多的时候就会被全部唤醒一起工作.这样设计的目的是能够同时处理多个inotify事件,重发利用服务器的并发能力(核数*2+2). 之所以称之为线程组线程,是因为每个线程在工作的时候,会根据服务器的数量建立子线程,子线程可以保证所有的文件与各个服务器同时同步,当要同步的文件较大的时候,这样设计可以保证各个远程服务器可以同时获得要同步的文件. 服务线程的作用有三个,首先是

rsync+inotify实现服务器间文件的实时同步

rsync虽然可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了我的需求,同步数据实时性的问题,下面便看我娓娓道来. 一) lists Ip Status Cp  PATH App 192.168.1.1 Server /data Rsync-server 192.168.1.2 Client /OM/logs/data Rsync-client+

cwRsync window下的跨服务器的文件同步

cwRsync 是window下的文件同步软件,可以跨服务器运行,第一次运行的时候是全部备份同步,之后的同步采用的是增量同步 这个软件分为服务端和客户端. 服务器是需要同步的文件源, 客户端相当于是备份的服务器. window下软件的安装,没什么需要注意的,服务端的安装中间有一个步骤是输入用户名和密码,这个地方需要修改,并自己记录. 服务端安装成功后,会有一个window服务,记得手动启动. 1.服务端的操作 首先打开安装目录中的rsyncd.conf文件,这是唯一关键的设置. use chro

linux下rsync+inotify实现服务器之间文件实时同步

先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所

rsync + inotify 打造多服务器间文件实时同步

在上篇文章ssh无密码登陆服务器的基础之上,可以利用rsync + Inotify 在多服务器间实现文件自动同步. 如下测试机基于三台服务器做的,内网IP分别如下: 172.16.3.91    (主机) 172.16.3.92 (备份机1) 172.16.3.89 (备份机2) 现在想对主机上的/opt/sites/yutian_project目录下相关文件的任何操作同步到2台备份机上. 1.安装rsync 在三台机器上分别检查是否安装了rsync [[email protected] ~]#

服务器间文件实时双向同步(rsync+inotify)

场景: 主从服务器项目文件实时双向同步(参考:http://www.xcx1024.com/ArtInfo/3026389.html) 一.rsync安装 yum在线: yum install -y rsync 离线: cd /usr/local wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz tar -zxvf rsync-3.1.2.tar.gz cd rsync-3.1.2 ./configure --pre