【发布时间】:2015-01-14 03:10:48
【问题描述】:
我的脚本首先执行两个 python 脚本,它们将温度从传感器写入文件,然后通过 ftp 从 .sh 文件中上传。
由于某种原因,温度仅在我手动运行 .sh 文件时才会更新。当 crontab 运行脚本时,它只上传 ftp,但似乎不运行 python 脚本,除了 take_pic.py。
- crontab 从根的 crontab 执行。
- python 文件是可执行的
- 日志文件不显示任何内容
- 如果我手动运行脚本,一切都会完美运行
ftp.sh:
echo "Run :$(date)" >> python_temp.log
python write_temp.py >> python_temp.log
python temp_to_file.py >> python_temp_to_file.log
#raspistill -o snapshot2.jpg -n -w 1280 -h 720
python takePic.py
sleep 3
HOST=XX #This is the FTP servers host or IP address.
USER=XX #This is the FTP user that has access to the server.
PASS=XX #This is the password for the FTP user.
NOW=$(date +"%c")
# echo beginne upload
touch work
ftp -inv $HOST << EOF
user $USER $PASS
cd /bilder/
put snapshot2.jpg
rename snapshot2.jpg snapshot.jpg
put temp.js
bye
EOF
# echo erfolgreicher upload
temp_to_file.py
import subprocess
import datetime
import sys
output = subprocess.check_output("temper-poll -q -c" , shell=True)
output = output.rstrip()
#write to file
fobj_out = open("temp.js","w")
fobj_out.write('document.write("' + output + '*C ");')
fobj_out.close()
Crontab:
*/5 * * * * /root/ftp.sh
【问题讨论】:
-
发布您的 crontab 语法。你去过stackoverflow.com/tags/crontab/info吗?有很好的调试信息。
-
我认为问题在于 subprocess_check_output 不适用于 crontab
-
您可能需要使用完整路径,因为 crontab 不知道它在哪里运行。检查我提供的链接,有很好的信息。
-
好吧,正如我所说的,每 5 分钟上传一次。所以我不认为它是 Crontab
-
如果你想解决这个问题,你可以尝试做一些研究。我向您指出了一些资源,但您似乎没有检查过它们。如果你认为这不是 crontab 的问题,那么只需删除 crontab 标签,这样我们有一些知识的人就不会被打扰。