跳到主要内容

3、问题:如何定时执行winodws上的.sh脚本呢?-2024.8.4(待解决)

问题:如何定时执行winodws上的.sh脚本呢?-2024.8.4(待解决)

背景

我想定时发布docusaurus内容到公网,该如何执行本地xyy2命令呢?

image-20240803225320009

这个xyy2是在git bash终端里可以执行的。

问题

winodws的/d/docusaurus/resource/shell/目录下有个xyy2.sh脚本,如何利用windows的定时任务,让这个脚本周期执行呢?

gpt回答

要在 Windows 上利用任务计划程序(Task Scheduler)定期运行一个 .sh 脚本(例如 xyy2.sh),需要一些设置步骤,因为 Windows 原生支持的是批处理文件(.bat)和 PowerShell 脚本(.ps1),而不是直接支持 Unix 的 shell 脚本(.sh)。我们可以使用 WSL(Windows Subsystem for Linux)来执行这个脚本。

以下是具体步骤:

  1. 安装 WSL(如果尚未安装)

    • 打开 PowerShell 以管理员身份运行以下命令来安装 WSL 和 Ubuntu:

      wsl --install
    • 安装完成后,重启你的电脑。

  2. 将 WSL 设置为默认版本(如果需要)

    • 在 PowerShell 中运行以下命令:

      wsl --set-default-version 2
  3. 编写批处理文件来运行 Shell 脚本

    • 创建一个批处理文件(例如 run_xyy2.bat),内容如下:

      @echo off
      wsl /mnt/d/docusaurus/resource/shell/xyy2.sh
    • 这种方式告诉 Windows 使用 WSL 来运行指定路径的 Shell 脚本。

  4. 设置任务计划程序

    • 打开任务计划程序:按 Win + R,输入 taskschd.msc 并回车。
    • 在任务计划程序中,选择 创建基本任务
    • 按照向导进行操作:
      • 名称和描述:为你的任务命名,例如 "Run xyy2.sh script"。
      • 触发器:设置你希望任务运行的频率(例如每天、每周等)。
      • 操作:选择 启动程序,然后浏览选择你创建的批处理文件 run_xyy2.bat
      • 完成:按完成保存任务。
  5. 验证任务

    • 在任务计划程序库中找到你的任务,右键点击选择 运行,确保任务能够正常执行。

注意事项

  • 路径转换:在 WSL 中,Windows 的盘符被映射为 /mnt 目录下的子目录。例如:D: 盘在 WSL 中的路径为 /mnt/d

  • 执行权限:确保你的 Shell 脚本具有执行权限。在 WSL 中使用以下命令:

    chmod +x /mnt/d/docusaurus/resource/shell/xyy2.sh
  • 脚本测试:在 WSL 中手动测试你的脚本,确保其能正常运行:

    wsl /mnt/d/docusaurus/resource/shell/xyy2.sh

通过这些步骤,你就可以在 Windows 中利用任务计划程序定期执行 Unix Shell 脚本。

测试后,还是有问题哦。。。

image-20240804073141487

结论

先当作遗留把,自己手动推送静态数据把。

2024年8月4日