EC2 重启后自动运行.bat文件,无需远程连接



我正在运行一个必须 24/7 运行的 AWS Windows 2012 EC2 实例。在此实例上,我运行 Python 3.6 抓取程序脚本,为了防止我必须定期检查服务器上的文件是否正在运行,我在实例的 shell:startup 文件夹中有一个.bat文件,该文件每天自动重新启动它。.bat文件的工作原理是它将运行 Python 脚本并设置一个计时器以在 (t=86400 之后重新启动/重新启动实例。.bat文件在 EC2 实例本身上运行。

但是,文件不执行的操作是在重新启动后自动运行。我现在首先必须远程连接到服务器,然后.bat文件才能运行。我希望它做的是运行,而无需我首先远程连接到服务器。我怎样才能做到这一点?

我在.bat文件中使用以下代码。位于我的 EC2 实例上。

@ECHO OFF
START CMD /K (
        CD C:/Users/Administrator/Documents/
        python scraper.py
)
START CMD /K SHUTDOWN -t 86400 -r -f

我尝试过使用 AWS 的自动化和其他基于计划的方法,但无法使其正常工作。

如果你想使用Windows Server 2012的原生内容,看看Schtasks——这或多或少是Windows的cron。

我通过使用任务计划程序并查看以下文章找到了问题的答案: 使用 Windows 任务计划程序运行批处理文件

这里的一个重要注意事项是,要运行我的批处理文件,我必须创建一个启动CMD的任务,并从那里运行批处理文件。要求任务计划程序直接运行批处理文件在 Windows Server 2012 上不起作用。我使用以下详细信息运行了任务:

  • 管理员帐户
  • "无论用户是否登录都运行">
  • "以最高权限运行">
  • "系统启动时启动">
  • 操作:启动程序 -> CMD
  • 添加参数(可选(:/c start "" "C:UsersAdministratorDesktopfile.bat"

有关如何执行此操作的更多信息,请参阅此答案:https://stackoverflow.com/a/27055435/7736676

最新更新