티스토리 뷰
crontab 은 어떤 주기적인 처리를 꽤 영리하게 도와주는 Linux 시스템에 없어서는 안될 스케줄러이다. 특정시간에 파일시스템을 정리한다던가 주기적으로 알람을 발송한다던가 또는 시스템 자원을 모니터링한다던가 등등 많은 활용분야가 있겠다.
이렇게 편한 크론탭을 사용할 때 잊어서는 안되는 중요한 사실이 있다. 바로 스케줄러에 의해 실행되는 job 은 [cron] 권한으로 실행된다는 점인데 그렇기 때문에 우리는 아래 두가지 사항을 항상 체크해야 한다.
- 스케줄링 하려는 명령어의 PATH (환경변수)가 cron 에게 있는지.
- 스케줄링 하려는 명령어를 cron 이 실행시킬 수 있는지 ( = 권한이 있는지 )
첫번째 내용의 경우에는 그냥 습관처럼 명령어의 절대경로를 써주면 해결된다. 극단적인 예를들어 리눅스의 date 명령어를 crontab 에서 실행시킨다면 /usr/bin/date 와 같이 절대경로를 포함시키면 된다는 의미다.
두번째 내용의 경우에는 특정 사용자의 디렉터리에 존재하는 명령어를 실행시키는 경우가 되겠다. crontab 은 사용자별로 관리되기 때문에 사실 흔한 케이스는 아니다. 아무튼 이때는 su 의 힘을 빌려서 아래와 같이 실행시켜주면 된다.
$ su - caley -c command
caley 라는 계정으로 셸을 로그인해서 command 명령어를 실행시키라는 의미로 생각하면 되겠다. 상당히 간단한 내용이지만 모르면 고생하는 경우가 있겠다. 이제 두가지 문제를 잘 피해서 crontab 에 스케줄을 등록하고 모니터링 하시면 되겠다. 일반적으로는 아래 경로를 통해서 실행되는 것을 확인하면 된다.
$ ls -al /var/log/cron /var/log/syslog
crontab 에 뭔가 등록해야 하는데 사용법을 잘 모르겠다면 아래 사이트를 참고해보도록 하자. 개인적으로는 인터넷에 널린 여러 사이트중에 crontab 을 제일 직관적으로 표현해주고 있다고 생각한다.
'개발 > Linux' 카테고리의 다른 글
logrotate 사용하기 ( CentOS 기준 ) (0) | 2018.08.28 |
---|---|
vim : 멀티라인 커맨드 (0) | 2018.08.09 |
리눅스 명령어 삼대장: find, grep, awk (6) | 2018.02.07 |
백그라운드로 작업하는 몇 가지 방법 (0) | 2017.12.02 |
동적 메모리를 free하고 NULL로 세팅하는 이유 (4) | 2017.08.22 |
- Total
- Today
- Yesterday