cron
cron이란 리눅스 시스템을 다룰때 특정시간이 지나면 정기적으로 프로그램이 실행되도록 하는 명령어다.
cron 프로그램 작성법은 다음과 같다.
~ crontab -e
# 처음 실행하면 어떤 에디터로 편집할것인지 선택하는 화면이 나오며 편한 에디터를 선택하면 된다.
맨 아래에 프로그램을 작성하면 된다.
왼쪽부터 순서대로 (분/시간/일/월/명령프로그램)작성하면 된다.
내가 작성한 프로그램은 1분이 지날 때 마다 현재 시간을 date.log라는 파일에 작성하는 자동화 프로그램을 작성했다.
위와 같이 작성 후 ^x, 엔터를 누르면 프로그램이 저장되며 crontab -l 명령을 내리면 작성한 프로그램을 확인 할 수 있다.
이제 cron프로그램이 제대로 실행되는지 확인하기 위해 tail -f 명령어를 통해 확인 할 수 있다.
~ tail -f date.log
1분이 지나면 자동으로 업데이트가 되어야 하는데 그러지 않는다.
그 이유는 윈도우 기본 wsl 환경에 문제가 있다고 한다.
wsl에서 cron 안될때 해결법
검색을 해본결과 윈도우10,11 wsl 에 설치한 우분투 가상환경설정에 문제가 있는것을 알게 되었다.
다음 명령어를 통해 cron상태가 동작하고있는지 확인하자.
~ sudo service cron status
위의 결과로 cron이 실행되지 않는다고 해서 다음 명령어를 통해 해결 할 수 있다.
~ sudo ALL=NOPASSWD: /usr/sbin/service cron start
이렇게 cron이 동작하도록 설정을 변경 후 다시 로그를 확인해 보면 정상적으로 cron이 실행되는것을 알 수 있다.
참고자료
How to Launch Cron Automatically in WSL on Windows 10 and 11 (howtogeek.com)
How to Launch Cron Automatically in WSL on Windows 10 and 11
Windows has several ways to automate tasks. The most common tool is the Windows Task Scheduler, but if you’re using the Windows Subsystem for Linux (WSL), there’s also the cron daemon that runs tasks in the background for your WSL install.
www.howtogeek.com
'테크 > 리눅스' 카테고리의 다른 글
[리눅스] 백그라운드, 데몬 프로세스 (0) | 2022.01.27 |
---|---|
[리눅스] 디렉토리 구조 & 파일찾기 (0) | 2022.01.26 |
[리눅스] 쉘 스크립트 맛보기 (0) | 2022.01.25 |
[리눅스] I/O Redirection (0) | 2022.01.24 |
[리눅스] 패키지 매니저(apt, wget, git) (0) | 2022.01.22 |