wsl + crontab자동화 전반적인 개요
wsl 아래 Rscript 설치먼저 Rscript 명령어로 개발된 .R 스크립트를 실행할 경우 r-base-core를 설치한다. 최신 R 엔진이 필요한 경우 최신 R 엔진을 설치하는 방법을 구글링해서 설치한다. Rscript --version 명령어를 사용해서 스크립트를 실행할 수 있는지도 확인한다. which Rscript 명령어로 설치된 위치를 파악한다.
Rscript 헬로월드 실행Rscript 스크립트 작성which Rscript 명령어로 파악한 위치를 쉬뱅(shebang) 에 적어주고, R 스크립트 코드를 helloworld.R 파일에 저장시킨다.
Rscript 스크립트 실행Rscript helloworld.R 명령어를 실행시킬 수 있다.
Rscript 스크립트 작성chmod +x helloworld.R 와 같이 helloworld.R 파일을 실행가능하게 만들어 두고 테스트 한다.
crontab) 자동실행 등록 1마지막 단계로 crontab에 .R 스크립트를 등록하여 정해진 시간에 자동으로 실행되도록 한다. 이를 위해서 먼저 crontab에 whoami 명령어로 확인한 사용자명을 등록시킨다. 그리고 나서 crontab -l 명령어로 등록된 자동실행 명령어를 확인한다. crontab -e 명령어로 자동실행 스크립트를 등록시킨다.
$ whoami
사용자명
$ sudo usermod -a -G crontab 사용자명
no crontab for statkclee
$ crontab -e
no crontab for 사용자명 - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 1
crontab: installing new crontabcrontab 문법crontab은 * 별표 5개와 “실행가능한 R 스크립트”로 구성된다. 사실 R 스크립트가 아닌 다는 파이썬 스크립트나 실행가능한 뭐든 넣으면된다. 앞선 별표 5개는 월/일/시/분 그리고 요일로 구성되고 날짜를 넣어주면 원하는 시간에 자동으로 해당 스크립트를 실행시킬 있 이다.
crontab 테스트 2crontabl -l 내용을 바탕으로 등록된 cron 명령어를 즉시 모두 실행시킬 수 있다.
crontab -l: 등록된 모든 cron 명령grep -v '^#': 주석 제거cut -f 6- -d ' ': cron 설정 모두 제거while read CMD; do eval $CMD; done: 등록된 cron 명령어 하나씩 실행helloworld.R 1분마다 자동실행crontab -e를 통해 다음과 같이 cron 명령어를 넣어준다.
crontab 파일helloworld_file.R 명칭으로 R 스크립트를 작성한다. 한글이 깨지는 문제가 있어 저장할 때 options("encoding" = "UTF-8")을 지정하여 깨지는 문제가 없도록 한다.
# `helloworld_file.R`
options("encoding" = "UTF-8")
time_txt <- paste0("헬로월드 현재시각: ", Sys.time(), "\n")
cat(time_txt, file="helloworld_time.txt", append = TRUE)마찬가지 방식으로 crontab -e 명령어로 새로운 cron 작업을 등록시킨다.
cat 명령어로 이를 확인할 수 있다.