zoukankan      html  css  js  c++  java
  • Ubuntu 定时任务中的环境变量设置

    背景

      1,定时任务命令 crontab -e

      2,默认的环境变量

    SHELL=/bin/sh
    PATH=/usr/bin:/bin
    PWD=/home/owl
    LANG=zh_CN.UTF-8
    SHLVL=1
    HOME=/home/owl
    LANGUAGE=zh_CN:zh
    LOGNAME=owl
    _=/usr/bin/env

    解决方法

      一、使用绝对路径;

      二、手动设置环境变量

        在shell文件开头    

    PATH=/...
    export PATH

      三、批量设置环境变量

       1,在shell文件中执行2

       2,使用source指令执行shell文件

    遇到的问题

      问题:在crontab定时执行的shell文件中无法执行source指令

      分析:在命令行中执行该shell文件正常,推测环境变量问题。

      解决:1,尝试在运行source指令前,修改PATH环境变量,无效。

        原因是,source是bash指令,其执行不依赖环境变量,只取决于shell的执行器。

        2,修改SHELL环境变量为/bin/bash,执行成功。

    总结

      shell的执行器有bash、sh等

      在shell的开头通过 #!/bin/sh或 #!/bin/bash 注明该shell的执行器。

      手动执行方式 sh+shell文件 或bash+shell文件

  • 相关阅读:
    23种设计模式
    Java实现动态代理的两种方式
    jQuery easyui combobox级联及内容联想
    使用Spring MVC统一异常处理
    springmvc下使用kaptcha做验证码
    Hadoop及spark介绍
    jQuery easyui 之 expend row
    Http 1.1协议
    公钥、私钥、CA认证、数字签名、U盾
    SOA架构介绍
  • 原文地址:https://www.cnblogs.com/the-owl/p/5889810.html
Copyright © 2011-2022 走看看