使用 WinSCP 在每天的特定时间运行 JAR 文件
Posted
技术标签:
【中文标题】使用 WinSCP 在每天的特定时间运行 JAR 文件【英文标题】:Run JAR file at specific times daily with WinSCP 【发布时间】:2016-11-08 05:19:24 【问题描述】:我遇到了一个我认为有一个简单解决方案的问题。我目前正在使用带有 Linux 服务器的 WinSCP(为 FTP 设置)来托管 Web 应用程序。
我创建了一个可以在 WinSCP 控制台 (java -jar filename.jar
) 中手动运行的 JAR 文件 (filename.jar
)。它在修改现有表的 mysql 数据库中运行查询。实际上,要更新我的前端(来自该表的查询),它需要每天运行两次 filename.jar
文件。
我想知道解决这个问题的正确方法是什么。理想情况下,它将在每天 00:05 和 12:05 完成。如果 WinSCP 可以配置为在这些时间专门运行 filename.jar
,那将是完美的。但是,如果有办法连续运行 .jar
,我认为在 filename.jar
内验证所需系统时间的 while 循环也可以工作。
我已经看到 information 的 lots 和 locally 进行此操作,但发现对服务器执行此操作几乎没有帮助。提前感谢您的任何帮助或想法,如果我可以改进这个问题或提供更多信息,请告诉我。如果有任何资源可以清楚地解释这一点,那么也将不胜感激。我是 WinSCP 的新用户,如果你还不能说的话。
【问题讨论】:
如何将 jar 复制到 linux 服务器并为其创建一个 cron 作业?还是不可能? 也许另一种方法是使用 openssh 连接到服务器,ssh 程序的命令行允许发出远程命令。也可以通过 putty 的 plink 实现 @gybandi 这似乎有效。我找到了一个很好的资源here。你知道如何检查以确保它正在运行吗?我已经在控制台中使用了命令crontab -l
,但它只是向我显示了时间表:4 12 * * * /usr/local/new_promo.jar
。这足以确认它将在服务器上运行吗?
@gybandi 将您的评论作为答案,我会接受,以便其他有类似问题的人可以看到。
【参考方案1】:
正如我在 cmets 中提到的,我认为最简单的方法是在远程 Linux 服务器上进行 cron 作业。
您可以使用crontab -e
命令编辑当前的 cron 表。
您可以查看 cron 格式 here 或 here。
在你的情况下,它应该是这样的:
5 */12 * * * java -jar /path/to/jarfile/filename.jar
这将每 12 小时 5 分钟运行一次java -jar ...
命令。
保存后,您可以使用crontab -l
命令检查现有的 cron 作业。
您还可以检查系统日志中的 CRON 条目,以查看作业是否按预期工作。
cat /var/log/syslog | grep CRON
【讨论】:
【参考方案2】:您可以在任务计划程序的帮助下创建任务(搜索-> 键入任务计划程序)。 .创建一个批处理文件并提供 JDK 的路径和 jar 文件。希望这会有所帮助!!!
【讨论】:
感谢您的回答,但我不确定这是否有效。由于它是一个 Linux 服务器,它需要一个 'crontab' 文件。不过感谢您的回复,它让我走上了寻找 Linux 等价物的正确轨道。以上是关于使用 WinSCP 在每天的特定时间运行 JAR 文件的主要内容,如果未能解决你的问题,请参考以下文章