您的位置 首页 java

一分钟了解单体应用多台服务器间的文件传输

​​场景:因前期设计得失误,导致应用中得富文本上传服务器并没有单独传到相应得文件服务器上,而是直接上传到应用所属的服务器上​。若是就一台服务器也没什么问题,问题是若是对服务做了负载均衡,就会出现问题,有可能你上传的文件在服务器A上,但是当你通过域名访问到服务器B上的时候,就会找不到相应的文件​。

​ ​针对这种情况,前期考虑是将所有服务器文件同步,做到每台服务器上都有这个文件,这样就不会有什么问题,当然后期肯定会抽出单独的文件服务器进行访问​。下面来说服务器同步文件问题​。

​ ​Linux情况下想要做到同步需要了解lftp 的sftp用法,不知道的可以去度娘下,我这边就简单的说下​:

 lftp sftp://[user name]:[user passwd]@[domain name]:[port number]  

前期准备两台服务器A、B,现在A服务器创建几张图片,向B服务器传输,现在直接上shell脚本,进行同步​:

 #! /bin/bash
# set sftp:auto-confirm yes
export DUMP_TAG=`date +"%Y%m%d"`
echo 日期:$DUMP_TAG
export putfilepath="/data/work/image/"$DUMP_TAG
echo putfilepath $putfilepath
  
  if [ ! -d $putfilepath  ];then
    mkdir $putfilepath 
  else
    echo dir exist
  fi
  
​
        for file in `ls $DUMP_TAG`       #注意此处这是两个反引号,表示运行系统命令
        do
            if [ -d $DUMP_TAG"/"$file ]  #注意此处之间一定要加上空格,否则会报错
            then
                read_dir $DUMP_TAG"/"$file
            else
                echo $DUMP_TAG"/"$file   #在此处处理文件即可
    lftp sftp://root:P@ssw0rd@XXX.XXX.XXX.XXX:22 -e "cd $putfilepath; put $DUMP_TAG'/'$file; ls; bye"
            fi
        done  

注意:这个脚本加的有日期限制,只能同步执行的这天的数据,同步之前的或者所有的需要修改脚本,你们可自行修改,这边验证亲测没什么问题

文章来源:智云一二三科技

文章标题:一分钟了解单体应用多台服务器间的文件传输

文章地址:https://www.zhihuclub.com/189738.shtml

关于作者: 智云科技

热门文章

网站地图