IT๊ธฐ์ดˆ

๋ฆฌ๋ˆ…์Šค cron์œผ๋กœ ๋ฐ˜๋ณต ์ž‘์—… ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• – ์ดˆ๋ณดํŽธ

๐Ÿฅ„ํ…Œํฌ ํ•œ ์Šคํ‘ผ 2026. 5. 27. 13:44

๋ชฉ์ฐจ

  1. ๋งค๋ฒˆ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ ๊ท€์ฐฎ๋‹ค๋ฉด?
  2. cron์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  3. crontab ๋ฌธ๋ฒ• ์™„์ „ ์ดํ•ดํ•˜๊ธฐ
  4. crontab ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•
  5. ์‹ค์ „ ์˜ˆ์‹œ – ์ž์ฃผ ์“ฐ๋Š” cron ์„ค์ • ๋ชจ์Œ
  6. cron์ด ์‹คํ–‰๋˜์ง€ ์•Š์„ ๋•Œ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
  7. ์ •๋ฆฌ ๋ฐ ๋‹ค์Œ ๋‹จ๊ณ„

1. ๋งค๋ฒˆ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ ๊ท€์ฐฎ๋‹ค๋ฉด?

์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋‹ค ๋ณด๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…๋“ค์ด ์ƒ๊น๋‹ˆ๋‹ค. ๋งค์ผ ์ƒˆ๋ฒฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—…ํ•˜๊ฑฐ๋‚˜, ๋งค์ฃผ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ •๋ฆฌํ•˜๊ฑฐ๋‚˜, ๋งค์‹œ๊ฐ„ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ž‘์—…๋“ค์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ž‘์—…์„ ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ฒˆ๊ฑฐ๋กญ๊ณ , ๊นœ๋นกํ•  ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์—๋Š” ์ด๋Ÿฐ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋Š” cron์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•ด๋‘๋ฉด ์ง€์ •ํ•œ ์‹œ๊ฐ„์— ์•Œ์•„์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

2. cron์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

cron์€ ๋ฆฌ๋ˆ…์Šค์—์„œ ํŠน์ • ๋ช…๋ น์–ด๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์Šค์ผ€์ค„๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์œˆ๋„์šฐ์˜ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

cron ์ž‘์—…์€ **crontab(cron table)**์ด๋ผ๋Š” ํŒŒ์ผ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋ณ„๋„์˜ crontab ํŒŒ์ผ์„ ๊ฐ€์ง€๋ฉฐ, ์ด ํŒŒ์ผ์— ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ๋ช…๋ น์–ด๋ฅผ ํ•œ ์ค„์”ฉ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

cron์˜ ๋™์ž‘ ์›๋ฆฌ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ผœ์ ธ ์žˆ๋Š” ๋™์•ˆ cron ๋ฐ๋ชฌ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ์‹คํ–‰๋˜๋ฉด์„œ, ํ˜„์žฌ ์‹œ๊ฐ„์ด crontab์— ๋“ฑ๋ก๋œ ์‹œ๊ฐ„๊ณผ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

3. crontab ๋ฌธ๋ฒ• ์™„์ „ ์ดํ•ดํ•˜๊ธฐ

crontab์˜ ๊ฐ ์ค„์€ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ถ„ ์‹œ ์ผ ์›” ์š”์ผ ์‹คํ–‰ํ• ๋ช…๋ น์–ด

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ์™€ ํ—ˆ์šฉ ๋ฒ”์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๋ฒ”์œ„์„ค๋ช…
๋ถ„ 0~59 ๋ช‡ ๋ถ„์— ์‹คํ–‰ํ• ์ง€
์‹œ 0~23 ๋ช‡ ์‹œ์— ์‹คํ–‰ํ• ์ง€
์ผ 1~31 ๋ช‡ ์ผ์— ์‹คํ–‰ํ• ์ง€
์›” 1~12 ๋ช‡ ์›”์— ์‹คํ–‰ํ• ์ง€
์š”์ผ 0~7 ๋ฌด์Šจ ์š”์ผ์— ์‹คํ–‰ํ• ์ง€ (0๊ณผ 7์€ ์ผ์š”์ผ)

ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ๋‹ค์–‘ํ•œ ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ„ํ‘œ(*)๋Š” "๋ชจ๋“  ๊ฐ’"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ ํ•ญ๋ชฉ์— *๋ฅผ ์“ฐ๋ฉด ๋งค์‹œ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์Šฌ๋ž˜์‹œ(/)๋Š” "๊ฐ„๊ฒฉ"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. */5๋Š” "5๋งˆ๋‹ค"๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋ถ„ ํ•ญ๋ชฉ์— */5๋ฅผ ์“ฐ๋ฉด 5๋ถ„๋งˆ๋‹ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‰ผํ‘œ(,)๋Š” "์—ฌ๋Ÿฌ ๊ฐ’"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 1,15๋Š” 1์ผ๊ณผ 15์ผ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ดํ”ˆ(-)์€ "๋ฒ”์œ„"๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 1-5๋Š” 1๋ถ€ํ„ฐ 5๊นŒ์ง€๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ๋ฅผ ๋ช‡ ๊ฐ€์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งค์ผ ์ƒˆ๋ฒฝ 2์‹œ์— ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. 0 2 * * * ๋ช…๋ น์–ด

๋งค์ฃผ ์›”์š”์ผ ์˜ค์ „ 9์‹œ์— ์‹คํ–‰ํ•˜๋ ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. 0 9 * * 1 ๋ช…๋ น์–ด

5๋ถ„๋งˆ๋‹ค ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. */5 * * * * ๋ช…๋ น์–ด

๋งค์›” 1์ผ ์ž์ •์— ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ์”๋‹ˆ๋‹ค. 0 0 1 * * ๋ช…๋ น์–ด

crontab ๋ฌธ๋ฒ•์ด ํ—ท๊ฐˆ๋ฆด ๋•Œ๋Š” crontab.guru ์‚ฌ์ดํŠธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

4. crontab ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

crontab ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

crontab -e

์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด ํŽธ์ง‘๊ธฐ๋ฅผ ์„ ํƒํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. nano๊ฐ€ ๊ฐ€์žฅ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— nano๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ๊ฐ€ ์—ด๋ฆฌ๋ฉด ์›ํ•˜๋Š” cron ์ž‘์—…์„ ํ•œ ์ค„์”ฉ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. nano์—์„œ๋Š” Ctrl + X → Y → Enter๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋“ฑ๋ก๋œ cron ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

crontab -l

ํŠน์ • ์‚ฌ์šฉ์ž์˜ crontab์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ ค๋ฉด -u ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sudo crontab -u ์‚ฌ์šฉ์ž๋ช… -l

๋ชจ๋“  cron ์ž‘์—…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ฆ‰์‹œ ๋ชจ๋“  ์ž‘์—…์ด ์‚ญ์ œ๋˜๋ฏ€๋กœ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

crontab -r

5. ์‹ค์ „ ์˜ˆ์‹œ – ์ž์ฃผ ์“ฐ๋Š” cron ์„ค์ • ๋ชจ์Œ

์˜ˆ์‹œ 1. ๋งค์ผ ์ƒˆ๋ฒฝ 3์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… 0 3 * * * mysqldump -u root -p๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช… > /backup/db_backup.sql

์˜ˆ์‹œ 2. ๋งค์ฃผ ์ผ์š”์ผ ์ž์ •์— ๋กœ๊ทธ ํŒŒ์ผ ์••์ถ• 0 0 * * 0 gzip /var/log/nginx/access.log

์˜ˆ์‹œ 3. ๋งค 10๋ถ„๋งˆ๋‹ค ์„œ๋ฒ„ ์ƒํƒœ ์ฒดํฌ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ */10 * * * * /home/ubuntu/scripts/check_server.sh

์˜ˆ์‹œ 4. ๋งค์›” 1์ผ ์ƒˆ๋ฒฝ 4์‹œ์— ์˜ค๋ž˜๋œ ์ž„์‹œ ํŒŒ์ผ ์‚ญ์ œ 0 4 1 * * find /tmp -type f -mtime +30 -delete

์˜ˆ์‹œ 5. ์„œ๋ฒ„ ์žฌ๋ถ€ํŒ… ํ›„ ์ž๋™์œผ๋กœ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ @reboot /home/ubuntu/scripts/start_services.sh

@reboot๋Š” ํŠน์ˆ˜ ํ‚ค์›Œ๋“œ๋กœ, ์„œ๋ฒ„๊ฐ€ ์žฌ๋ถ€ํŒ…๋  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

6. cron์ด ์‹คํ–‰๋˜์ง€ ์•Š์„ ๋•Œ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

cron์„ ๋“ฑ๋กํ–ˆ๋Š”๋ฐ ์‹คํ–‰์ด ์•ˆ ๋œ๋‹ค๋ฉด ์•„๋ž˜ ์ˆœ์„œ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

1๋‹จ๊ณ„. cron ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

sudo systemctl status cron

active (running) ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด sudo systemctl start cron์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„. cron ์‹คํ–‰ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

grep CRON /var/log/syslog

cron์ด ์‹คํ–‰๋๋Š”์ง€, ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ๋กœ๊ทธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. ๋ช…๋ น์–ด ๊ฒฝ๋กœ๋ฅผ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

cron์€ ์ผ๋ฐ˜ ํ„ฐ๋ฏธ๋„๊ณผ ํ™˜๊ฒฝ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ƒ๋Œ€ ๊ฒฝ๋กœ๋‚˜ ๋ณ„์นญ(alias)์ด ์ธ์‹๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์–ด์™€ ํŒŒ์ผ ๊ฒฝ๋กœ๋Š” ๋ฐ˜๋“œ์‹œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ(/usr/bin/python3 ๋“ฑ)๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4๋‹จ๊ณ„. ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ํ•  ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์ด ์—†์œผ๋ฉด cron์ด ์‹คํ–‰ํ•ด๋„ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. chmod +x ์Šคํฌ๋ฆฝํŠธํŒŒ์ผ๋ช… ์œผ๋กœ ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

7. ์ •๋ฆฌ ๋ฐ ๋‹ค์Œ ๋‹จ๊ณ„

์˜ค๋Š˜ ๋ฐฐ์šด ํ•ต์‹ฌ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • cron์€ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์Šค์ผ€์ค„๋Ÿฌ์ž…๋‹ˆ๋‹ค.
  • crontab ํ˜•์‹์€ ๋ถ„ ์‹œ ์ผ ์›” ์š”์ผ ๋ช…๋ น์–ด ์ˆœ์„œ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • crontab -e๋กœ ์ž‘์—…์„ ๋“ฑ๋กํ•˜๊ณ , crontab -l๋กœ ๋ชฉ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • cron ๋ช…๋ น์–ด๋Š” ๋ฐ˜๋“œ์‹œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์ž‘์„ฑํ•˜๊ณ , ์Šคํฌ๋ฆฝํŠธ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰์ด ์•ˆ ๋  ๋•Œ๋Š” /var/log/syslog์—์„œ CRON ๊ด€๋ จ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์„œ๋ฒ„์—์„œ swap ๋ฉ”๋ชจ๋ฆฌ๋ž€ ๋ฌด์—‡์ธ์ง€, ์–ธ์ œ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.