sql - cronjob 中未分配变量值

标签 sql linux bash cron

我有一个代码,当手动执行时(通过此命令,即 ./script.sh )将查询结果分配给一个变量,但是当它通过 crontab 自动执行时,查询结果不会分配给变量。

请在下面找到代码:

diff=0;

diff=`sqlplus -s user/pswd@leadb2 << END
      set pagesize 0 feedback off verify off heading off echo off;
      SELECT (to_Date($timeRightNow,'YYYYMMDDHH24MISS') - to_date($timeoffile,'YYYYMMDDHH24MISS') ) * 24 * 60
      difference_in_minutes
      from dual;
END`



echo "Difference is $diff ">>/backup2/softdev/settlement/p.txt

最佳答案

这通常是因为您的 cron 不知道您在 .profile 中初始化的变量。当您通过 cron 运行此脚本时,甚至 sqlplus 的路径也不可用。因此,要解决此问题,请按以下格式设置 cron 作业,它会正常工作。

    00 * * * * . ~/.profile && /home/absolut_path_to_script.sh > /home/log_file_path.txt

关于sql - cronjob 中未分配变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068332/

相关文章:

linux - Ubuntu是否达到了大多数用户都对用户友好的地步?

bash - 如何使用 sed 搜索日期之间的日志

PHP PDO : Unable to connect, 目录名称无效

mysql - 使用大型数据集提高 Run-Once 查询的 MySQL 性能

python - cx_Oracle python 模块在 Linux 中的安装

mysql - 如何从 mysqldump 中删除表

bash - 如何使用 makefile 更改所有文件扩展名

php - 删除 SQLite 中另一个表中不存在的所有行

c# - linq to sql,从查询开始

linux - DOCKER_OPTS 在系统重启后重置