sftp ftp文件同步方案

sftp ftp文件同步方案

1. 需求

1.1实现网关服务器的ftp服务器的/batchFileRequest目录下文件向徽商所使用的sftp服务器的/batchFileRequest目录同步文件

1.2实现徽商所使用的sftp服务器的/batchFileResult目录文件向网关服务器的ftp服务器/batchFileResult目录同步文件

1.3实现徽商所使用的sftp服务器的/statement目录文件向网关服务器的ftp服务器/statement目录同步文件

1.4同步文件方向如下图所示

 

2. 实现所使用的技术

rsync+inotify+shell脚本实现

 

3. 配置安装准备

3.1安装inotify

3.1.1 redhat5.10安装inotify

wget ftp://mirror.us.oneandone.net/software/repositories/fedora-epel/5/x86_64/inotify-tools-3.14-1.el5.x86_64.rpm

rpm -ivh inotify-tools-3.14-1.el5.x86_64.rpm

3.1.2centos6.4安装inotify

wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/inotify-tools-3.13-1.el6.rf.x86_64.rpm

#参考http://www.1987.name/637.html

3.2配置rsync同步目录

3.2.1两端rsync配置文件增加相应内容,并重启rsync服务

vi /etc/rsync.conf

#  配置uat环境sftp同步目录到ftp的batchFileResult目录

[uat_batchFileResult]

uid = glassfish

gid = glassfish

path = /sumapay/ftp/bankTrusteeship/hsb/batchFileResult

comment = sumapay update files

read only = no

auth users = rsync

 

#  配置uat环境sftp同步目录到ftp的statement目录

[uat_statement]

uid = glassfish

gid = glassfish

path = /sumapay/ftp/bankTrusteeship/hsb/statement

comment = sumapay update files

read only = no

auth users = rsync

 

#  配置uat环境同步到sftp目录batchFileRequest

[uat_batchFileRequest]

uid = ysxsftp

gid = sftp

path = /data/sftp/ysxsftp/batchFileRequest

comment = sumapay update files

read only = no

auth users = rsync

4. 编写脚本

4.1batchFileRequest目录同步脚本

vi rsync_batchFileRequest.sh

#!/bin/bash

#将ftp服务器/batchFileRequest目录下的文件同步到sftp的/batchFileRequest目录下

batchFileRequest=/sumapay/ftp/bankTrusteeship/hsb/batchFileRequest

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

do

rsync   -avcmP --remove-source-files  --password-file=/etc/c_rsyncd.pwd /sumapay/ftp/bankTrusteeship/hsb/batchFileRequest/ rsync@172.16.3.6::uat_batchFileRequest/

done

#备注此脚本后台运行于ftp服务器

4.2batchFileResult目录同步脚本

vi rsync_batchFileResult.sh

#!/bin/bash

#将sftp服务器/batchFileResult目录下的文件同步到ftp的/batchFileResult目录下

batchFileResult=/data/sftp/ysxsftp/batchFileResult/

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

do

rsync  --delete -avcmP --password-file=/etc/c_rsyncd.pwd $batchFileResult rsync@172.16.3.2::uat_batchFileResult/

done

#备注此脚本后台运行于sftp服务器

4.3 statement目录同步脚本

vi rsync_statement.sh

#!/bin/bash

#将sftp服务器/statement目录下的文件同步到ftp的/statement目录下

statement=/data/sftp/ysxsftp/statement/

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

do

mkdir -p /backup/ysxsftp/statement/`date +%Y%m%d`/
cp -rf /data/sftp/ysxsftp/statement/*  /backup/ysxsftp/statement/`date +%Y%m%d`/

rsync  --delete -avcmP --password-file=/etc/c_rsyncd.pwd $statement rsync@172.16.3.2::uat_statement/

done

#备注此脚本后台运行于sftp服务器

5. 配置后台运行和开启自启动

posted @ 2017-04-12 17:31  FlyBack  阅读(1449)  评论(0编辑  收藏  举报