zoukankan      html  css  js  c++  java
  • Linux 定时执行shell脚本_crontab

    1、查看任务[oracle@XXXXX OracleBackA]$ crontab -l

    2、新增任务[oracle@XXXXX OracleBackA]$ crontab -e

    3、每天14点40执行/backup/OracleBackA/sh.sh 脚本,日志输出到 /backup/OracleBackA/shlog.txt

    40 14 * * * /backup/OracleBackA/sh.sh &>> /backup/OracleBackA/shlog.txt

    问题

    1、/bin/sh: /backup/OracleBackA/sh.sh: Permission denied

    shell脚本没有执行权限,chmod 755  sh.sh

    2、/backup/OracleBackA/sh.sh: line 59: ctxlc: command not found
    /backup/OracleBackA/sh.sh: line 67: sqlplus: command not found
    /backup/OracleBackA/sh.sh: line 69: ctxlc: command not found
    /backup/OracleBackA/sh.sh: line 71: [: : integer expression expected
    /backup/OracleBackA/sh.sh: line 106: sqlplus: command not found
    /backup/OracleBackA/sh.sh: line 108: [: : integer expression expected
    /backup/OracleBackA/sh.sh: line 136: [: : integer expression expected
    /backup/OracleBackA/sh.sh: line 136: [: : integer expression expected

    你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l 
    脚本时,要由用户来给出脚本的绝对路径,设置相应的环境变量。记住,既然是用户向c r o n 
    提交了这些作业,就要向c r o n提供所需的全部环境。不要假定c r o n知道所需要的特殊环境,它 
    其实并不知道。所以你要保证在s h e l l脚本中提供所有必要的路径和环境变量,除了一些自动 
    设置的全局变量。

    有两个方法,在shell里export或者复制到/etc/profile里面

    第一种解决办法:

    查看运行c r o n t a b任务的用户的环境变量:.bash_profile文件  vi /home/oracle/.bash_profile

    将export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID  这些路径都复制到shell脚本中,放在shell脚本开头

    shell脚本中:

    export ORACLE_BASE=/u01/oracle
    export  ORACLE_HOME=/u01/oracle/app/12.1.0

    第二种解决办法:

    将.bash_profile文件中的设置都复制到/etc/profile 文件中,不过要用root用户

  • 相关阅读:
    SpringBoot接口文件findBy方法写错导致抛出IllegalArgumentException
    用tomcat启动spring-boot
    Idea使用tool window中的persistence功能一键生成数据库实体
    Idea 启动 tomcat 报错
    详细梳理ajax跨域4种解决方案
    他们权利意识强,但是也会为生活牺牲很多
    每月碎碎念 | 2019.09
    说好不哭 我不会走
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/4262376.html
Copyright © 2011-2022 走看看