使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

shell运行java程序,实现快速开发部署

在 Python 中使用参数运行 WinSCP 脚本

如何杀死每天在特定时间以“单一应用模式”运行的 iOS 应用? [关闭]

每天在特定时间设置重复闹钟

eclipse 打包 jar 到 Linux上运行

Python:如何自动化脚本以每天在特定时间运行?