crontab 관련 잘 정리된 내용이 있어 여기에 옮깁니다
[출처 : blog.naver.com/anysecure3/221739040530 ]
오늘은 리눅스에서 일정한 시간마다 반복 작업을 해야 할 때 사용하는 crontab에 대해서 알아보도록 하겠습니다.
특정한 시간마다 정해둔 명령어가 계속 실행되도록 도와주는 패키지 입니다
crontab 설정의 경우 두가지 방법으로 설정이 가능합니다.
첫번째는 /etc/crontab 파일을 직접 수정하는 방법
[root@localhost ~]# sudo nano /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=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
두번째는 crontab 명령어를 이용하는 방법
[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 확인
두 방법 모두 파일 에디터인 vim이나 nano를 이용하여 파일 수정을 하시면 됩니다
단 첫번째 방법의 경우 < 시간 > < 사용자 명 > < 원하는 명령어 > 순서로 적어주셔야 하지만
두번째 방법의 경우 < 시간 > < 원하는 명령어 > 로만 적어주시면 됩니다.
각 칸이 의미하는 시간은 다음과 같습니다.
0 5 * * * systemctl restart httpd
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───────── 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)
│ │ │ └───────── 월 (1 - 12)
│ │ └───────── 일 (1 - 31)
│ └───────── 시 (0 - 23)
└───────── 분 (0 - 59)
'모든'에 해당하는 글자로 숫자 대신 *을 붙이면 각각 매 분/시/일/월/요일이 가능합니다.
또한 / 를 통해서 '~ 마다'에 해당하는 설정을 할 수 있습니다.
*/30 * * * * echo "every 30min"
매 30분 마다 한번씩 실행
','를 통해서 여러 시간을 지정할 수 있습니다.
10,35 * * * * echo "every 10, 35min"
매시 10분, 35분 마다 실행
30 */6 * * * echo "every 6hours at 30mins"
매 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 )
이번 포스트에서는 간단하게 crontab을 사용하는 방법에 대해 알아보았는데요.
이런 crontab의 경우 주로 시간 동기화나 http 재시작, 주기적인 백업 스크립트 작동등
여러 방면에서 활용도가 높은 패키지이기 때문에 꼭 까먹지 마시고 기억 해두시면 좋을 것 같습니다.
감사합니다. 오늘도 좋은 하루 되세요. :)
[출처 : blog.naver.com/anysecure3/221739040530 ]
@reboot = run at boot and reboot only
@yearly = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)
@annually = run at midnight Jan 1 each year (equiv to 0 0 1 1 *)
@monthly = run at midnight on the first day of each month (equiv to 0 0 1 * *)
@weekly = run at midnight each Sunday (equiv to 0 0 * * 0)
@daily = run at midnight each day (equiv to 0 0 * * *)
@midnight = run at midnight each day (equiv to 0 0 * * *)
@hourly = run on the first second of every hour (equiv to 0 * * * *)
출처: https://hmjkor.tistory.com/420 [개발이야기]
DS5QDR 73!
'RaspberryPi' 카테고리의 다른 글
2021-11-29 RPi : Raspberry Pi 인터넷 시간 동기화 프로토콜 NTP (0) | 2021.11.29 |
---|---|
2021-10-02 RPi : 라즈베리파이 란 무엇인가? (0) | 2021.10.02 |
2021-03-12 RPi : Raspberry Pi 단축 명령어 (0) | 2021.03.12 |
2021-03-03 RPi : RPi DVSwitch Clone SD Card (복제) (2) | 2021.03.03 |
2021-02-11 RPi : 라즈베리파이 CPU 부하율과 온도 실시간 확인 (0) | 2021.02.11 |