记录SFTP批处理过程

时间:2015-07-29 16:10:46

标签: batch-file batch-processing

我有一个简单的批处理过程,它将SFTP文件作为SFTP服务器。批处理代码在这里:

option batch abort
option confirm off
open sftp://server -hostkey="ssh-rsa 2048 00:aa:00:aa:dd:11:22:11:22:00:55:66:ee:dd:65:dd" 
cd \inbound\

put -transfer=ascii c:\apps\ftpfiles\myfile-2015-07-29.txt
exit

我想在单独的日志文件中记录任务的日志(成功,错误)。

我试过这样做:

@Rem ****************************************
@Rem  SFTP
@Rem ****************************************

@Rem Send required log to c:\apps\ftplogs\benftp01.log

@echo *** SFTP Process *** >> c:\apps\ftplogs\benftp01.log
@echo RUN DTTM : 29-07 >> c:\apps\ftplogs\benftp01.log

Rem  Create Windows SFTP Script 


@echo Starting FTP the PGP file... >> c:\apps\ftplogs\benftp01.log


    option batch abort
    option confirm off
    open sftp://server -hostkey="ssh-rsa 2048 00:aa:00:aa:dd:11:22:11:22:00:55:66:ee:dd:65:dd" 
    cd \inbound\

    put -transfer=ascii c:\apps\ftpfiles\myfile-2015-07-29.txt
    exit


@echo  *** SFTP End ***  >> c:\apps\ftplogs\benftp01.log

运行上面的脚本我的结果是Invalid函数。任何线索专家?

2 个答案:

答案 0 :(得分:0)

最后我解决了这个问题,

因此,当您使用SFTP文件传输时,在脚本一侧添加日志选项会更加困难,并且根据所使用的第三方客户端(如OpenSSH或WinScp)的类型,脚本会有所不同。因此,您需要强制调度程序在操作触发器选项中生成日志文件。然后你可以在那里添加一个参数并将其作为参数

/log="c:\apps\ftpLogs\benftp01.log"

答案 1 :(得分:0)

我的情况有些不同。我调用 sftp.exe 的脚本捕获了程序的所有输出。但是,当您使用 sftp.exe 命令行参数运行 SFTP 批处理脚本时,-b 会将自身置于“安静模式”,因此我的日志没有显示每个文件的详细信息。

我的解决方案是添加 -N 命令行参数。以下是手册中对该选项的说明:

-N Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag.