zoukankan      html  css  js  c++  java
  • 关于linux环境下crontab命令环境变量的问题

    这几天在弄数据库备份的事情,其中涉及到使用crontab命令自动执行shell脚本的问题,发现将写好的数据库导出脚本export.sh

    1  ###############################################################################
    2  extfile=`date +"%m_%d_%H_%M"`
    3  ###############################################################################
    4 exp aa/aa  file=/home/oracle/expfile/aafulltmp_$extfile.dmp constraints=y owner=aa log=n
    5 exp bb/bb  file=/home/oracle/expfile/bbfulltmp_$extfile.dmp constraints=y owner=bb log=n

    加入到crontab中会执行失败

    crontab内容如下

    [dbserver@db20 ~]$ crontab -l
    32 2 * * * /home/dbserver/exportdb.sh

    根据crontab执行后会给用户发送一封邮件中的提示显示

    /home/dbserver/export.sh: line 4: exp: command not found
    /home/dbserver/export.sh: line 5: exp: command not found

    看起来不是crontab的问题,而是没有找到exp命令,说明是环境变量的问题,crontab执行时环境变量与直接执行是不一样的,去网上找到了解决办法如下

    在shell脚本前面加入

    #!/bin/bash
    source /home/dbserver/.bash_profile

    最终的shell文件内容为

     ###############################################################################
     extfile=`date +"%m_%d_%H_%M"`
     ###############################################################################
    #!/bin/bash
    source /home/dbserver/.bash_profile
    exp aa/aa  file=/home/oracle/expfile/aafulltmp_$extfile.dmp constraints=y owner=aa log=n
    exp bb/bb  file=/home/oracle/expfile/bbfulltmp_$extfile.dmp constraints=y owner=bb log=n

    至此成功执行,还有一种方法是将exp命令写成绝对路径

    完结!

  • 相关阅读:
    利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力
    ARM系列处理器和架构
    Thumb扩展
    使用Redis分布式锁处理并发,解决超卖问题
    idea指定启动参数、环境变量
    Json返回结果为null属性不显示解决
    Spring Cloud Zuul 网关服务的fallback
    记录一次URL中有特殊字符怎么处理?
    logback的使用和logback.xml详解
    通过gitlab的webhook触发Jenkins自动构建设置
  • 原文地址:https://www.cnblogs.com/live365wang/p/4153076.html
Copyright © 2011-2022 走看看