使用 crontab 运行 .sh 脚本

使用 crontab 运行 .sh 脚本

我有一个名为diario.sh我手动运行的文件./diario.sh

脚本文件包含以下内容:

#!/bin/bash
cd /home/etapa/Scripts
echo "@CDRS_ETAPATOTAL.sql" | sqlplus -s ooperadores/ooperadores@OOPERADORES | while read output;
do
echo $output
done

当我手动运行它时工作正常,但是当我尝试使用它运行它时crontab出现以下错误:

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][@<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]

ERROR:
ORA-12162: TNS:net service name is incorrectly specified


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

条目crontab如下:

10 * * * * /home/etapa/Scripts/diario.sh > /home/etapa/Scripts/diario.log 2>&1

请帮我解决这个问题。

答案1

当您从 cron 运行此脚本时,某些环境变量似乎未填充。您可以通过获取 ( . /path/name) 适当的文件来解决这个问题,例如

#! /bin/bash
. /home/etapa/.bash_profile

相关内容