이것저것
crontab(Unix/Linux) 실행 시 환경변수
필유아사
2021. 12. 14. 13:38
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