HP-UX
1751707 회원
5281 온라인
108781 솔루션
새 메시지

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

 
김종목
신규 회원

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

#crontab 등록내용

------------------------------------------------------------------

00 21 * * * /tmimgr/daemon/kjmtest/kjm_dbbackup.bash

------------------------------------------------------------------



# kjm_dbbackup.bash 내용

-----------------------------------------------------------------

#!/bin/bash



DATE2=`date +%Y%m%d`



exp id/passwd tables=testmin file=/tmimgr/daemon/kjmtest/dbtestmin$DATE2.dmp log=/tmimgr/daemon/kjmtest/dbexplogtestmin$DATE2.txt

------------------------------------------------------------------

#/var/log/cron 로그화일 내용

------------------------------------------------------------------

Apr 7 21:00:00 backendsvr crond: (tmp.9093) ORPHAN (no passwd entry)

Apr 7 21:00:00 backendsvr crond: (tmp.11880) ORPHAN (no passwd entry)

Apr 7 21:00:00 backendsvr CROND: (oracle) CMD (/tmimgr/daemon/kjmtest/kjm_dbbackup.bash)

------------------------------------------------------------------



HP-UX에서는 실행하면 Oracle DB Export백업화일이 잘생성되는데...

왜 Linux에서는 아무런 결과화일을 만들지 않는걸까요...

소유권한/실행권한도 모두 가지고 있습니다.

참고로 crontab에 등록하지 않고 그냥 Shell화일 실행하면 export잘 됩니다.



원인을 알고 계시는분 있으시면 알려주시면 감사하겠습니다.
4 응답 4
이태곤
중학생

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

안녕하십니까

원론적인 입장에서 먼저 말씀드리겠습니다.

이명령어가 아닌 다른 명령어을 만들어 동작하는지 확인하는것이 우선일듯합니다.

예)

# vi run.sh

/bin/date >> /tmp/cron_test.log

/bin/ls >> /tmp/cron_test.log



# chmod 555 run.sh



run.sh을 등록시켜 cron이 동작되는지 확인하십시오.

동작이 된다면 /tmimgr/daemon/kjmtest/kjm_dbbackup.bash 만의 문제이니 환경변수들을 점검해야 할것 같습니다.



cron을 oracle이 아닌 root로 실행시켜보는 것도 방법입니다.

00 21 * * * su - oracle -c /tmimgr/daemon/kjmtest/kjm_dbbackup.bash



때로는 .bash_profile에 다음과 같이 변수 정의을 해야 할경우도 있습니다.

HOME=user's-home-directory

LOGNAME=user's-login-id

SHELL=/usr/bin/sh



잘 알지 못하지만 몇자 적었습니다.

그럼 좋은하루되십시오
김종목
신규 회원

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

버튼을 잘못눌러 답변이 완료된것으로 됐습니다.



date >> /tmi/cron_test.log 등의 cron작업은 잘 됩니다.

root와 oracle 유저 모두로 테스트 해보았지만 exp명령만

처리가 안됩니다. 물론 /tmimgr 디렉토리내의 모든 화일은

chmod 777로 해놓았고 root유저로 테스트시에는 chown root:root로

해서 하였고, oracle유저로는 chown oracle:dba로 바꾼후 테스트하

였습니다.

Linux의 기본Shell인 bash(/bin/bash)을 사용했는데 HP-UX의

sh(/sbin/sh)을 사용할때랑 차이점이 있나요?

Linux에서 env 실행후 나오는 환경설정 내용에서 USER/HOME 등의

환경변수는 다 잡혀있는것을 확인하였습니다.
Joseph
초등학생

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

crontab에 등록하면 안되고 그냥 실행하면 되고.....



제 생각에는 PATH나 환경변수 문제인 것 같은데요...



Method 1.



위 crontab등록내용이 oracle유저의 등록내용인 것 같네요..



한번 root유저로 crontab에 아래처럼 등록해 보세요....



su - oracle -c "/tmimgr/daemon/kjmtest/kjm_dbbackup.bash"



가장 가능성이 크구요...



Method 2.

exp 명령어를 절대패스로 등록해 보세요.

오라클 사용환경에 따라 다르지만 보통 /oracle/app/oracle/product/817/bin/exp 처럼 될 겁니다..



Good luck^^
김종목
신규 회원

Linux Cron에 등록한 Shell스크립트 화일 실행후 결과화일이 안나오는데..

root에서 아래와 같이 등록하니 되네요.



00 21 * * * su - oracle -c /tmimgr/daemon/kjmtest/kjm_dbbackup.bash



로는 잘 되는군요. 참고로 su - oracle 을 부분을 su - root 로

해도 되더군요. 차이점은 생성된 화일의 소유자가 oracle 또는 root

라는 점이었습니다.



감사합니다.