LINUX
2018.10.01 / 21:44

cron

Chitta
Ãßõ ¼ö 136

cron Àº Unix °è¿­ OS ¿¡¼­ ¿À·§µ¿¾È »ç¿ëµÇ¾îÁø ÀÛ¾÷ ½ºÄÉÁÙ·¯ÀÌ´Ù. crontab À̶ó´Â ¼³Á¤ ÆÄÀÏÀ» ÅëÇؼ­ ¼öÇàÇÒ ÀÛ¾÷°ú ¼öÇàÇÒ ÀϽø¦ ÁöÁ¤ÇÑ´Ù.

 

 RHEL ÀÇ cron Àº ºò½Ã Å©·Ð(vixie-cron) À̶ó´Â ÆÐÅ°Áö¸¦ »ç¿ëÇßÀ¸³ª ¹öÀü 6 ºÎÅÍ´Â ºò½Ã Å©·Ð´ë½Å cronie ¶ó´Â ÆÐÅ°Áö°¡ µé¾î ÀÖ´Ù. cronie ÀÇ Â÷ÀÌÁ¡Àº anacron À̶ó´Â ºÎ°¡ À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¿© Á¤±âÀûÀÎ ÀÛ¾÷À» ¼öÇàÇÏ´Â ºÎºÐ¿¡ ÀÖ´Ù.

 

Á¤±âÀûÀÎ ÀÛ¾÷Àº /etc/anacrontab ÆÄÀÏÀ» »ç¿ëÇÏ¿© ¼öÇàÇÏ°Ô µÈ´Ù. ¸ÅÀÏ ¼öÇàÇÒ ÀÛ¾÷Àº /etc/cron.daily µð·ºÅ͸®¿¡ ÀÖÀ¸¸ç ÁÖ°£ ÀÛ¾÷Àº /etc/cron.weekly, ¿ù°£ ÀÛ¾÷Àº /etc/cron.monthly  µð·ºÅ͸®¸¦ ÀÖ´Â ³»¿ëÀ» ½ÇÇàÇÏ°Ô µÈ´Ù.

±âº» ¼³Á¤µÈ ¸ÅÀÏ ¼öÇà ÀÛ¾÷Àº ¼­ºñ½ºÀÇ ·Î±× ÆÄÀÏÀ» Á¤¸®Çϴ logrotate, Å°¿öµå·Î ¸Å´º¾óÀ» °Ë»öÇÒ ¼ö ÀÖ°Ô Àε¦½Ì ÇØÁִ makewhatis.cron ¸í·ÉµîÀÌ ÀÖ´Ù.

crontab

crontab Àº cron ÀÌ ½ÇÇàÇÒ ¸í·É¾î¿Í ¼öÇà ½Ã°£À» ÁöÁ¤ÇÏ´Â ¼³Á¤ ÆÄÀÏ À̸§ÀÌÀÚ ¸í·É¾îÀÌ´Ù. crontab option Çü½ÄÀ¸·Î ½ÇÇàÇÏ¸ç  ÀÚÁÖ ¾²´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.

 

¿É¼Ç
  • -l, ¸ñ·Ïº¸±â
    ÇöÀç »ç¿ëÀÚÀÇ crontab ¿¡ µî·ÏµÈ ³»¿ëÀ» Å͹̳ο¡ Ãâ·ÂÇØ ÁØ´Ù.
  • -r, »èÁ¦
    ÇöÀç »ç¿ëÀÚÀÇ crontab ¿¡ µî·ÏµÈ ³»¿ëÀ» ¸ðµÎ »èÁ¦ÇÑ´Ù.
  • -e, ÆíÁý
    ÇöÀç »ç¿ëÀÚÀÇ crontab À» ÆíÁý±â¸¦ ÀÌ¿ëÇÏ¿© ÆíÁýÇÑ´Ù. ÆíÁý±â´Â VISUAL ȯ°æ º¯¼ö¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â ÇÁ·Î±×·¥À» »ç¿ëÇÑ´Ù.
CRONTAB ¼³Á¤ Çü½Ä

crontab Àº # ¹®ÀÚ´Â ÁÖ¼®À¸·Î 󸮵Ǹç ÅÇÀ̳ª °ø¹éÀ» ±¸ºÐÀÚ·Î ÇÏ¿© 6°³ÀÇ Çʵ带 °®´Â´Ù. ¾ÕÀÇ 5°³ÀÇ Çʵå´Â ½Ã°£°ú ³¯ÀÚ¸¦ ÁöÁ¤Çϸç 6¹ø°´Â ½ÇÇàÇÒ ¸í·É¾îÀÌ´Ù. 

  1. ºÐ(0-59)
  2. ½Ã°£(0 - 23)
  3. ÀÏ (1-31)
  4. ´Þ(1 - 12) - ¶Ç´Â jan, feb, mar,apr °°ÀÌ Ãà¾à¾î·Î ÁöÁ¤ °¡´É
  5. ÁÖÀÏ(0 - 6), ÀÏ¿äÀÏÀº 0 ¶Ç´Â 7 ÀÌ µÈ´Ù. 2·Î ÁöÁ¤ÇÒ °æ¿ì È­¿äÀÏÀ̸ç sun, mon, tue, wed, thu °°ÀÌ Ãà¾à¾î·Îµµ ÁöÁ¤ °¡´ÉÇÏ´Ù.

½Ã°£°ú ³¯ÀÚ¸¦ ÁöÁ¤ÇÏ´Â Çʵ忡 º°Ç¥(*) ¸¦ ±â¼úÇÒ °æ¿ì ÇØ´ç ÇʵåÀÇ ¸ðµç ½Ã°£¿¡ ½ÇÇàÇÏ°Ú´Ù´Â Àǹ̰¡ µÈ´Ù. ¿¹·Î ºÐ¿¡ * ¸¦ ÁöÁ¤ÇÏ¸é ¸Å ºÐ¸¶´Ù ½ÇÇàÇÏ¸ç ½Ã°£¿¡ ÁöÁ¤ÇÒ °æ¿ì 1½Ã°£¸¶´Ù, ³¯ÀÚ¿¡ ÁöÁ¤ÇÒ °æ¿ì ¸ÅÀÏ ½ÇÇàÇÏ°Ô µÈ´Ù.

¿©·¯ ½Ã°£°ú ³¯ÀÚ¸¦ ÁöÁ¤ÇÒ °æ¿ì ÄÞ¸¶(,) ¸¦ ±¸ºÐÀÚ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¶Ç ƯÁ¤ ±¸°£À» ÁöÁ¤ÇÒ °æ¿ì ´ë½¬(-)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ ºÐ Ç׸ñ¿¡ ÁöÁ¤ÇßÀ» °æ¿ì

0,3,17-1940 1-2 * * * ls

¸ÅÀÏ ¿ÀÀü 1½Ã, 2½Ã¿¡ ¸Å ºÐ Á¤°¢, 3ºÐ, 17ºÐ, 18ºÐ, 19ºÐ, 40ºÐ¿¡ ls ¸í·É¾î¸¦ ½ÇÇàÇÏ°Ô µÈ´Ù.

½ÇÇàÇÒ ¸í·É¾î´Â ÀÏ¹Ý ¸í·É¾î³ª »ç¿ëÀÚ°¡ ÀÛ¼ºÇÑ ½© ½ºÅ©¸³Æ®µîÀÌ µÉ ¼ö ÀÖ´Ù. ¸í·É¾î ½ÇÇà½Ã ¿É¼ÇÀ» ³Ñ°ÜÁà¾ß ÇÑ´Ù¸é crontab¿¡ ¿É¼ÇÀ» Æ÷ÇÔÇÑ ¸í·É¾î¸¦ ±â¼úÇÏÁö ¸»°í º°µµÀÇ ½ºÅ©¸³Æ®·Î ÀÛ¼ºÇÑ ÈÄ¿¡ ½ºÅ©¸³Æ®¸¦ ¿¬°áÇÏ´Â°Ô ¾ÈÀüÇÏ´Ù.

¿¹·Î ¸ÅÀÏ ¹ã 11½Ã Á¤°¢¿¡ ¿¡ mysqldump ·Î ¹é¾÷À» ÇÑ´Ù°í °¡Á¤ÇØ º¸ÀÚ. mysqldump ´Â »ç¿ëÀÚ¸í, ¾ÏÈ£, ¹é¾÷db µî ¿©·¯ °¡Áö ¿É¼ÇÀ» ³Ñ°ÜÁÖ¾î¾ß ÇÑ´Ù. crontab À» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÏ´Â °Í º¸´Ù´Â

0 23 * * * mysqldump -u root -pmypwd --databases mydb1 mydb2 > /root/mysql_dump.sql

´ÙÀ½°ú °°ÀÌ /usr/local/sbin/mysql_dump.sh ¿¡ ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÑ ÈÄ¿¡ ÀÌ ³»¿ëÀ» crontab ¿¡ Àû¾îÁÖ´Â°Ô ¾ÈÀüÇÏ°Ô ½ÇÇàµÉ ¼ö ÀÖ´Ù.

/usr/local/sbin/mysql_dump.sh
#!/bin/sh
  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export PATH=$PATH:/usr/local/bin
mysqldump -u root -pmypwd --databases mydb1 mydb2 > /root/mysql_dump.sql
0 23 * * * /usr/local/sbin/mysql_dump.sh
½ÇÇà ½ºÅ©¸³Æ®¿Í cron ¼³Á¤

cron Àº º¸¾È À̽´¶§¹®¿¡ »ç¿ëÀÚÀÇ ½© ÃʱâÈ­ ÆÄÀÏ(.bashrc, .bash_profile)À» ÀÐÁö ¾Ê´Â´Ù.

±×·¯¹Ç·Î ½ÇÇàÇÒ ÇÁ·Î±×·¥ÀÌ /usr/binÀ̳ª /bin °°ÀÌ ÀϹÝÀûÀÎ °æ·Î¿¡ ÀÖÁö ¾Ê´Â´Ù¸é ÃʱâÈ­ ÆÄÀÏ¿¡ PATH ³ª LD_LIBRARY_PATH µî °³ÀÎÀûÀΠȯ°æº¯¼ö¸¦ ÁöÁ¤Ç߾ cron ÀÌ ½ÇÇàÇÒ ¼ö°¡ ¾ø´Ù.

ÀÌ·± °³ÀÎÀûÀÎ ¼³Á¤ÀÌ ÀÖ´Ù¸é ÇØ´ç ³»¿ëÀ» cron ÀÌ ½ÇÇàÇÒ ½© ½ºÅ©¸³Æ®¿¡µµ ¶È°°ÀÌ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. 

 

CRON ±ÇÇÑ °ü¸®

°ü¸®Àڴ ƯÁ¤ »ç¿ëÀÚ¸¸ cron À» »ç¿ëÇÏ°Ô Çϰųª ƯÁ¤ »ç¿ëÀÚ´Â »ç¿ëÇÏÁö ¸øÇÏ°Ô ¼³Á¤ÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. cronÀº ´ÙÀ½°ú °°ÀÌ ±ÇÇÑÀ» È®ÀÎÇÑ´Ù.

  1. ¸¸¾à /etc/cron.allow ÆÄÀÏÀÌ ÀÖ´Ù¸é ÀÌ ÆÄÀÏ¿¡ µî·ÏµÈ »ç¿ëÀÚ¸¸ cron À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  2. ¸¸¾à  /etc/cron.allow ÀÌ ¾ø°í  /etc/cron.deny ÆÄÀÏÀÌ ÀÖ´Ù¸é ÀÌ ÆÄÀÏ¿¡ µî·ÏµÇÁö ¾ÊÀº »ç¿ëÀÚ¸¸ cron À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

cron Àº Linux ¿Í ´Ù¸¥ Unix ¿¡¼­ Ç¥ÁØÀûÀ¸·Î »ç¿ëÇÏ´Â ÀÛ¾÷ ½ºÄÉÁÙ·¯ÀÌ´Ù. ½Ç¹« ȯ°æ¿¡¼­ ¹é¾÷Àº ¸Å¿ì Áß¿äÇÑ ÀÛ¾÷À̳ª °³¹ßÀÚ³ª °ü¸®ÀÚ°¡ ¼öÀÛ¾÷À¸·Î ÇÒ ÀÏÀº ¾Æ´Ï°í ÀÚµ¿È­ÇÏ¿© ÁøÇàÇØ¾ß ÇÑ´Ù.

ÇâÈÄ ¼³Á¤ÇÒ ¹öÀü °ü¸® ¼­¹ö, À̽´ °ü¸® ¼­¹ö, repostiroy °ü¸® ¼­¹ö¸¶´Ù ¸¶Áö¸· Ç׸ñÀº µ¥ÀÌŸ¸¦ ¹é¾÷ÇÏ´Â ¹æ¹ýÀ» ´Ù·ê ¿¹Á¤ÀÌ¸ç ¹é¾÷À» Á¤ÇØÁø ½Ã°£¿¡ ÀÚµ¿È­ÇÏ´Â ¾÷¹«¿¡ cron À» È°¿ëÇÒ °ÍÀÌ´Ù.