2017-12-03 15 views
0

cronjob에 내 스크립트를 추가해야합니다. 하지만 그것은 sqlprompt에 연결되지 않고 내 쿼리를 실행하지 않습니다. 크론은 #!/빈/bash는 sqlprompt 내부 나, 스크립트가 sqlprompt에 연결하기가 없습니다 직면하고CRON에서 sql 쿼리를 실행할 수 없습니다.

sql=/instance_name/../product/12102 // ORACLE_HOME loc 

connnect=$($sql -s "/ as sysdba" <<EOF 
spool h1.txt 
select file_name from dba_data_files where tablespace_name='RTSPACE'; 
spool off; 
exit 
EOF) 
cat "h1.txt" | mail -s "test" [email protected] 
exit 

문제가되지 않습니다 다른 명령에 대해 잘 작동합니다. 현재 메일을 받고 있습니다. 쿼리의 출력은 읽히지 않습니다. 내 메일 본문이 비어 있습니다.

+0

I 해결책을 찾았습니다. bash 쉘 이외에 다른 쉘인 및 source ~./bash_profile의 source ~./profile만을 소스로 사용하십시오. >/dev/null로 전환하면 오류가 발생합니다. 이 수렁은 SQL 프롬프트에 연결됩니다. –

답변

0

I 솔루션을 찾았습니다. bash 이외의 다른 쉘에 대해서는 ~./profile을 source하고 bash 쉘에 대해서는 source/.bash_profile을 사용하십시오. >/dev/null로 전환하면 오류가 발생합니다. 이 수렁은 SQL 프롬프트에 연결됩니다.

source ~./bash_profile >/dev/null 
source ~./profile >/dev/null 

sqlplus -s "/ as sysdba" <<EOF 
spool h1.txt 
select file_name from dba_data_files where tablespace_name='RTSPACE'; 
spool off; 
exit 
EOF) 
cat "h1.txt" | mail -s "test" [email protected] 
exit