vsftp服务器同步文件
首先vsftp同步文件,并没有好的解决方案,网上有一些软件是可以定时同步文件的,我是用的是linux上的一款工具Rsync
首先先了解一下Rsync与scp的区别:点我
1.安装Rsync
两种安装方式:1:源代码编译安装,2:yum安装,因为我的虚拟机可以连接外网,所以我是使用yum安装,两台都要安装
[root@master /]# yum install rsync
安装完成后,输入命令 rsync ,如图说明安装成功

2.修改主从服务器配置文件
[root@master /]# vim /etc/rsyncd.conf
将如下内容复制或替换进去
#工作中指定用户(可以不指定为0) uid = gid = #相当于黑洞.出错定位 use chroot = no #有多少个客户端同时传文件 max connections = #超时时间 timeout = #进程号文件 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/ #不要动的东西(默认情况) #虚拟用户 auth users = rsync_backup #虚拟用户的密码文件 secrets file = /etc/rsync.password
其中标红的部分一定要注意:
第一个标红的部分表示:模块名称,之后使用rsync传输文件要用到
第二个标红的部分表示:模块根路径,这个路径一定要存在否则会报错 错误为:@ERROR: chdir failed
第三个标红的部分表示:允许哪些地址来使用rsync请求,多个地址之间使用逗号分隔
第四个标红的部分表示:密码文件
3.备份服务器配置虚拟用户的密码文件
[root@slave /]# echo "rsync_backup:123456" >/etc/rsync.password [root@slave /]# cat /etc/rsync.password rsync_backup: #注:rsync_backup为虚拟用户,123456为这个虚拟用户的密码 [root@inotify-slave /]# chmod /etc/rsync.password #为密码文件提权,增加安全性
4、主服务器配置虚拟用户密码
[root@master ~]# echo "" >/etc/rsync.password [root@master ~]# cat /etc/rsync.password #注意:这里只要写密码即可,切记。 [root@master ~]# chmod /etc/rsync.password
5、准备工作
1.启动Rsync服务端(即备用服务器)
[root@master /]# rsync --daemon --config=/etc/rsyncd.conf
先说明一下,这种启动方式很麻烦,之后关闭重启需要 使用kill -9 关闭进程,然后再删除进程文件,才能重启,后面会使用脚本来启动rsync
2.如前面的配置文件所述(第二个标红处),在备份服务器建立【第二个标红处】上的路径,也就是说 ,我需要建立 /home 目录
3.在主服务器上建立任意文件夹,文件
6:测试
命令:
[root@master /]# rsync -avz /home/pic rsync_backup@192.168.81.4::home --password-file=/etc/rsync.password
命令的含义是 将主服务器/home/pic 目录下的文件,文件夹同步到从服务器上的 home模块中 注意标青色的部分,对照,上面的标红的第一部分,好了,如果出现如下所示,表示同步成功,便可以去看从服务器中的文件了

7.编写同步脚本脚本(主服务器)
[root@master /]# vim /usr/local/bin/rsync_push.sh
#!/bin/bash
rsync -avz /home/pic rsync_backup@192.168.81.4::home --password-file=/etc/rsync.password
赋予脚本可执行权限
[root@master bin]# chmod a+x /usr/local/bin/rsync_push.sh
将脚本加入crontab(主服务器)
[root@master etc]# cd /etc/
[root@master /]# crontab -e
加入如下代码:
*/1 * * * * /usr/local/bin/rsync_push.sh
以上代码表示,每分钟执行一次rsync同步脚本 ,(具体执行时间设定,参照这里)
输入命令查看crontab脚本
[root@master etc]# crontab -l

8.使用脚本启动关闭rsync
[root@slave1 pic]# vim /etc/init.d/rsync
将如下内容复制粘贴
#!/bin/bash #this script for start|stop rsync daemon service
#date:// 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 - $(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 $ in "start")
rsyncstart
;; "stop")
rsyncstop
;; "status")
rsyncstatus
;; "restart")
rsyncrestart
;; *)
echo
echo "Usage: $0 start|stop|restart|status"
echo
esac
给脚本设置可执行权限:
[root@slave1 pic]# chmod a+x /etc/init.d/rsync
启动命令:
[root@master /]# service rsync start
停止命令
[root@master /]# service rsync stop
vsftp服务器同步文件的更多相关文章
- linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)
inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm
- Centos7 rsync+inotify两台服务器同步文件(单向)
注:本篇介绍的是单向同步,即A文件同步到B,但B的文件不同步到A,双向同步的在下一篇文章中. rsync与inotify不再赘述,直接进入实战. 0.背景 两台服务器IP地址分别为: 源服务器:192 ...
- 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能
文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...
- cwRsync window下的跨服务器的文件同步
cwRsync 是window下的文件同步软件,可以跨服务器运行,第一次运行的时候是全部备份同步,之后的同步采用的是增量同步 这个软件分为服务端和客户端. 服务器是需要同步的文件源, 客户端相当于是备 ...
- 用 rsync 同步本地和服务器的文件
参考 DigitalOcean 安装 For Debian/Ubuntu: sudo apt-get install rsync For OpenSUSE/Fedora: sudo yum insta ...
- centos6.5 rsync+inotify实现服务器之间文件实时同步
1. rsync的优点与不足 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据 ...
- rsync+sersync+inotify实现服务器间文件同步之一
rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
centos shell编程4[分发系统] 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要 ...
- Linux服务器间文件实时同步的实现
使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/ ...
随机推荐
- RSA加密解密中pkcs1与pkcs8格式私钥互相转换
net,ios中rsa加解密使用的是pkcs1,而java使用的是pkcs8 如果是按1024取模(通常都是1024),pkcs1格式的私钥长度应该是812.如果是pkcs8的格式的密钥长度为861. ...
- ACM-ICPC 2018 徐州赛区网络预赛A Hard to prepare(DP)题解
题目链接 题意:有n个格子拉成一个环,给你k,你能使用任意个数的0 ~ 2^k - 1,规定操作 i XNOR j 为~(i ^ j),要求相邻的格子的元素的XNOR为正数,问你有几种排法,答案取 ...
- swift设计模式学习 - 代理模式
移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 代理模式 代理模式为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象 ...
- 入门dp总结
写这篇博文主要是为了归纳总结一下dp的有关问题(不定期更新,暑假应该会更的快一些) 会大概讲一下思路,不会事无巨细地讲 另一篇是平时做过的一些dp题,这篇博客里面提到的题都有题解放在那边:https: ...
- ASCII 、UTF-8、Unicode都是个啥啊,为啥会乱码啊?
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制1111 ...
- Mui --- 页面之间的传值
A页面 mui.ajax('http://14.50.2.49:80/default/AppLogin?Prm=' + Prm, { data: {}, //dataType: 'json', typ ...
- Could not find a package configuration file provided by 'ecl_geometry' ,.................couldn't find required component 'ecl_geometry'
sudo apt-get install ros-kinetic-ecl-geometry
- Java 集合-Arrays工具类的介绍
2017-10-31 18:39:46 Arrrays工具类:此类包含用来操作数组(比如排序和搜索)的各种方法. 常用方法: 主要是数组的一些常用方法如: asList:将数组转成集合 binaryS ...
- LeetCode--155--最小栈
问题描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取 ...
- mysql--------四种索引类型
一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力.索引优化时mysql中的一种优化方式.索引的作 ...