我正在运行必须全天候运行的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'自动化和其他基于时间表的方法但无法实现这一点。
答案 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