记录 SFTP 批处理
log a SFTP batch process
我有一个简单的批处理过程,可以将文件 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
运行 上面的脚本结果是无效函数。有线索大师吗?
我终于解决了这个问题,
因此,当您使用 SFTP 文件传输时,在脚本的一侧添加日志记录选项会更加困难,并且取决于脚本所使用的第 3 方客户端(如 OpenSSH 或 WinScp)的类型不一样了因此,您需要强制调度程序在操作触发器选项中制作日志文件。然后你可以在那里添加一个参数并将其作为参数
/log="c:\apps\ftpLogs\benftp01.log"
我的情况有些不同。我调用 sftp.exe
的脚本捕获程序的所有输出。但是,当您对 运行 SFTP 批处理脚本使用 -b
命令行参数时,sftp.exe
将自身放入 'quiet mode',因此我的日志没有显示每个文件的详细信息。
我的解决方案是添加 -N
命令行参数。这是手册中对该选项的描述:
-N Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag.
我有一个简单的批处理过程,可以将文件 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
运行 上面的脚本结果是无效函数。有线索大师吗?
我终于解决了这个问题,
因此,当您使用 SFTP 文件传输时,在脚本的一侧添加日志记录选项会更加困难,并且取决于脚本所使用的第 3 方客户端(如 OpenSSH 或 WinScp)的类型不一样了因此,您需要强制调度程序在操作触发器选项中制作日志文件。然后你可以在那里添加一个参数并将其作为参数
/log="c:\apps\ftpLogs\benftp01.log"
我的情况有些不同。我调用 sftp.exe
的脚本捕获程序的所有输出。但是,当您对 运行 SFTP 批处理脚本使用 -b
命令行参数时,sftp.exe
将自身放入 'quiet mode',因此我的日志没有显示每个文件的详细信息。
我的解决方案是添加 -N
命令行参数。这是手册中对该选项的描述:
-N Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag.