1. ํฌ๋ก ํํ์ (Cron Expression) ์ด๋?
ํฌ๋ก ํํ์(Cron Expression)์ ์๊ฐ ๊ธฐ๋ฐ ์์ ์ค์ผ์ค๋ง์ ์ํด ์ฌ์ฉ๋๋ ๋ฌธ์์ด ํ์์ ๊ท์น์ด๋ค.
์ฃผ๋ก ๋ฆฌ๋ ์ค์ ํฌ๋ก (Cron) ์ค์ผ์ค๋ฌ๋ Spring Scheduler, Quartz Scheduler ๊ฐ์ ์ผ์ ์์ฝ ์์คํ ์์ ์ด๋ค ์์ ์ ํน์ ํ ์๊ฐ์ ๋ฐ๋ณตํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
2. crontab ๋ช ๋ น๊ณผ crond ๋ฐ๋ชฌ
๋ฆฌ๋ ์ค์์ ํน์ ์์ ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ๋ ค๋ฉด `crontab` ๋ช ๋ น๊ณผ `crond` ๋ฐ๋ชฌ์ ํ์ฉํ๋ค.
2-1. crontab ๋ช ๋ น์ด
๐ crontab์ cron table์ ์ค์๋ง๋ก ์ฌ์ฉ์๊ฐ ๋ฐ๋ณตํด์ ์คํํ ๋ช ๋ น์ด๋ฅผ ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์คํํ๋๋ก ์ค์ ํ๋ ์์ ์์ฝ ์์คํ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด์ด๋ค.
โ `crontab` ๋ช ๋ น์ด
crontab -e ํฌ๋ก ์์
ํธ์ง (ํ์ฌ ์ฌ์ฉ์)
crontab -l ๋ฑ๋ก๋ ํฌ๋ก ์์
๋ชฉ๋ก ๋ณด๊ธฐ
crontab -r ๋ชจ๋ ํฌ๋ก ์์
์ญ์
crontab -u ์ฌ์ฉ์๋ช
-l ํน์ ์ฌ์ฉ์์ ํฌ๋ก ์์
๋ณด๊ธฐ (root ๊ถํ ํ์)
2-2. crond ๋ฐ๋ชฌ
๐ crond(cron daemon)๋ crontab์ ๋ฑ๋ก๋ ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ๋ ๋ฐ๋ชฌ ํ๋ก์ธ์ค์ด๋ค.
โ `crond` ๊ด๋ จ ๋ช ๋ น์ด
crond๋ ๋ฐ๋ชฌ์
systemctl status crond crond ์๋น์ค ์ํ ํ์ธ
systemctl start crond crond ์๋น์ค ์์
systemctl stop crond crond ์๋น์ค ์ค์ง
systemctl restart crond crond ์๋น์ค ์ฌ์์
systemctl enable crond ๋ถํ
์ crond ์๋ ์คํ
โ ๋ฆฌ๋ ์ค์ crontab ๋ช ๋ น์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก 5๊ฐ์ ํ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ๋ | ๊ฐ์ ๋ฒ์ | ์ค๋ช |
๋ถ(Minute) | 0-59 | ๋ช ๋ถ์ ์คํํ ์ง ์ง์ |
์(Hour) | 0-23 | ๋ช ์์ ์คํํ ์ง ์ง์ |
์ผ(Day of Month) | 1-31 | ๋งค์ ๋ช ์ผ์ ์คํํ ์ง ์ง์ |
์(Month) | JAN-DEC | ๋ช ์์ ์คํํ ์ง ์ง์ |
์์ผ(Day of Week) | 0-6 or SUN-SAT | ์์ผ ์ง์ (0=์ผ์์ผ, 6=ํ ์์ผ) |
* * * * * /ect/bashup.sh
๋ถ
์
์ผ
์
์์ผ
์คํํ ์คํฌ๋ฆฝํธ ๊ฒฝ๋ก
30 14 * * 1 /home/user/script.sh
→ ๋งค์ฃผ ์์์ผ ์คํ 2์ 30๋ถ์ /home/user/script.sh ์คํ
* ์ฐธ๊ณ ๋ก ์์๋๊ธฐ
์ ํํ ๋งํ๋ฉด ๋ฆฌ๋ ์ค์์ ํฌ๋ก ํํ์์ [๋ถ, ์, ์ผ, ์, ์์ผ, (์ฐ๋)] ์ฐ๋๊น์ง 6๊ฐ ํ๋์ด๋ ์ฐ๋๋ ์๋ตํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก 5๊ฐ ํ๋๋ผ๊ณ ํ๋ค. ์ด ๋ถ ์๊ฐ ์ผ ์ ์์ผ (์ฐ๋)
๐ ๋ฆฌ๋ ์ค์ ๊ธฐ๋ณธ crontab์ ์ด(Seconds) ํ๋๋ฅผ ์ง์ํ์ง ์์ง๋ง, Spring Scheduler, Quartz Scheduler ๋ฑ ์ผ๋ถ ํ๋ก๊ทธ๋จ์์๋ ๋งจ ์์ ์ด ํ๋๋ฅผ ์ถ๊ฐํ์ฌ 6๊ฐ์ ํ๋๋ก ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
3. ํฌ๋ก ํํ์ ์์
ํํ์ | ์คํ ์ฃผ๊ธฐ |
0 0 12 * * ? | ๋งค์ผ 12:00 (์ ์ค) |
0 0 0 * * ? | ๋งค์ผ 00:00 (์์ ) |
0 30 9 * * ? | ๋งค์ผ ์ค์ 9์ 30๋ถ์ ์คํ |
0 0 12 1 * ? | ๋งค์ 1์ผ 12์์ ์คํ |
0 0 12 ? * MON | ๋งค์ฃผ ์์์ผ 12์์ ์คํ |
0 0/15 * * * ? | ๋งค 15๋ถ๋ง๋ค ์คํ |
0 0 9-18 * * ? | ๋งค์ผ 9์๋ถํฐ 18์๊น์ง ๋งค ์ ์์ ์คํ |
0 0 12 ? * 2#1 | ๋งค์ ์ฒซ ๋ฒ์งธ ์์์ผ 12์์ ์คํ |
0 10 * * 1 /etc/check.sh | ๋งค์ฃผ ์์์ผ ์ค์ 10์์ /etc/check.sh ์คํ |
30 16 * * 0-2 /etc/batch.sh | ์ผ์์ผ๋ถํฐ ํ์์ผ๊น์ง ์คํ 4์ 30๋ถ์ /etc/batch.sh ์คํ |
30 02,14 * * 0-4 /etc/batch/sh | ์ผ์์ผ๋ถํฐ ๋ชฉ์์ผ๊น์ง ์ค์ 2์ 30๋ถ, ์คํ 2์ 30๋ถ์ /etc/batch.sh ์คํ |
10 1 1 1-12/2 * /etc/batch/sh | 1์๋ถํฐ 12์๊น์ง 2๊ฐ์๋ง๋ค 1์ผ, ์ค์ 1์ 10๋ถ์ /etc/batch.sh ์คํ |
4. ํน์๋ฌธ์
ํน์๋ฌธ์ | ์๋ฏธ |
* | ๋ชจ๋ ๊ฐ (์: * * * * * ? → ๋งค์ด ์คํ) |
? | ํน์ ๊ฐ ์์ (์ผ๊ณผ ์์ผ์์๋ง ์ฌ์ฉ) |
- | ๋ฒ์ ์ง์ (์: 10-12 → 10๋ถํฐ 12๊น์ง) |
/ | ๊ฐ๊ฒฉ ์ง์ (์: */5 → 5๋ถ๋ง๋ค) |
, | ์ฌ๋ฌ ๊ฐ ์ง์ (์: 1,15 → 1์ผ๊ณผ 15์ผ) |
L | ๋ง์ง๋ง ๋ (์: L → ์์ ๋ง์ง๋ง ๋ ) |
W | ๊ฐ์ฅ ๊ฐ๊น์ด ํ์ผ (์: 15W → 15์ผ์ด ์ฃผ๋ง์ด๋ฉด ๊ฐ์ฅ ๊ฐ๊น์ด ํ์ผ) |
# | ํน์ ์์ผ์ ๋ช ๋ฒ์งธ ์ฃผ (์: 2#1 → ์ฒซ ๋ฒ์งธ ์์์ผ) |
'Linux&Shell' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Linux/๋ฆฌ๋ ์ค] umask๋? umask ๊ฐ ๊ณ์ฐํ๊ธฐ (6) | 2025.03.05 |
---|---|
[Linux/๋ฆฌ๋ ์ค] ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ ๋ฆฌ (4) | 2025.01.11 |
[๋ฆฌ๋ ์ค/Linux] ๊ฐ๋จํ๊ฒ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด ์ฐ์ตํด ๋ณผ ์ ์๋ ์ฌ์ดํธ JS Linux (70) | 2024.12.09 |