LINUX
2017.03.21 / 18:53

Crontab, at, anacron Å©·ÐÅÇ ¿¹¾à¼³Á¤ °ü·Ã

Ŭ·¡½Ã
Ãßõ ¼ö 130

RHEL6¿¡´Â Á¤±â ÀÛ¾÷ÀÇ ½ÇÇà¿¡ anacronÀÌ Ã¤¿ëµÇ¾î ÀÖ½À´Ï´Ù. ±×ÀÇ °ø°³ ¹èÆ÷ÆÇÀÎ CentOS6 ¿¡¼­µµ Àû¿ëµÇ¾î ÀÖ½À´Ï´Ù.

anacron

anacronÀº Á¤È®ÇÑ ½Ã°¢¿¡ ÀÛ¾÷À» ½ÇÇàÇÏ´Â ¿ëµµ°¡ ¾Æ´Ï¶ó ¸ÅÀÏ, ¸ÅÁÖ, ¸Å´ÞÀÇ ÀÛ¾÷À» 'ÀûÀýÇÑ Å¸À̹Ö'¿¡ ½ÇÇàÇϱâ À§ÇÑ ¸í·É¾îÀÌ´Ù.

RHEL5¿¡¼­´Â cron ÀÛ¾÷À» ÀÌ¿ëÇÏ¿© 1½Ã°£¸¶´Ù ȤÀº ¸ÅÀÏ, ¸ÅÁÖ, ¸Å´Þ ÀÌ·± ½ÄÀ¸·Î Á¤±â ÀÛ¾÷À» ½ÇÇàÇß´Ù. ±¸Ã¼ÀûÀ¸·Î´Â /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ ÀÌÇÏÀÇ µð·ºÅ丮¿¡ ÀÛ¾÷À» ½ÇÇàÇÏ´Â ½© ½ºÅ©¸³Æ®¸¦ ¹èÄ¡ÇÑ´Ù.

RHEL5 ¿¡¼­´Â ¾Æ·¡¿Í °°Àº /etc/crontab ÀÌ ¼³Á¤µÇ¾î ÀÖ´Ù.

BASH
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01  *  *  *  *  root run-parts  /etc/cron.hourly
02  4  *  *  *  root run-parts  /etc/cron.daily
22  4  *  *  0  root  run-parts  /etc/cron.weekly
42  4  1  *  *  root  run-parts  /etc/cron.monthly

cronÀº ¼­¹ö°¡ ÁߴܵǾú´Ù°¡ ´Ù½Ã ½ÃÀ۵Ǹé Áß´Ü µÈ ±â°£µ¿¾È¿¡ ½ÇÇàµÇÁö ¾Ê¾Ò´ø ÀÛ¾÷µéÀÌ ¹Ð·Á ÀÖ°Ô µÇ°í Linux KVM¿¡ ÀÇÇÑ ¼­¹ö°¡»óÈ­ ȯ°æ¿¡¼­ ÇÑ ´ëÀÇ ¹°¸® ¼­¹ö¿¡ °Ô½ºÆ® OSÀÎ RHEK5°¡ µ¿½Ã¿¡ ÀÛ¾÷À» ½ÃÀÛÇϸé, ¹°¸® ¼­¹ö¿¡ ´ëÇÑ ºÎÇÏ°¡ ÁýÁßµÉ °¡´É¼ºÀÌ ÀÖ´Ù.

À§¿Í °°Àº ¹®Á¦·Î ÀÎÇØ /etc/crontabÀÇ ¼³Á¤À» º¯°æÇÏ¿© ÀÛ¾÷ ½Ã°¢À» ºÐ»êÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

RHEL6¿¡¼­´Â ÀÌ ¹®Á¦¸¦ ȸÇÇÇϱâ À§ÇØ ¸ÅÀÏ, ¸ÅÁÖ, ¸Å´ÞÀÇ Á¤±â ÀÛ¾÷À» cronÀÌ ¾Æ´Ñ anacron ¸í·É¾î¸¦ ÀÌ¿ëÇؼ­ ½ÇÇàÇϵµ·Ï ¹Ù²î¾î ÀÖ´Ù. µðÆúÆ®·Î RHEL6ÀÇ anacron ¸í·É¾îÀÇ ¼³Á¤ ÆÄÀÏÀº /etc/anacrontab¿¡ À§Ä¡ÇØ ÀÖ´Ù.

BASH
cat /etc/anacrontab

  # /etc/anacrontab: configuration file for anacron
  # See anacron(8) and anacrontab(5) for details.

  SHELL=/bin/sh
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root

  # the maximal random delay added to the base delay of the jobs
  RANDOM_DELAY=45

  # the jobs will be started during the following hours only
  START_HOURS_RANGE=3-22

  #period in days   delay in minutes   job-identifier   command
  1       5       cron.daily              nice run-parts /etc/cron.daily
  7       25      cron.weekly             nice run-parts /etc/cron.weekly
  @monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

cron ÀÛ¾÷Àº »óÁÖÇü µ¥¸óÀÎ crond¿¡ ÀÇÇØ Á¤±âÀûÀ¸·Î ½ÇÇàµÇÁö¸¸, anacronÀº µ¥¸óÀÌ ¾Æ´Ï´Ù. ´©±º°¡°¡ ¸í½ÃÀûÀ¸·Î anacron ¸í·É¾î¸¦ ½ÇÇàÇÑ Å¸Àֿ̹¡¼­ ½ÇÇàÀÌ ÇÊ¿äÇÑ ÀÛ¾÷ÀÌ ÀÖÀ¸¸é ±× ÀÛ¾÷À» ½ÇÇàÇÑ´Ù.

ÀÛ¾÷À» ½ÇÇàÇϸé 'job-identifier'·Î ÁöÁ¤µÈ ÆÄÀÏ /var/spool/anacron/<job-identifier>¿¡ ³¯Â¥¸¦ ÀûÀ½À¸·Î½á ¸¶Áö¸· ÀÛ¾÷ÀÇ ½ÇÇàÀÏÀ» ±â·ÏÇÑ´Ù.

BASH
ls -la  /var/spool/anacron

  ÇÕ°è 20
  drwxr-xr-x. 2 root root 4096 2013-05-28 01:54 .
  drwxr-xr-x. 8 root root 4096 2013-05-28 01:54 ..
  -rw-------. 1 root root    9 2013-07-04 03:09 cron.daily
  -rw-------. 1 root root    9 2013-07-02 18:21 cron.monthly
  -rw-------. 1 root root    9 2013-07-02 18:01 cron.weekly
BASH
cat cron.daily && cat cron.weekly && cat cron.monthly

  20130704
  20130702
  20130702

anacronÀ» Àç½ÇÇàÇÏ¸é ¸¶Áö¸·ÀÇ ÀÛ¾÷ ½ÇÇà ÀÏ¿¡¼­ 'period in days' ÀÌ»óÀÇ ³¯Â¥°¡ °æ°úÇßÀ» °æ¿ì ±× ÀÛ¾÷µµ Àç½ÇÇàÇÑ´Ù. À§ÀÇ °æ¿ì Á¤È®ÇÏ°Ô ³¯¸¶´Ù, ÁÖ¸¶´Ù, ´Þ¸¶´Ù ¼¼°³ÀÇ run-parts ¸í·É¾î°¡ °¢°¢ ½ÇÇàµÇ°Ô µÈ´Ù.

RHEL6¿¡¼­´Â cron ÀÛ¾÷À» ÀÌ¿ëÇØ anacronÀÌ ½ÇÇàµÈ´Ù. /etc/cron.hourly ÀÌÇÏ¿¡ ÀÖ´Â ½© ½ºÅ©¸³Æ® 0anacron¿¡ ÀÇÇØ ¸Å½Ã 01ºÐ¿¡ anacron ¸í·É¾î°¡ ½ÇÇàµÈ´Ù.

BASH
 cat 0anacron

  #!/bin/bash
  #in case file doesn't exist
  if test -r /var/spool/anacron/cron.daily; then
        day=`cat /var/spool/anacron/cron.daily`
  fi
  if [ `date +%Y%m%d` = "$day" ]; then
      exit 0;
  fi

  # in case anacron is already running,
  # there will be log (daemon won't be running twice).
  if test -x /usr/bin/on_ac_power; then
      /usr/bin/on_ac_power &> /dev/null
      if test $? -eq 1; then
      exit 0
      fi
  fi
  /usr/sbin/anacron -s

ÀÌ ¹æ½ÄÀÇ °æ¿ì °¢ ÀÛ¾÷ÀÇ ½ÇÇà °£°ÝÀº Á¤ÇØÁ® ÀÖÁö¸¸, ÀÛ¾÷ÀÇ ½ÇÇà ½Ã°¢Àº Ưº°È÷ Á¤ÇØÁ® ÀÖÁö ¾Ê´Ù´Â Á¡¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, Àå±â°£ Á¤ÁöµÇ¾î ÀÖ´Â ¼­¹ö¸¦ °¡µ¿Çϸé ÃÖÃÊÀÇ 01ºÐÀÇ Å¸Àֿ̹¡ ¸ðµç ÀÛ¾÷ÀÌ ½ÇÇàµÈ´Ù. ¶ÇÇÑ, ÀÛ¾÷ÀÇ ½ÇÇàÀ» Çã¶ôÇÏ´Â ½Ã°£´ë¸¦ 'START_HOURS_RANGE'·Î ÁöÁ¤Çϵµ·Ï µÇ¾î ÀÖ´Ù.

À§¿¡¼­´Â »õº® 3½Ã~22½Ã±îÁö¿¡¸¸ ½ÇÇàÀÌ Çã°¡µÇ¾î ÀÖ´Ù. À̶§ anacronÀÌ ÀÖ´Â ÀÛ¾÷À» ½ÇÇàÇÏ·Á°í ÇÑ Å¸Àֿ̹¡¼­ 'delay in minutes'¿¡ ÁöÁ¤µÈ ¸¸Å­ÀÇ ½Ã°£ ÀÌÈÄ ½ÇÁ¦·Î ÀÛ¾÷ÀÌ ½ÇÇàµÇ¾î ÀÛ¾÷ÀÌ ºÐ»êµÈ´Ù.

cron°ú anacronÀÇ Æ¯Â¡À» Á¤¸®ÇÏ¸é ¾Æ·¡¿Í °°´Ù.

cronÀÇ Æ¯Â¡

  • ¿äÀÏ, ½Ã, ºÐ, ÃÊÀÇ ´ÜÀ§·Î ÁöÁ¤ ½Ã°¢¿¡ ÀÛ¾÷À» ½ÇÇàÇÑ´Ù.
  • ÁöÁ¤ ½Ã°¢¿¡ ¼­¹ö°¡ Á¤ÁöÇÑ °æ¿ì µî¿¡ ½ÇÇàÇÏÁö ¾ÊÀº ÀÛ¾÷À» Àç½ÇÇàÇÏ´Â ±â´ÉÀº ¾ø´Ù.
    (´ÙÀ½ Â÷·ÊÀÇ ÁöÁ¤ ½Ã°¢±îÁö ±â´Ù¸± ÇÊ¿ä°¡ ÀÖÀ½)
  • /etc/crontab, /etc/cron.d/ ÀÌÇÏÀÇ ÆÄÀÏ, °¢ À¯ÀúÀÇ crontab ÆÄÀÏµî º¹¼öÀÇ ÀÛ¾÷ ¼³Á¤ Àå¼Ò°¡ ÀÖ´Ù.
  • µ¥¸ó ÇÁ·Î¼¼½º(crond)°¡ »óÁÖÇÏ¿© ÁöÁ¤ ½Ã°¢¿¡ ÀÛ¾÷À» °¡µ¿ÇÑ´Ù.


anacronÀÇ Æ¯Â¡

  • ÀÛ¾÷ÀÇ ½ÇÇà °£°ÝÀ» 1ÀÏ ´ÜÀ§·Î ÁöÁ¤ÇÑ´Ù.
    (1ÀÏ 1ȸ ÀÌ»ó ½ÇÇàºóµµ´Â ¼³¤©Á¤ ºÒ°¡, ¸í½ÃÀûÀÎ ½ÇÇà ½Ã°¢ ÁöÁ¤ ºÒ°¡)
  • ÀÛ¾÷ÀÇ ¼³Á¤ Àå¼Ò´Â /etc/anacrontab¸¸ °¡´ÉÇϸç, ·çÆ® À¯Àú ÀÌ¿Ü´Â ÀÛ¾÷ÀÇ ¼³Á¤ÀÌ ºÒ°¡.
  • ÀÛ¾÷ÀÇ ½ÇÇà ŸÀֿ̹¡ ·£´ýÀ¸·Î ¿¬Àå ½Ã°£ÀÌ Ãß°¡µÈ´Ù.
  • µ¥¸ó ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¹Ç·Î Á¤±âÀûÀ¸·Î anacron ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â ±¸¼ºÀ» µû·Î Áغñ.
    (cronÀÇ ¸Å½Ã 01ºÐ¿¡ anacronÀ» ½ÇÇàÇÏ´Â ¸í·É¾î°¡ ±âº»À¸·Î Ãß°¡µÇ¾î ÀÖ´Ù.)
  • Àå±â°£ ¼­¹ö°¡ Á¤ÁöµÈ °æ¿ì´Â ¼­¹ö °¡µ¿ ÈÄ¿¡ ÇÊ¿äÇÑ ÀÛ¾÷À» ¹Ù·Î ÇÒ ¼ö ÀÖ´Ù.



Ãâó: http://webdir.tistory.com/175 [WEBDIR]