我试着让一个程序从一个特定的URL下载一个文件。检查是否存在并重命名原始文件
当我用sudo命令运行它时,一切正常。我说。。真 的!!完成!当我把它添加到cron标签中。。。繁荣!什么都不管用。你知道吗
我读了一篇帖子,上面说做一个脚本,然后从那里运行它,所以我做了
sudo crontab -e -> */5 * * * * /home/pi/guardian/run_update.sh
run_update.sh -> #!/bin/sh sudo /usr/bin/python /home/pi/guardian/updater.py
我遇到的问题:
我无法使用操作系统重命名命令在这两种情况下崩溃,没有错误相同,没有错误
*上面的错误我通过在变量上使用较小的名称来修复
你知道吗操作系统(“sudo mv”+s1+“”+s2)
我无法使用存储从web下载的文件
地址:
testfile = urllib.URLopener()
urllib.urlretrieve(s1, s2)
或者使用
getfile = urllib2.URLopener(fromwhere+downloadfiles[i])
with open(downloadfiles[i],'wb') as output:
data=getfile.read(4096)
if data:
output.write(data)
else:
break:
请给出建议
经过多次尝试后,我发现程序在命令行上运行得非常完美,而在crontab上运行时几乎没有任何效果,因此在我现在的情况下,使用“try and seek”技术,问题是我无法存储下载的文件
回答来自维卡什·辛格非常感谢,先生!!你知道吗
程序试图将下载的文件保存到“/root”中,之后只是存储位置和路径的问题。你知道吗
为什么不更新crontab来直接运行python代码呢。而不是调用调用python脚本的shell脚本。你知道吗
更新:在注释中进行了长时间的讨论之后,我们发现从crontab运行的代码正在根目录中编写文件。作为crontab,根用户的默认目录是“/”。你知道吗
修复是添加完整的路径写入文件。此完整路径是我们查找文件的预期路径。你知道吗
另一个选项是将crontab更改为首先将目录更改为预期目录,然后运行程序:
解释当用sudo从命令行运行程序时它为什么工作。
当程序在命令行中执行时,用户将运行以下程序:
当我们用crontab root用户运行它时。它将在根目录中运行,因为这是程序的运行目录。在航站楼,它会像:
这将在
/
目录中创建输出文件相关问题 更多 >
编程相关推荐