• windows BAT脚本2个服务器间传递文件


    1. 脚本功能: 

      实现2个服务器间文件的传递,例如从A服务器往B服务器上传文件

    2. 实现步骤:

      2.1 服务器连结,找到指定路径,读取所需要上传的文件,将文件名称复制到一个文件下

        (此处考虑可能需要筛选特定的文件,或者判断文件个数,这样处理会比较方便)

      2.2 执行copy文件

      2.3 删除不需要的文件

        (这里考虑,可能是联机备份,只保留部分数据文件,需要删除不需要的数据文件,在这处理)

    3. 代码展示

    @echo off

    REM *** copy文件参数设定
    set Passwd="password"
    set User="username"
    set LogPath="日志存放路径"
    set FullbakPath="A服务器需要复制到B服务器的文件路径"

    REM *** 数据库连结设定
       (这里做数据库连结是因为本脚本需要保留部分天数的文件,需要删除前7天文件
         因为bat单做日期加减比较麻烦,所以采用数据库取值方法)
    set DB_SERVER="数据库rul"
    set DB_NAME="数据库实例"
    set DB_USER="数据库用户"
    set DB_PASS="数据库密码"

    REM *** 数据库前7日设定
    REM *** 因为这里使用sqlserver 相应其他数据库请自己调整oracle mysql等
    set sql="SELECT CONVERT(NVARCHAR,DATEADD(DAY,-7,CONVERT(DATETIME,CAST(YMD AS NVARCHAR),101)),112) FROM M_DATE_CONTROL WHERE KEY_CD=2"

    REM *** 服务连结
    net use \127.0.0.1ackfull %Passwd% /user:%User% 

    REM *** 设定日期,设定Log日志文件名称
    set date=%date:~0,4%%date:~5,2%%date:~8,2%
    set JOBLOG=DBBACK.log

    echo ********** START (%date:~0,10% %time:~0,8%) ********** >> %LogPath%\%date%\%JOBLOG%

    这里将符合的附件读取到一个文本文档中,以便后续使用
    (for /f "tokens=*" %%i in ('dir /a-d /b /s %FullbakPath%*.* ') do (
        echo %%~nxi
    ))>fullbak.log

    这里是copy文件的主要执行步骤,从文本文档读取,然后进行copy,这里有一个文件数量的判断,可以进行自我调整
    for /f "tokens=2 delims=:" %%a in ('find /c /v "" fullbak.log') do (
      if %%a equ 7 for /f %%i in (fullbak.log) do xcopy %FullbakPath%\%%i \127.0.0.1ackfull\%date% /s /e /i /y
    )

    这里进行文件删除的操作,将7天前文件删除
    for /f "skip=2" %%i in ('osql.exe -S %DB_SERVER% -U %DB_USER% -P %DB_PASS% -d %DB_NAME% -Q %sql%') do (
      set RESULT=%%i
      goto :RESULT
    )

    判断文件是否存在,存在就执行删除
    :RESULT
    if exist \127.0.0.1ackfull\%RESULT% rd /s /q  \127.0.0.1ackfull\%RESULT%

    echo ********** END (%date:~0,10% %time:~0,8%) ********** >> %LogPath%\%date%\%JOBLOG%

    pause

    以上为文本文档编写,大家还请见谅。

      

  • 相关阅读:
    设计模式:Prototype 原型模式
    [C++STDlib基础]关于单字符的操作——C++标准库头文件<cctype>
    Android开发之简单的电子相册实现
    autotools入门笔记(二)——创建和使用静态库、动态库
    Dreamer 框架 比Struts2 更加灵活
    Redis集群明细文档
    【Servlet3.0新特性】第03节_文件上传
    POJ 3264 Balanced Lineup
    利用jquery对ajax操作,详解原理(附代码)
    C语言实现修改文本文件中的特定行
  • 原文地址:https://www.cnblogs.com/sun-chao/p/11417962.html
Copyright © 2020-2023  润新知