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
'이것저것' 카테고리의 다른 글
스택(Stack)과 힙(Heap) 차이점 (0) | 2022.01.02 |
---|---|
전처리기 (0) | 2021.12.31 |
apt vs apt-get 차이 (2) | 2021.12.28 |
작업스케쥴러에 프로그램 등록후 자동시작이 안되는 문제 (0) | 2021.12.17 |
cron(UNIX/Linux) - 작업 예약 명령 - 수정 (0) | 2021.12.14 |