首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

Crontab 无法正确读取 PATH 环境变量的解决办法

  •  
  •   thiswind · 2016-09-13 15:00:47 +08:00 · 1706 次点击
    这是一个创建于 953 天前的主题,其中的信息可能已经有所发展或是发生改变。

    运行这一句:

    curl -L https://git.io/vigfN | bash
    

    参考 braker-scripts/working-scripts/add_current_shell_and_path_to_crontab.sh

    13 回复  |  直到 2016-09-14 12:37:35 +08:00
        1
    doyel   2016-09-13 15:08:51 +08:00
    反正知道这毛病我所有 crontab 都直接写绝对路径。。
        2
    thiswind   2016-09-13 15:18:05 +08:00
    @doyel 绝对路径也木有用,因为它根本就不读 PATH 变量,环境变量全部都读不到。恩,不过一般很少会有需求会碰到这个坑
        3
    doyel   2016-09-13 15:22:36 +08:00
    那倒是,碰到取环境变量就抓瞎了
        4
    thiswind   2016-09-13 15:27:41 +08:00
    @doyel 直接执行那句话就行了,包治百病。。。不放心的话可以看源码,就是一个 bash 脚本, github 上 fork 的,亲测有效
        5
    ivanfjz   2016-09-13 15:27:47 +08:00
    ubuntu 读环境变量的。 centos 不读
        6
    lizheming   2016-09-13 15:32:34 +08:00
    vim /etc/crontab
    service crontab restart
    试试... 不过保险起见还是写绝对路径吧...=。=||
        7
    walkman660   2016-09-13 16:02:39 +08:00
    不自动那就自己加载环境变量
    source /etc/profile
        8
    cxbig   2016-09-13 16:03:52 +08:00
    求稳妥,所有命令和文件用绝对路径,环境变量直接先赋值,如果比较多就放文件里提前 source 一下
        9
    kikoroc   2016-09-13 16:13:32 +08:00
    赞同 @cxbig 的说法。
        10
    skydiver   2016-09-13 16:23:26 +08:00
    自己把 PATH 写到 crontab 里就行了。
    这脚本干的一样的事儿
        11
    thiswind   2016-09-13 16:26:27 +08:00
    @skydiver 恩,这个脚本就是干这个事情:)
    这个脚本的目的是用短域名,这样方便用手机拍照,也方便在机房手工敲
    手动写 PATH 一不小心容易错
        12
    skydiver   2016-09-13 16:29:07 +08:00
    @thiswind echo PATH=$PATH 然后复制粘贴就行了

    在线上机器运行来源不明的脚本是大忌
        13
    dreamtrail   2016-09-14 12:37:35 +08:00
    第一行加上 PATH=/usr/local/bin:/bin:/usr/bin:/usr/sbin:/sbin 就行了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   898 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1