Unix/Linux shell script를 cron으로 동작시킬때 .bashrc .bash_profile .profile 의 변수가 적용되지 않는다.

 

.profile .cshrc .bashrc .bash_profile 등의 초기화 파일은  login shell 또는 interactive shell에서만 실행되기 때문에

crontab 으로 수행 시 초기화파일에 정의한 환경변수는 적용되지 않는다.

아래 3가지 방법 중 하나로 적용하면 환경변수가 적용되어 crontab에 등록한 쉘이 정상 작동한다.

 

설정방법

 

1. shell script 안에 초기화파일을 수행하는 라인 추가

#!/bin/bash

 . ~/.bash_profile

 

2. 쉘 script의 첫 라인에 bash -login 옵션을 사용.  --login 옵션(-l과 동일)을 사용하면 초기화파일이 모두 수행된다.

#!/bin/bash --login

 

3. root 유저로 수행

root 유저의 cron에 등록하여 su 스위치를 -c 옵션과 같이 사용하면 초기화파일이 수행된다.

예)   0 0 * * * su - username -c /home/username/check.sh

 

 

+ Recent posts