Crontab 스케줄러 다루기
Crontab 스케줄러 다루기
안녕하세요. JP-Hosting입니다. 리눅스에서 일정한 시간마다 반복 작업을 해야 할 때, 사용하는 Crontab에 대해 알아보도록 하겠습니다. 윈도우에는 작업 스케줄러가 존재하듯, 리눅스에도 Crontab이 존재합니다. 특정한 시간마다 정해둔 명령어가 계속 실행되도록 도와주는 패키지인데요. Crontab 설정에 대해 다루어보려고 합니다. 1. /etc/crontab 파일을 직접 수정하는 방법 2. Crontab 명령어를 이용하는 방법테스트환경은 Centos 7.8 버전입니다.
[root@localhost ~]# rpm -qa *-release centos-release-7-8.2003.0.el7.centos.x86_64
Crond 서비스 확인
[root@localhost ~]# systemctl status crond● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2020-05-30 15:01:43 JST; 29min agoMain PID: 31877 (crond)CGroup: /system.slice/crond.service└─31877 /usr/sbin/crond -nMay 30 15:01:43 localhost.localdomain systemd[1]: Started Command Scheduler.May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 49% if used.)May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (running with inotify support)May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Crontab 설정
[root@localhost ~]# vi /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed
[root@localhost ~]# crontab -e # 내 crontab 수정[root@localhost ~]# crontab -l # 내가 설정한 crontab 확인[root@localhost ~]# crontab -e -u test # test란 이름의 사용자의 crontab 수정[root@localhost ~]# crontab -l -u test # test란 이름의 사용자의 crontab 확인
*/1 * * * * echo "every 1 min" # 1분마다 실행*/30 * * * * echo "every 30 min" # 30분마다 실행30 */6 * * * echo "every 6hours at 30 mins" # 6시간마다 실행 (00:30, 06:30, 12:30, 18:30)30 1-18/2 * * * echo "every 2hours on 1am - 6pm" # (01 ~ 18)까지 매 2시간마다 실행 01:30, 03:30, ... 17:30)
From [email protected] Sat May 30 16:19:01 2020Return-Path: <[email protected]>X-Original-To: rootDelivered-To: [email protected]: by localhost.localdomain (Postfix, from userid 0)id 417A51B6010A; Sat, 30 May 2020 16:19:01 +0900 (JST)From: "(Cron Daemon)" <[email protected]>To: [email protected]: Cron <root@localhost> echo "every 1 min"Content-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=33>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>X-Cron-Env: <LANG=en_US.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>X-Cron-Env: <USER=root>Message-Id: <[email protected]>Date: Sat, 30 May 2020 16:19:01 +0900 (JST)every 1 minFrom [email protected] Sat May 30 16:20:01 2020Return-Path: <[email protected]>X-Original-To: rootDelivered-To: [email protected]: by localhost.localdomain (Postfix, from userid 0)id 539BA1B6010D; Sat, 30 May 2020 16:20:01 +0900 (JST)From: "(Cron Daemon)" <[email protected]>To: [email protected]: Cron <root@localhost> echo "every 1 min"Content-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=34>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>X-Cron-Env: <LANG=en_US.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>X-Cron-Env: <USER=root>Message-Id: <[email protected]>Date: Sat, 30 May 2020 16:20:01 +0900 (JST)every 1 min
이번 포스트에서는 간단하게 Crontab을 사용하는 방법에 대해 알아보았는데요.
이런 Crontab의 경우 주로 시간 동기화나 http 재시작, 주기적인 백업 스크립트 작동등
여러 방면에서 활용도가 높은 패키지입니다.
서버 문의는 텔레그램통해 연락 부탁드립니다.
좋은하루 되세요!
참고URL
위 게시글에 문제가 있을 시, 삭제하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.