[oracle cloud] (ubuntu 22.04)에서 cron or crontab 사용하기 (초보의 실수)

yes 2023.05.09 15:54:06

oracle free tier (ubuntu 22.04)에서 cron or crontab 사용하기 (초보의 실수)

 

워낙 리눅스 초보라 한참을 헤맸습니다.

처음 검색했을때,  /etc/crontab 파일을 이용했습니다.
파일을 열어, 아래 행을 마지막에 삽입했습니다.  

0 8,17 * * * /volume1/docker/script/enc.sh

하루가 지났는데, 아무런 변화가 없네요.
그래서 좀더 검색을 했습니다.

 

 

 

crontab -e 를 사용하는 방법을 찾았습니다.

- 파일저장 경로가 살짝 다릅니다.  /tmp/crontab.fveRxQ/crontab

 

image.png.jpg

 

 

crontab -l   #크론탭 확인
crontab -e  #크론탭 작성
crontab -r   #크론탭 삭제

 

 

image.png.jpg

 

 

crontab -e

##마지막줄에 삽입
* * * * * echo "hello world" >> /root/aaa.log

 

위 명령어는 1분마다 hello world 를 aaa.log 에 기록합니다.

 

image.png.jpg

 

 

 

 

예제

crontab -e

15 1 * * * find "/volume1/movies" -mtime +6 -delete
10 1 * * * find "/volume1/enc" -mtime +8 -delete
5 1 * * * find "/volume1/utb" -mtime +6 -delete

*/10 * * * * /home/script/test.sh               #매 10분마다 실행

위 스크립트는 일정기간 지난 후, 자동으로 폴더의 파일을 삭제합니다.

(첫번째는 매일 새벽1시 15분에 실행합니다.)

 

 

36 * * * * /volume1/docker/script/enc.sh

위 스크립트는 아래 인코딩 스크립트를 자동으로 실행하게 합니다.

(매시간 36분에 실행합니다.)

 

 

*/10 * * * * /vo2/docker/script/wifi.sh >> log.txt 2>> err.txt
*/35 * * * * /usr/bin/sudo -H /vo2/docker/script/wifi2.sh >> log1.txt 2>> err1.txt
*/10 * * * * /vo2/docker/script/wifi3.sh >> log3.txt 2>&1

실행하면, 로그는 /root 폴더에 만들어 집니다. 원하는 경로를 지정해야 합니다.

 

 

 

 

 

 

** 결론

- crontab 은 두가지 방법이 존재합니다.

(etc/crontab 파일 이용  /  crontab -e 명령어를 이용하는것)

- 본인은 후자 crontab -e 를 이용합니다.

 

 

** 시간설정

- 서버 시간과 다르게 표시되어 crontab 실행이 안되었습니다.

timedatectl set-timezone Asia/Seoul

이렇게 입력하면, 서울 시간으로 됩니다.

 

 

** 타임존 바꾸고 크론을 재시작 해야 합니다.

sudo su
sudo service cron stop
sudo service cron start

 

 

 

총결론

- sudo su 권한으로 한다.

- 타임존 바꾼 후, cron 을 재시작 해야 합니다.