.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

 

출처 : https://jdm.kr/blog/2

 

 

 

 

 

+ 환경변수 crontab에 직접 선언

명령어 라인에서 crontab -e를 실행했을 때 그 crontab 자체에서 환경 변수를 정의할 수 있습니다.

LANG=nb_NO.UTF-8
LC_ALL=nb_NO.UTF-8
# m h  dom mon dow   command

* * * * * sleep 5s && echo "yo"

출처 : https://sdr1982.tistory.com/340

'OS > OS 공통' 카테고리의 다른 글

crontab  (0) 2022.08.08
플랫폼  (0) 2022.07.24
운영체제와 커널  (0) 2022.07.24

+ Recent posts