rsync定时加脚本实现本地到阿里的ftp文件同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync定时加脚本实现本地到阿里的ftp文件同步相关的知识,希望对你有一定的参考价值。

现在需要实现西安ftp到阿里服务器的备份

1.西安为B,阿里为A

2.阿里里面的rsync是已经安装好的,查看了是依赖gti安装的,虽然版本不一样但是不影响使用

3.在A里新建rsync配置文件

4.建连接使用的用户密码

5.到B端进行手动同步实验

6.手动没问题之后进行脚本制作,然后定时运行

接下来开始操作,进入A端服务器新建rsyncd.conf配置文件

vim /etc/rsyncd.conf

我这里已经建好了

技术分享

UID = #我直接给的root用户

gie = #我直接给的root组

port= #默认的873接口

address= #默认自己A服务器的地址

use chroot = 3表示连接成功后自动切换目录

max connections = 3最大连接数

pid file = #pid文件存放的位置

lock file = #锁文件存放伪装

log file = #日志文件存放位置

downloads  #(模块名)这里比较重要,rsync客户机同步的时候服务器的目录直接填模块名,填目录会报错

patch = #服务器备份文件的位置

read only =  #是允许别的客户端向本机的服务器端上传

list =  #允许列表

hosts allow = #允许的主机 (可以是IP也可以是IP段,加,号隔开)

hosts deny = #不允许的主机

auth users = # 备份连接使用的账户

secrets file = # 备份连接使用的账户密码(这里直接新建个文件即可)如下图

技术分享

这里我们A端服务器就配置完成了

需要注意的1.是可以把ftp-xa去掉,这样就都同步到uploads里面反正我们同步的文件夹带各自的名字

                2.允许的主机后面需要添加,要么就直接改成0.0.0.0/24 ,允许所有主机

                3.用户名密码我已经做好,可以不用重新弄了,你B端的本地密码建好就行(密码必须跟服务器账户的密码相同),位置随便,我这里的位置是服务器账户密码存放的位置。

接下来到B端西安

先安装rsync,我直接用的yum安装的,安装完成之后测试备份即可如图

技术分享

rsync -aczp(这里可以看命令介绍,我这里选择的a:归档模式,c:对文件进行效验,z:对备份的文件传输时进行压缩处理,P:保持文件权限)

这个-aczp可以根据喜好来更换

这里手动进行同步,提示输入密码说明连接正常,输入密码之后就会进行传输显示。

为了方便我这里是这个思路进行的

1.先建个脚本

2.每天定时运行脚本

OK,接下来是脚本的运行和定时同步

直接vim /root/rsync.sh

rsync -avrP --progress --password-file=/usr/rsync.pwd  /root/ftp/* [email protected]::downloads

 #rsync 后面加输出模式,--progress:显示传输过程 --passwd 后面是保存密码的位置,password-file=/usr/rsync.pwd(看图就明白了)

技术分享

因为正常手动同步会提示输入密码,这里直接加--passwd 让它自动填写密码,就可以不用手动输入密码了,后面是需要备份的目录,然后跟着备份到服务器的用户名和地址 后面是模块名,在服务器的配置里面模块名下面是服务器的文件配置,这么运行会自动备份到

技术分享

脚本完成了,可以直接运行脚本试试效果,要是没问题的话我们进行定时运行脚本

直接crontab -e

会进入编辑模式

00 3 * * * /root/rsync.sh

我这里写的每天3点钟运行sh脚本


以上是关于rsync定时加脚本实现本地到阿里的ftp文件同步的主要内容,如果未能解决你的问题,请参考以下文章

也谈文件夹同步

rsync+inotify文件同步

rsync+inotify实现实时同步

详解rsync,一款卓越的增量同步工具(一)

rsync+inotify实现实时同步

rsync数据同步