Cron

cron

cron은 μœ λ‹‰μŠ€/λ¦¬λˆ…μŠ€ μ‚¬μš©μžλ‘œ ν•˜μ—¬κΈˆ νŠΉμ •ν•œ λͺ…λ Ήμ΄λ‚˜ 슀크립트λ₯Ό μ§€μ •ν•œ μ‹œκ°„/λ‚ μ§œμ— μžλ™μœΌλ‘œ μž‘μ—…μ„ μ‹€ν–‰ν•˜κ²Œ ν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€. 즉, cron은 미리 κ΅¬μ„±λœ μ‹œκ°„μ— μ‹€ν–‰λ˜λ„λ‘ μž‘μ—…μ„ ν• λ‹Ήν•˜λŠ” μŠ€μΌ€μ€„λ§ 도ꡬ 이닀.

crontab

cron μ„€μ • 파일둜, crontable을 쀄여 crontab이라 λΆ€λ₯Έλ‹€. μ‹œμŠ€ν…œ μš΄μ˜μ— ν•„μš”ν•œ μž‘μ—…μ€ rootκΆŒν•œμœΌλ‘œ /etc/crontab 에 λ“±λ‘ν•΄μ„œ 주기적으둜 μˆ˜ν–‰ν•  수 있고, μ‚¬μš©μžλŠ” crontabλͺ…령을 μˆ˜ν–‰ν•΄μ„œ 등둝할 수 μžˆλ‹€.(macμ—μ„œλŠ” /var/at/tabs 에 crontab -e둜 등둝 κ°€λŠ₯)

$ ps -ef | grep crond # cron의 μ‹€ν–‰ 확인

ν•„λ“œ

μ„€μ • κ°’ 및 λ‚΄μš©

minute

0~59둜 μ„€μ •

hour

0~23으둜 μ„€μ •

day of month

1~31으둜 μ„€μ •

month

1~12둜 μ„€μ •

day of week

μš”μΌ, 0~7둜 μ„€μ • 0,7 : μΌμš”μΌ, 1~6: μ›”~ν†  직접 sun, mon, tue, wed,thu,fri,sat으둜 μž…λ ₯ν•΄λ„λœλ‹€.

user-name

μ‚¬μš©μž 이름을 λͺ…μ‹œ(일반적으둜 μƒλž΅)

command

μ‹€ν–‰ν•  λͺ…λ Ήμ–Όλ₯΄ κΈ°μž…ν•œλ‹€.

각 ν•„λ“œκ°’μ€ μœ„μ˜ ν‘œμ— λͺ…μ‹œλœ κ°’μ΄μ™Έμ˜ 값듀을 μ‚¬μš©ν•  수 μžˆλ‹€.

κ°’

μ„€λͺ…

*

λͺ¨λ“ (all)

-

μ—°κ²°λœ μ„€μ • κ°’ μ§€μ •μ‹œ μ‚¬μš©

,

μ—°κ²°λ˜μ§€ μ•Šμ€ 값을 λ‚˜μ—΄ν•  λ•Œ μ‚¬μš©

/

μ—°κ²°λœ μ„€μ • κ°’ λ²”μœ„μ—μ„œ νŠΉμ • 주기둜 λ‚˜λˆŒ λ•Œ μ‚¬μš©

# μ›”~κΈˆκΉŒμ§€ μ˜€ν›„ 12μ‹œμ— work.sh 슀크립트 μˆ˜ν–‰
0 12 * * 1-5 /home/dh0023/work.sh 
# 1μ›”~12μ›”κΉŒμ§€ 2κ°œμ›”λ§ˆλ‹€ 1일 μ˜€μ „ 4μ‹œ 10뢄에 check.sh μ‹€ν–‰
10 4 1 1-12/2 * /etc/check.sh
# μ›”μš”μΌ μ˜€μ „ 10μ‹œμ— NoticeλΌλŠ” 제λͺ©μœΌλ‘œ root/notice 파일의 λ‚΄μš©μ„ μ§€μ •ν•œ λ©”μΌλ‘œ λ°œμ†‘
0 10 * * 1 cat /root/notice | mail -s "Notice" example@naver.com
# μ›”, 수, 금 μ˜€μ „ 4μ‹œμ— `.bak` 파일 μ°Ύμ•„ μ‚­μ œ
0 4 * * 1,3,5 find / -name `*.bak` -exec rm -rf {} \;

λͺ…λ Ήμ–΄

$ crontab [option] 파일λͺ…

μ˜΅μ…˜

μ„€λͺ…

-l

crontab에 μ„€μ •λœ λ‚΄μš© 좜λ ₯

-e

crontab의 λ‚΄μš© μž‘μ„±ν•˜κ±°λ‚˜ μˆ˜μ •

-r

crontab λ‚΄μš© μ‚­μ œ

-u

rootμ‚¬μš©μžκ°€ νŠΉμ • μ‚¬μš©μžμ˜ crontab νŒŒμΌμ„ λ‹€λ£° λ•Œ μ‚¬μš©

$ crontab -l
$ crontab -e
$ crontab -r
$ crontab -e -u example # example μ‚¬μš©μžμ˜ crontab λ‚΄μš©μ„ μˆ˜μ •ν•˜κΈ°λ‚˜ μž‘μ„±

μ‚¬μš©μž μ œν•œ

/etc/cron.allow , /etc/cron.deny 파일둜 cron μ‚¬μš©μžλ₯Ό μ œν•œν•  수 μžˆλ‹€. /etc/cron.allow 파일이 μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” cron.deny 파일 여뢀와 상관없이 λ“±λ‘λœ μ‚¬μš©μžλ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. .allow 파일이 μ‘΄μž¬ν•˜μ§€ μ•Šκ³ , .deny 파일만 μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” .deny νŒŒμΌμ— λ“±λ‘λœ μ‚¬μš©μžλŠ” μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€.

μ°Έμ‘°

Last updated

Was this helpful?