在 Windows 中设置 cron 作业

Posted

技术标签:

【中文标题】在 Windows 中设置 cron 作业【英文标题】:Setting up a cron job in Windows 【发布时间】:2011-11-03 23:04:33 【问题描述】:

我必须每天从 SFTP 服务器下载文件。我有从服务器检索文件的程序,但我正在考虑设置一个 cron 作业(或类似的东西)来自动化它。我们是一家 Windows 商店,需要。

【问题讨论】:

【参考方案1】:

http://windows.microsoft.com/en-US/windows7/schedule-a-task

也许这将有助于 Windows 计划任务...

【讨论】:

【参考方案2】:

有pycron,我真的将它作为 Windows 的 Cron 实现,但还有内置的调度程序,它应该可以很好地满足您的需要(控制面板 -> 计划任务 -> 添加计划任务)。

【讨论】:

该链接似乎有效,它需要到下载页面。 pypi.org/project/python-crontab 似乎是一个维护的解决方案。【参考方案3】:

相当于 cron 作业的窗口是计划任务。

可以按照Alex 和Rudu 的描述创建计划任务,但也可以使用schtasks 进行命令行操作(例如,如果您需要编写脚本或将其添加到版本控制中)。

一个例子:

schtasks /create /tn calculate /tr calc /sc weekly /d MON /st 06:05 /ru "System"

创建任务计算,它会在每周一的 6:05 启动计算器(calc)(如果你需要的话。)

所有可用的命令都可以在这里找到:http://technet.microsoft.com/en-us/library/cc772785%28WS.10%29.aspx

它适用于 windows server 2008 和 windows server 2003。

【讨论】:

感谢您的回答。有什么方法可以在终端上查看当前活动的任务? 我喜欢这个!谢谢你把它放在这里。 @gberth schtasks /query 显示所有这些。文档显示了更多选项。 @Casivio 感谢您的提示!【参考方案4】:
    确保您以管理员身份登录,或者您拥有与管理员相同的访问权限。 开始->控制面板->系统和安全->管理工具->任务计划程序 操作->创建基本任务->输入名称并点击下一步 按照向导进行操作。

【讨论】:

或者直接运行Win+R然后执行taskschd.msc 有没有办法导入/导出windows计划任务? @MáximaAlekz 是的。任务计划程序中的操作菜单 -> 导入/导出。这将是一个 xml 文件。【参考方案5】:

如果您不想使用Scheduled Tasks,您可以使用Windows Subsystem for Linux,这样您就可以像在Linux 上一样使用cron 作业。

要确保 cron 实际运行,您可以在 Linux 终端中键入 service cron status。如果它当前没有运行,那么输入service cron start,你应该很高兴。

【讨论】:

【参考方案6】:

我要感谢@Vincent Stevenson,@s-hunter

转到Control Panel --> Administrative Tools --> Task Scheduler--> Create Task

    任务计划程序,创建任务

    给任务一个标题

    转到操作

    去CMD找路径,

    Python,导入 sys,sys.executable

    (这会告诉您应该在 Program/script 字段 中填充什么内容:“some path 主要是 Appdata")

    喜欢:C:\Users\admin\AppData\Local\Programs\Python\Python38-32\python.exe

    参数:python脚本的名称(如run.py)

    Start in:python脚本的dir位置(如:C:\Users\admin\Documents\my_python_project)

    转到触发器,根据需要安排时间

    通过运行脚本来测试它

【讨论】:

以上是关于在 Windows 中设置 cron 作业的主要内容,如果未能解决你的问题,请参考以下文章

如何在 cpanel 中设置 cron 作业

在 godaddy.com cpanel 中设置 cron 作业

Cron 作业没有获得在 .bashrc 中设置的环境变量

Cron 作业没有获得在 .bashrc 中设置的环境变量

在 Node.js 与 Cron 作业中设置间隔?

运行 cron 作业 (Node.js) 时如何在 Amazon Elastic Beanstalk 中设置环境变量?