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

向Rundeck传文件后Python脚本无法读取,请求排查解决

问题分析与修复方案

核心原因

你的Rundeck作业配置了节点过滤器filter: XYXYX.com,意味着Python脚本是在远程目标节点XYXYX.com上执行的,但通过Rundeck文件选项上传的文件,默认只存储在Rundeck服务器本地(路径/home/rundeck/var/upload/...),远程节点上根本不存在这个文件,所以所有路径检测都会返回False。

解决方案

根据你的执行场景选择对应方案:

方案1:脚本改在Rundeck服务器本地执行

如果你的脚本不需要在远程节点运行,直接修改作业的节点过滤器为Rundeck服务器本身:

  • 把作业定义中的nodefilters.filter改为localhost(或者Rundeck服务器的主机名)
  • 这样脚本在Rundeck服务器执行时,就能直接访问到/home/rundeck/var/upload/...路径下的上传文件,路径检测会正常返回True

方案2:将上传文件同步到远程节点执行

如果必须在远程节点XYXYX.com执行脚本,需要先把上传的文件拷贝到远程节点,再执行脚本:

  1. 添加文件拷贝步骤:在Python脚本执行步骤之前,新增一个File Copy类型的步骤:
    • 源文件路径填写 ${file.history_path}
    • 远程目标路径填写远程节点上的可读写路径,比如 /tmp/${file.history_path.fileName}
  2. 修改Python脚本执行参数:把原来传递的${file.history_path}改成远程节点的目标路径,比如:
    /opt/project_venv/project/bin/python /opt/projects/project_file/main.py /tmp/${file.history_path.fileName} ${file.history_path.fileName} ${option.method} ${option.exp_format} /tmp/${file.file2.fileName} ${file.file2.fileName} ${option.start} ${option.end}
    
  3. 确保远程节点上的Rundeck执行用户(默认是rundeck)对/tmp目录有读写权限。

额外验证点

  • 确认Rundeck服务器上的rundeck用户对/home/rundeck/var/upload/目录有读权限(默认已经配置好,但可以用ls -l /home/rundeck/var/upload/验证)
  • 如果使用方案2,确认远程节点的rundeck用户能访问目标路径(比如/tmp)

测试修改后的脚本

修改完成后,你的Python脚本就能正常找到文件,后续可以直接用Pandas读取:

import pandas as pd
df = pd.read_excel(hsp) # 这里hsp现在对应远程节点上的正确路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:25:35