V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Sanko
V2EX  ›  问与答

python3 脚本 git push 问题

  •  
  •   Sanko · 2017-08-20 17:49:35 +08:00 · 2126 次点击
    这是一个创建于 2438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    git.py:

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

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

    第 1 条附言  ·  2017-08-20 19:10:16 +08:00
    谢谢大佬们提醒,已经解决了。确实是路径问题,chdir 下就好了。
    11 条回复    2017-08-20 18:33:27 +08:00
    blankme
        1
    blankme  
       2017-08-20 17:52:22 +08:00 via Android
    crontab 里的 python 命令用绝对路径
    ysc3839
        2
    ysc3839  
       2017-08-20 17:52:28 +08:00 via Android
    是不是因为 cron 运行的时候 PATH 环境变量缺了什么?
    yyfearth
        3
    yyfearth  
       2017-08-20 17:54:10 +08:00 via iPhone
    应该是没有 ssh key 的原因
    Sanko
        4
    Sanko  
    OP
       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
        5
    crysislinux  
       2017-08-20 17:59:39 +08:00
    可能还要 chdir 一下或者 git add 绝对路径,ssh key 也是一个可能的原因
    blankme
        6
    blankme  
       2017-08-20 18:07:29 +08:00 via Android
    ls 说的对,,还可能是因为工作目录
    Sanko
        7
    Sanko  
    OP
       2017-08-20 18:12:44 +08:00
    @yyfearth 那为什么手动执行的时候没问题呢
    Sanko
        8
    Sanko  
    OP
       2017-08-20 18:13:39 +08:00
    @crysislinux @blankme 目录我输出看了下就是我要 push 的目录
    blankme
        9
    blankme  
       2017-08-20 18:16:20 +08:00 via Android
    太丢人了,,连错两次。。。
    听听楼下大佬怎么说
    yyfearth
        10
    yyfearth  
       2017-08-20 18:19:07 +08:00
    @Sanko 要看你 cron 是 root 的还是你自己用户的

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

    如果是 root 的话 估计就是 ssh key 的问题 因为用户不同 root 找不到你 用户的 key
    Sanko
        11
    Sanko  
    OP
       2017-08-20 18:33:27 +08:00
    @yyfearth 我一直都是登陆服务器的 root 用户,ssh key 也是在 root 用户下生成的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1025 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:17 · PVG 03:17 · LAX 12:17 · JFK 15:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.