BOX-IT/Linux

[Linux] cron 이용해서 1분마다 특정 문자열이 출력되도록 하기

Buang 2022. 5. 18. 14:20
반응형

* Cent os 7을 기준으로 설명한 글입니다.

 

Cron을 이용해서 'Reeker'라는 문자열이

1분마다 출력되도록 해보려고 합니다.

 


1. 사용자에게 cron을 사용할 수 있는 권한 부여하기

 

sudo vi /etc/cron.allow

 

로 들어가서 빈 파일에

사용자 계정명을 작성한다.

그래야 사용자가 cron을 사용할 수 있다.

내 계정명은 reeker라서 reeker를 작성해주고

ESC키 누르고 :wq!를 눌러서 저장하고 나왔다.

 

그리고

sudo vi /etc/crontab

를 통해서 crontab을 열어서

 

MAILTO=root를 

MAILTO=reeker로 바꿔줬다. 


2. a.txt.log 파일 만들기

 

cd ~                   <<home 밑에 사용자 계정 폴더로 이동하라는 명령어

touch a.txt.log     << a.txt.log란 파일 만들기

 

이 a.txt.log 파일에 Reeker란 문자열이 계속 출력되도록 만들 것이다.

 


3. crontab에서 편집하기

 

crontab -e

 

를 입력한 후 거기에 

*/1 * * * * echo 'Reeker' >> $HOME/a.txt.log

이렇게 작성했을 때 안될 때도 있다.

 

*/1 * * * * echo 'Reeker' >> /home/reeker/a.txt.log

 

를 입력하면 된다.

위에 걸 해석해보자면

 

* * * * * *

점 하나 당

분, 시, 일, 월, 요일이다.

 

*/1 * * * * 이렇게 쓰면 1분마다 실행하라는 뜻이다. 

*/10 * * * *  이렇게 쓰면 10분마다 실행하라는 뜻이다.

 

주의할 점은 ***** 이렇게 작성하면 안돼고

* * * * * 이렇게 점 사이를 띄어서 써야 한다.

단 */1을 쓸 때는 붙여서 쓴다.

 

 

echo는 파이썬을 배웠다면 print라고 생각하면 쉽다.

echo 'Reeker' 즉 Reeker를 출력하라는 뜻이다.

 

아직 파이썬을 모른다면 그냥 Reeker란 문자열을 출력해줘라고

명령하는 게 echo란 아이라고 알아두자.

출력이란 말이 어려울 수도 있는데

빈 파일에 1분마다 Reeker란 문자열을 찍어내는 거라고 생각하면 된다.

 

 

이제 1분마다 Reeker란 문자를 어디에 찍어내야 하는지 알려줘야 한다.

 

$HOME은 home/reeker를 의미한다.

 

$HOME/a.txt.log는 사실

home/reeker/a.txt.log를 의미하기도 한다.

 

home 폴더 밑에 reeker 폴터 밑에 있는 a.txt.log 파일을 의미한다.

 

*/1 * * * * echo 'Reeker' >> $HOME/a.txt.log

 

를 정리하자면 /home 밑에 /reeker 밑에 있는 a.txt.log 파일에

Reeker란 문자열을 1분마다 찍어내라가 된다.

 

ESC 키 누르고 :wq! 눌러서 저장하고 나와준다.

 

crontabl -l

을 입력해서 잘 입력했는지 확인해보자.

 

찍어낸 걸 확인하는 방법은 파일 탐색기를 열면된다.


4. 파일 탐색기 열기

 

파일 탐색기를 열어서 확인하는 방법은 아래와 같다.

 

프로그램 (Applications) 클릭

Files 클릭한 후 

 

a.txt.log 파일을 클릭하면 

 

사진처럼 Reeker가 자동으로 찍히고 있는 걸 확인할 수 있다.

1분 마다 찍히는 거라 찍히는 속도가 좀 느리긴 하다.

 


 

*추가*

 

크론 로그 보는 방법

 

sudo cat /var/log/cron  입력하면 된다.

 

 

반응형