1월, 2021의 게시물 표시

R로 리눅스 cron 작업할 때 조심할 점(crontab)

 crontab은 cron 작업을 아주 편하게 할 수 있도록 돕는 도구다. 편한 만큼 조심할 점도 있다. 온라인을 검색하면 crontab 사용법을 찾을 수 있다. 작업 편집을 하려면, $ crontab -e 그리고 nano 같은 도구를 골라 적당히 다음과 같은 작업을 쓰면 될 것 같이 설명이 나온다. * * * * * my_run.sh 아마 다음과 같은 링크들을 찾을 수 있을 것이다. https://jdm.kr/blog/2 https://nahosung.tistory.com/95 https://kibua20.tistory.com/89 R 사용자가 위 링크만 보고 crontab을 건드리면 정말 어렵고 힘든 길을 가야 한다. 왜냐하면 중요한 것들이 아무것도 설명되지 않았기 때문이다. crontab -e 로 실행되는 파일은 기본적으로 PATH가 설정되지 않았다. 따라서 PATH와 작업 HOME을 모두 설정해 줘야 한다. 우선 터미널에서 PATH를 확인하여 어디 적어두자. $ echo $PATH 이제 Rscript로 실행시킬 폴더 경로를 pwd 명령어로 알아내자. crontab -e를 실행 한 다음 가장 먼저 해 줄 것은 위에서 얻은 PATH와 실행파일(.sh)이 있는 경로를 HOME으로 설정하는 것이다. PATH=/usr/local/sbin:usr/local/bin:/usr/sbin:/sbin:/bin HOME=/home/mycom/myfolder 예를 들면 위와 같다. 이렇게 한 다음에 cron을 설정할 때 또 주의해야 한다. /home/mycom/myfolder/run.sh를 실행하려면 * * * * * ./run.sh 이렇게 해야 하고, run.sh의 권한을 766으로 바꿔줘야 한다. $ chmod 766 run.sh 이것이 끝이 아니다. $ R > .libPaths() [1] ... [2] ... 이렇게 경로가 나올 것이다. 여러분이 그냥 R로 실행했을 때 정상적으로 불러와지는 라이브러리도 cron으로 하면 안될 수도 있다. 따라서 현재 보이는 .lib