这一点不怨树莓派,也不怨linux,好吧好吧,my fault。
Python一段代码,通过 crontab -e
增加一段执行任务:
# m h dom mon dow command
30 * * * * /home/pi/Projects/water-it/water-it.py
做了工作内容包括:
- 增加脚本执行头:#!/bin/python
- 授权执行权限:chmod +x /home/pi/Projects/water-it/water-it.py
代码中设计一个通过 subprocess
执行 git
的操作,但运行之后发现并没有预期效果。最终结论:
crontab
执行环境为/home/pi
,脚本中open("file",'w')
会尝试写入/home/pi/file
文件,同样,subprocess
执行的git add .
只会尝试添加/home/pi
下的文件
处理:
- 获取当前脚本路径,如
os.path.abspath(__file__)
- 文件使用全路径
- 执行
git
前先os.chdir
过去