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

おすすめ記事