​    ​​场景:因前期设计得失误,导致应用中得富文本上传服务器并没有单独传到相应得文件服务器上,而是直接上传到应用所属的服务器上​。若是就一台服务器也没什么问题,问题是若是对服务做了负载均衡,就会出现问题,有可能你上传的文件在服务器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 yesexport DUMP_TAG=`date +"%Y%m%d"`echo 日期:$DUMP_TAGexport putfilepath="/data/work/image/"$DUMP_TAGecho 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

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

​

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐