python3 脚本 git push 问题

2017-08-20 17:49:35 +08:00
 Sanko

git.py:

import os
os.system('git add .')
os.system("git commit -m'backup'")
os.system('git push origin master')

上面这个脚本我手动执行没有任何问题,能够 push 到我的仓库,但是如果我设置成 crontab 任务,就 push 不了了,查看 crontab 日志发现确实执行了,请问这是什么问题

2199 次点击
所在节点    问与答
11 条回复
blankme
2017-08-20 17:52:22 +08:00
crontab 里的 python 命令用绝对路径
ysc3839
2017-08-20 17:52:28 +08:00
是不是因为 cron 运行的时候 PATH 环境变量缺了什么?
yyfearth
2017-08-20 17:54:10 +08:00
应该是没有 ssh key 的原因
Sanko
2017-08-20 17:56:00 +08:00
@blankme 我是这样设置的,run.py 是可以正常运行的
```python
0 */1 * * * /usr/bin/python3 /test/weibo/run.py
* */6 * * * /usr/bin/python3 /test/weibo/git.py
````
crysislinux
2017-08-20 17:59:39 +08:00
可能还要 chdir 一下或者 git add 绝对路径,ssh key 也是一个可能的原因
blankme
2017-08-20 18:07:29 +08:00
ls 说的对,,还可能是因为工作目录
Sanko
2017-08-20 18:12:44 +08:00
@yyfearth 那为什么手动执行的时候没问题呢
Sanko
2017-08-20 18:13:39 +08:00
@crysislinux @blankme 目录我输出看了下就是我要 push 的目录
blankme
2017-08-20 18:16:20 +08:00
太丢人了,,连错两次。。。
听听楼下大佬怎么说
yyfearth
2017-08-20 18:19:07 +08:00
@Sanko 要看你 cron 是 root 的还是你自己用户的

如果是你自己用户的话 估计是环境变量的问题 因为 cron job 的 shell 可能和你的 terminal 不同 所以 profile 之类的可能没有运行 path 之类的可能不对

如果是 root 的话 估计就是 ssh key 的问题 因为用户不同 root 找不到你 用户的 key
Sanko
2017-08-20 18:33:27 +08:00
@yyfearth 我一直都是登陆服务器的 root 用户,ssh key 也是在 root 用户下生成的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX