HP-UX

cron 실행시 계정에 따른 차이 있나요?

 
강원일
비정기 기여자

cron 실행시 계정에 따른 차이 있나요?

계정 : root, oracle



오라클 DB를 hotbackup받기 위한 스크립트를 작성해서 cron으로 돌렸습니다.

스크립트를 직접 실행시키면 계정에 상관없되는데 oracle 계정으로crontab에 등록시켜서 실행시키면 실행은 되는데 DB백업은 되지않습니다.

루트계정으로 스크립트를 만드는것과 오라크 계정으로 스크립트를 만드는게 차이점이 있나요? 고수님들 도와주세요..^^;
5 응답 5
Joseph
초등학생

cron 실행시 계정에 따른 차이 있나요?

.profile과 같은 환경변수를 설정한 파일이 실행이 안 되어서 그렇습니다.

보통 crontab에 아래와 같이 하면 위 문제를 해결할 수 있습니다.



00 00 * * 1 su - oracle -c "/var/adm/cron_src/oracle_hotbackup.sh"



Good day~~

강원일
비정기 기여자

cron 실행시 계정에 따른 차이 있나요?

oracle 계정으로 작성하고, oralce 계정의 crontab에 등록해놨는데도 그렇게 따로 설정 해줘야하나요?



참고로 export 를 사용해서 환경변수는 맞춰줬습니다.

그렇기때문에 oracle 계정으로 직접 실행했을때 아무런 에러 없이 잘 실행이 됐었습니다. 그런데 oracle 계정의 crontab에 등록시켜 실행시키면 실행이 안됩니다..ㅡㅡㅋ
Joseph
초등학생

cron 실행시 계정에 따른 차이 있나요?

oracle crontab에 등록하고 싶으시면

.profile에 보시면 오라클 관련 환경변수가 설정되어 있습니다.

설정된 환경변수들을 스크립트안에 포함시켜주면 됩니다.



만약 위와 같은 작업을 안 하실 경우

root crontab에 아래와 같이 등록하면 .profile이 실행되고 hotbackup.sh가 실행되죠..

su - oracle -c "/sh/hotbackup.sh"





강원일
비정기 기여자

cron 실행시 계정에 따른 차이 있나요?

감사합니다. 이제 되네요..그런데..

su - oracle -c "/sh/hotbackup.sh"

에서 -c 옵션이 무얼뜻하는건가요?
고재진
중학생

cron 실행시 계정에 따른 차이 있나요?

기본적으로 crontab에 등록되서 실행되는것은 .profile에 있는 환경변수를 읽지 않고 실행됩니다..

그래서 su - 라는 옵션을 붙여서 .profile 을 읽도록 하던지 아니면

스크립트에 환경변수를 집어 넣어줘야 됩니다.



-c 옵션은 command라고 생각하시면 될것같습니다..