๋ชฉ์ฐจ
- ๋งค๋ฒ ์ง์ ์คํํ๋ ๊ฒ ๊ท์ฐฎ๋ค๋ฉด?
- cron์ด๋ ๋ฌด์์ธ๊ฐ?
- crontab ๋ฌธ๋ฒ ์์ ์ดํดํ๊ธฐ
- crontab ๋ฑ๋กํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
- ์ค์ ์์ – ์์ฃผ ์ฐ๋ cron ์ค์ ๋ชจ์
- cron์ด ์คํ๋์ง ์์ ๋ ํ์ธํ๋ ๋ฐฉ๋ฒ
- ์ ๋ฆฌ ๋ฐ ๋ค์ ๋จ๊ณ
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 ๋ฉ๋ชจ๋ฆฌ๋ ๋ฌด์์ธ์ง, ์ธ์ ์ค์ ํด์ผ ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.