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

관련 정보