You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

群晖NAS定时任务执行命令失败:提示‘no such file’

群晖NAS定时任务执行Fossil脚本失败:参数被识别为文件的解决办法

问题详情

  • 系统版本:DSM 7.1.1-42962 Update 6
  • 定时任务自定义脚本:/bin/bash /volume1/backup/fossil/start_fossil.sh
  • 脚本start_fossil.sh内容:
#!/bin/bash
cd /volume1/@appstore/fossil-scm/bin
fossil server --port 8080 /volume1/backup/fossil/fossil --https
  • 执行报错:no such file: server
  • 异常情况:手动通过./start_fossil.sh、bash start_fossil.sh或终端直接执行命令均正常,尝试添加引号无效。

解决建议

1. 使用Fossil绝对路径执行

定时任务的执行环境可能未正确继承cd后的工作目录,直接用绝对路径调用Fossil避免依赖:

#!/bin/bash
/volume1/@appstore/fossil-scm/bin/fossil server --port 8080 /volume1/backup/fossil/fossil --https

2. 检查定时任务执行用户权限

群晖定时任务默认执行用户可能与手动执行的账号不同,确保执行用户对以下路径有读写执行权限:

  • /volume1/@appstore/fossil-scm/bin/fossil
  • /volume1/backup/fossil/fossil
    编辑定时任务时,在「任务设置」中选择你手动执行脚本的账号。

3. 补全环境变量

定时任务的PATH环境变量比终端更精简,可能导致依赖缺失,在脚本开头添加环境变量配置:

#!/bin/bash
export PATH=/volume1/@appstore/fossil-scm/bin:$PATH
fossil server --port 8080 /volume1/backup/fossil/fossil --https

也可以将终端执行echo $PATH的输出复制到export PATH=后,确保环境与手动执行一致。

4. 直接在定时任务中执行命令

如果脚本仍有问题,跳过脚本直接将命令写入定时任务的「自定义脚本」:

/volume1/@appstore/fossil-scm/bin/fossil server --port 8080 /volume1/backup/fossil/fossil --https

5. 修复脚本换行符

若脚本是Windows环境编辑的,CRLF换行符会导致Linux执行异常,用dos2unix转换格式:

dos2unix /volume1/backup/fossil/start_fossil.sh

内容的提问来源于stack exchange,提问作者SoulEviscerator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:18:23