• 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. 配置后台运行和开启自启动

  • 相关阅读:
    第四十三课:jQuery插件化
    js模块化开发
    第四十二课:基于CSS的动画引擎
    第四十一课:CSS3 animation详解
    第四十课:CSS3 transition详解
    第三十九课:requestAnimationFrame详解
    几种排序
    图与搜索
    数组
    链表
  • 原文地址:https://www.cnblogs.com/flyback/p/6700349.html
Copyright © 2020-2023  润新知