这篇技术博客主要介绍了如何使用WinSCP在Windows Server 2008上设置定时任务,以自动将文件通过SFTP传输到远程服务器。
在Windows Server 2008中,我们可以通过“任务计划程序”来配置定时任务。以下是具体步骤:
打开“开始”菜单,找到“附件”文件夹,然后选择“系统工具”文件夹中的“任务计划程序”。
在“任务计划程序”窗口的右侧,点击“创建基本任务”。
在“创建基本任务向导”窗口中,输入任务的名称和描述,并点击“下一步”。
选择触发器,例如“每天”,然后设置任务的起始日期、时间和重复周期。点击“下一步”。
选择“启动程序”作为任务操作,并点击“下一步”。
在“启动程序”设置窗口中,选择WinSCP的执行文件路径(例如:"C:\Program Files (x86)\WinSCP\WinSCP.exe")。
在“添加参数(可选)”框中,输入脚本执行命令(例如:"/console /script=winscp_shell.txt /log=log.txt"),并点击“下一步”。
检查任务设置,并点击“完成”。
winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://user:password@ip:22" "option transfer binary" "put C:\Users\Administrator\Desktop\test.txt /tmp/test.txt" "exit" /log=log_file.txt
完成上述步骤后,定时任务将在指定的时间自动执行。在此例中,任务会运行WinSCP,并通过指定的脚本将文件上传到远程服务器。
这里的WinSCP脚本文件winscp_shell.txt包含以下内容:
option batch continue
option confirm off
open sftp://root:ukHdalonga82wansui@152.xxx.1xx.xxx:22
option transfer binary
put E:\pdfGenerate\resouce\result\pdf\%TIMESTAMP-1D#yyyy-mm-dd% /root/dalong/gh-thinkjs/pdfreport/
exit
脚本首先设置了批处理模式和关闭确认提示。接着打开与远程服务器的SFTP连接,并选择二进制传输模式。然后,脚本将指定的文件上传到远程服务器的指定目录中,并退出。
当然,有时我们可能需要传输多个文件或文件夹,这时可以使用压缩功能来打包这些内容。这篇文章介绍了如何在Node.js中使用archiver和unzipper库来压缩和解压文件。
这样,定时任务就可以自动完成文件上传,无需人工干预。在设置定时任务时,建议检查WinSCP日志文件,以确保文件传输成功。如果遇到问题,请仔细检查脚本和定时任务的设置。
定时任务执行脚本
winscp.exe /console /script=winscp_shell.txt /log=log.txt
Comments