【发布时间】:2018-07-12 23:55:48
【问题描述】:
我正在运行一个必须 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 的自动化和其他基于计划的方法,但无法使其发挥作用。
【问题讨论】:
-
我不确定我是否理解您的问题,批处理文件是否不包含首先连接到服务器的命令?还是它有命令,但未能成功执行?也许用批处理文件的内容编辑您的问题可能会有所帮助!
-
谢谢,已更改。批处理文件位于服务器上,重新启动后根本不会自动运行。我希望脚本重启 EC2 实例,然后在重启后自动运行批处理文件。现在它只会重新启动,但重新启动后文件不会自动运行。它只会在我再次远程连接到 EC2 实例时运行。
-
您是否尝试过每 24 小时设置一次 CloudWatch 事件(我认为?)来重置您的服务器?这样您就可以向 EC2 实例发送“重启”命令,而无需该脚本。
-
好主意,但关键是我需要
.bat文件来运行 Python 脚本并在重启后设置计时器
标签: batch-file windows-server-2012