使用 WinSCP 和批处理监视 SFTP 服务器上的更改
Monitoring changes on SFTP server with WinSCP and batch
我想监控我们的 SFTP,以便在添加文件时向我们发送电子邮件。现在我尝试用批处理脚本用 if
/else
设置条件,但批处理环境不接受我的条件。
我是批处理和自动化方面的新手,所以我尝试做的是首先将 SFTP 文件与本地文件同步,然后 运行 批处理计划再次尝试同步;如果是,那么它将发送一封电子邮件(我现在没有为电子邮件制作脚本,老实说,我现在不知道该怎么做),如果它没有同步,那么退出脚本。
这是我的脚本:
option batch on
option confirm off
open sftp://x@sftp.x/ -privatekey=privateKey.ppk -hostkey="ssh-rsa 2048 x"
option transfer binary
if synchronize local "C:\Users\Administrateur\Desktop\x\x" "/x/x/rx" (
ECHO nouveau fichier ajouter au repertoir
)
else (ECHO aucun nouveau fichier exit
)
这是错误:
Commande inconnue 'if'.
添加 -preview
switch to your synchronize
command 使其仅检查更改,而不是实际同步文件。
将 option failonnomatch on
添加到您的脚本中,使 synchronize
命令将无差异报告为错误。
option failonnomatch on
synchronize -preview local "C:\Users\Administrateur\Desktop\x\x" "/x/x/rx"
在实际批处理文件中,check WinSCP exit code判断是否有差异。像这样:
winscp.com /script=script.txt /log=script.log
if errorlevel 1 (
echo Nothing to synchronize or other problem
) else (
echo There are files to synchronize
)
如果要发送电子邮件,请参阅 Emailing script results 的 WinSCP 指南。
我想监控我们的 SFTP,以便在添加文件时向我们发送电子邮件。现在我尝试用批处理脚本用 if
/else
设置条件,但批处理环境不接受我的条件。
我是批处理和自动化方面的新手,所以我尝试做的是首先将 SFTP 文件与本地文件同步,然后 运行 批处理计划再次尝试同步;如果是,那么它将发送一封电子邮件(我现在没有为电子邮件制作脚本,老实说,我现在不知道该怎么做),如果它没有同步,那么退出脚本。
这是我的脚本:
option batch on
option confirm off
open sftp://x@sftp.x/ -privatekey=privateKey.ppk -hostkey="ssh-rsa 2048 x"
option transfer binary
if synchronize local "C:\Users\Administrateur\Desktop\x\x" "/x/x/rx" (
ECHO nouveau fichier ajouter au repertoir
)
else (ECHO aucun nouveau fichier exit
)
这是错误:
Commande inconnue 'if'.
添加
-preview
switch to yoursynchronize
command 使其仅检查更改,而不是实际同步文件。将
option failonnomatch on
添加到您的脚本中,使synchronize
命令将无差异报告为错误。option failonnomatch on synchronize -preview local "C:\Users\Administrateur\Desktop\x\x" "/x/x/rx"
在实际批处理文件中,check WinSCP exit code判断是否有差异。像这样:
winscp.com /script=script.txt /log=script.log if errorlevel 1 ( echo Nothing to synchronize or other problem ) else ( echo There are files to synchronize )
如果要发送电子邮件,请参阅 Emailing script results 的 WinSCP 指南。