不确定是否有人遇到过这个问题,但我会采纳有关故障排除和/或替代方法的建议。
我有一台 Windows 2008 服务器,我在其上运行多个计划任务。其中一项任务是使用 pscp 登录 linux 框的 python 脚本,检查新文件,如果有任何新文件,则将它们复制到 C: 驱动器上的本地目录。我也在关键点对脚本进行了一些登录,我正在使用 logging.basicConfig(level=DEBUG)
。
我使用变量 command = 'pscp -pw xxxx name@ip:/ c:\local_dir'
构建命令,然后使用 subprocess.call(command)
来执行命令。
现在这是奇怪的部分。如果我从命令行手动运行脚本,它工作正常。下载并处理新文件。但是,如果任务计划程序运行该脚本,则不会下载任何新文件。该脚本在同一用户下运行,但会产生不同的结果。
根据脚本创建的日志文件和linux box上的日志文件,脚本成功登录到linux box。但是,尽管有新文件,但没有下载任何文件。同样,当我通过命令行运行它时,会下载文件。
有任何想法吗?建议,替代方法?
谢谢。
原文由 user1070061 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试在 Linux VM 上打开 MS Access 数据库时,我遇到了同样的问题。在 Windows 7 命令提示符下运行脚本有效,但在任务计划程序中运行脚本无效。使用 Task Scheduler,它会找到数据库并验证它是否存在,但不会返回其中的表。
解决方案是让 Task Scheduler 将 cmd 作为程序/脚本运行,参数为 /c python C:\path\to\script.py (在 Add arguments (optional) 下)。
我不能告诉你为什么这有效,但它解决了我的问题。