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

时间:2018-02-02 13:07:01

标签: batch-file windows-server-2012

我正在运行必须全天候运行的AWS Windows 2012 EC2实例。在这个例子中,我运行一个Python 3.6 scraper脚本,为了防止我不得不定期检查服务器文件是否正在运行,我的实例的.bat文件夹中有一个shell:startup文件,它会在每日基础上自动重启。 .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'自动化和其他基于时间表的方法但无法实现这一点。

2 个答案:

答案 0 :(得分:0)

如果您想使用Windows Server 2012的原生内容,请查看Schtasks - 这或多或少是Windows等同于cron。

答案 1 :(得分:0)

我通过使用任务计划程序并查看以下文章找到了我的问题的答案:Run a batch file with Windows task scheduler

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

  • 管理员帐户
  • "运行用户是否登录"
  • "以最高权限运行"
  • "开始系统启动"
  • 操作:启动程序 - > CMD
  • 添加参数(可选):/c start "" "C:\Users\Administrator\Desktop\file.bat"

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