8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Windows 中设置 cron 作业

Yiping Hao 1月前

77 0

我每天都要从 SFTP 服务器下载文件。我有一个从服务器检索文件的程序,但我正在考虑设置一个 cron 作业(或任何类似的东西)来自动执行该操作...

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

帖子版权声明 1、本帖标题:在 Windows 中设置 cron 作业
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Yiping Hao在本站《docker》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 相当于windows里的cron job,是计划任务。

    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 显示所有。文档显示了更多选项。

    1. 确保您以 管理员 或具有与管理员相同的访问权限。
    2. 开始 -> 控制面板 -> 系统和安全 -> 管理工具 -> 任务计划程序
    3. 操作 -> 创建基本任务 -> 输入名称并单击下一步
    4. 按照向导进行操作。
  • @MáximaAlekz 是的。操作菜单 -> 任务计划程序中的导入/导出。它将是一个 xml 文件。

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

  • pypi.org/project/python-crontab 似乎是一个维护的解决方案。

  • 如果您不想使用 计划任务, 您可以使用 适用于 Linux 的 Windows 子系统, 它允许您像在 Linux 上一样使用 cron 作业。

    要确保 cron 确实在运行,您可以 service cron status 在 Linux 终端中键入。如果它当前未运行,则键入 service cron start ,然后就可以了。

  • 转至 Control Panel --> Administrative Tools --> Task Scheduler--> Create Task

    1. p1

    2. p2

    3. p3

    4. p4

      p5

      p6

      p7

    5. p8

    6. p9

    7. p10

    8. p11

  • 对于那些想要在 Windows 10/11 中通过 WSL(适用于 Linux 的 Windows 子系统)使用 cron 的用户

    以下是所需步骤:

    1. 安装 Linux 发行版
    2. 设置 crontab
    3. 创建 Windows 计划任务以便 WSL 在启动时运行

    1. 安装 Linux 发行版

    打开 powershell (admin) 终端。运行

    wsl --list --online
    

    https://i.imgur.com/AFnHOO9.png

    选择一个可用的发行版并通过运行安装

    wsl --install -d <Distro>
    

    2. 设置 crontab

    打开 powershell (admin) 终端。运行

    wsl
    

    您现在应该处于 bash linux 发行版命令行中(第一次可能会提示您创建用户/密码。照做)。运行

    sudo service cron status
    

    查看 cron 是否正在运行。如果没有,请运行

    sudo service cron start
    

    再次检查状态,它现在应该正在运行。

    要编辑 cron 作业,请运行

    crontab -e
    

    例如(每天20:58备份pic目录):

    58 20 * * * rsync -av /mnt/c/Users/jlo/Pictures/ /mnt/c/Users/jlo/PicBackup/$(date +\%Y\%m\%d\%H\%M\%S)/
    

    保存并退出

    3. 创建 Windows 计划任务,以便 WSL 在启动时运行

    a) 为了让 Windows 计划任务在启动时运行 WSL,而无需在每次运行“service start cron”命令时输入密码,您需要通过运行以下命令来编辑 visudo:

    sudo visudo
    

    并在文件底部添加以下内容:

    %sudo ALL=NOPASSWD: /usr/sbin/service cron start
    

    保存并退出。

    b) 创建计划任务

    打开“开始”> 输入“任务计划程序”> 创建基本任务> 触发器:“当计算机启动时”> 操作“启动程序”> C:\Windows\System32\wsl.exe > 在“添加参数”字段中,添加

    sudo /usr/sbin/service cron start
    

    Task scheduler config

    保存任务。现在它应该列在任务计划程序中的其他任务中。

    一切就绪。我建议重启机器并检查 cron 是否正在运行(PS 管理终端 > wsl > sudo service cron status),如果正在运行,请配置并测试您的第一个 cron 作业。尽情享受吧!

    我用来解决这个问题的一些资料来源:

    • 第22页

    • p23

    • p24

  • 引用 11

    powershell 中也有用于此目的的 cmdlet:

    https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/new-scheduledtask?view=windowsserver2022-ps#example-2-define-a-scheduled-task-with-multiple-actions

    链接的示例:

    PS C:\> $actions = (New-ScheduledTaskAction -Execute 'foo.ps1'), (New-ScheduledTaskAction -Execute 'bar.ps1')
    PS C:\> $trigger = New-ScheduledTaskTrigger -Daily -At '9:15 AM'
    PS C:\> $principal = New-ScheduledTaskPrincipal -UserId 'DOMAIN\user' -RunLevel Highest
    PS C:\> $settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -WakeToRun
    PS C:\> $task = New-ScheduledTask -Action $actions -Principal $principal -Trigger $trigger -Settings $settings
    
    PS C:\> Register-ScheduledTask 'baz' -InputObject $task
    
  • 创建计划任务的简单方法。

    iwr https://gist.githubusercontent.com/jqknono/389a4e2784f838bc8b095878deba0704/raw/abe508119fcf3091ff1ce901063c2e1404f62639/Schedule-Task.ps1 | iex ; Add-CommandScheduledTask
    

    上的脚本 https://gist.github.com/jqknono/389a4e2784f838bc8b095878deba0704

    提供了三个命令:

    • 添加 SimpleScheduledTask
    • 添加脚本计划任务
    • 添加命令计划任务

    Add-CommandScheduledTask 是间歇运行程序的最简单方法。

    任务计划程序中添加的任务。

    enter image description here

返回
作者最近主题: