status-save.php ============================================= ------------------- ÀÛ¼ºÀÏ : 2013-12-24 ÀÛ¼ºÀÚ : Á¤±â¿í ------------------- Contents ======== - °³¿ä - ¼³Ä¡ ¹ÙÀ̳ʸ® À§Ä¡ - ¼³Ä¡ ÀýÂ÷ - ¾Ë·ÁÁø ¹®Á¦ - License °³¿ä ======== Cloud Storage ³»¿¡ ¿î¿µµÇ´Â °¢ ¼­¹ö´Â ´Ù¾çÇÑ °æ·Î¿¡ ¼­ºñ½º °ü·Ã log¸¦ ³²±â°í ÀÖ´Ù. ÀÌ log¸¦ Á¤¸®(»èÁ¦)Çϱâ À§ÇØ °¢ Á¦¾î¼­¹öÀÇ crontab °ú FHSÀÇ rc_mngd°¡ ±× ¿ªÈ°À» ÇϰíÀÖÀ¸³ª log »èÁ¦¿¡ ´ëÇÑ ·ÑÀÌ ¾ø¾î ¹æÄ¡µÈ log ¶ÇÇÑ Á¸ÀçÇÑ´Ù. ¶ÇÇÑ °¢ µ¥¸óµéÀÇ ¹èÆ÷ ½Ã Ç×»ó crontab¿¡ log »èÁ¦¿¡ ´ëÇÑ Ç׸ñÀ» ³Ö¾îÁÖ¾î¾ß ÇÏ´Â ºÒÆíÇÔÀÌ µû¸¥´Ù. ÀϺΠµ¥¸óµé¿¡ ÇØ´ç ±â´É Ãß°¡°¡ °¡´ÉÇϳª ¼Ò½º ¼öÁ¤ÀÇ ºÎ°¡ÀûÀÎ ÀÛ¾÷ÀÌ ÇÊ¿äÇϸç DBLB ³ª RCDB ó·³ º°µµÀÇ ¼­ºñ½º µ¥¸óÀÌ Ãß°¡µÇÁö ¾ÊÀº ÀåºñÀÇ °æ¿ì ÀÌ ¶ÇÇÑ Àû¿ëÇÒ ¼ö ¾ø´Ù. (Âü°í·Î FHS´Â fimngd¿¡ ÇØ´ç ±â´ÉÀÌ Å¾Á¦µÇ¾î ÀÖ´Ù.) ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ ±âÁ¸ ¼­ºñ½º µ¥¸ó°ú º°°³·Î ÀÛµ¿ÇÏ´Â 'log ÀÚµ¿ »èÁ¦ ÇÁ·Î¼¼½º'À» °³¹ßÇϰԵǾúÀ¸¸ç ±× ¸íĪÀÌ log_manager ÀÌ´Ù. log_manager ´Â python À¸·Î ÀÛ¼ºµÈ log_manager.py ½ºÅ©¸³Æ®¸¦ ¼öÇàÇÏ´Â ¿ªÈ°À» ÇÏ¸ç ¼öÇà °á°ú´Â ½Ã½ºÅÛlog(/var/log/messages)¿¡ ³²°ÜÁö°Ô µÈ´Ù. ¼³Ä¡ ¹ÙÀ̳ʸ® À§Ä¡ ================== ¼¼ºÎ»çÇ×Àº '¼³Ä¡ ÀýÂ÷' Âü°í /user/service/python3 /user/service/bin/log_manager /user/service/scripts/log_manager.py ¼³Ä¡ ÀýÂ÷ ========= °¡. yum À» »ç¿ëÇÏ¿© ¼³Ä¡ # yum install log_manager ³ª. ¹ÙÀ̳ʸ® º¹»ç¸¦ ÅëÇÑ ¼³Ä¡ 1. Pyhon ¹ÙÀ̳ʸ® ¼³Ä¡ # cd /user/service/ # tar xvzf python3_dist_CentOS54.tar.gz 2. log_manager ¹èÆ÷ # cp log_manager /user/service/log_manager # cp log_manager.py /user/service/log_manager.py ´Ù. ¼öµ¿ ¼³Ä¡ status-save.sh ¿¡ Æ÷ÇÔµÈ php ½ºÅ©¸³Æ® ±¸µ¿À» À§ÇØ ¼­¹ö¿¡ PHP °ü·Ã ÆÐŰÁö¸¦ ¼³Ä¡ÇÑ´Ù. 1. Python Source ¼³Ä¡ # wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tgz # tar xvzf Python-3.3.2.tgz # cd Python-3.3.2 # ./configure --prefix=/user/service/python3 # make # make install 2. Python Ãß°¡ Class ¼³Ä¡(source ´Ù¿î·Îµå ½ÇÆÐ ½Ã ´ÙÀ½ ÆäÀÌÁö ÂüÁ¶ https://pypi.python.org/pypi/schedule) # wget https://pypi.python.org/packages/source/s/schedule/schedule-0.2.1.tar.gz # tar xvzf schedule-0.2.1.tar.gz # cd schedule-0.2.1 # /user/service/python3/bin/python3 setup.py install 3. log_manager.py ¼öÇà ½ºÅ©¸³Æ® ÀÛ¼º # vi /user/service/bin/log_manager /user/service/python3/bin/python3 -u /user/service/python3/log_manager.py $ 4. log_manager.py ¸¦ /user/service/bin ¿¡ º¹»çÇØ ³õ´Â´Ù. # cat /user/service/bin/log_manager.py # coding: utf-8 import schedule # ----> schedule.every() import time # ----> time.sleep() import random # ----> random.randint() import syslog # ----> syslog.syslog() import os # ----> os.popen() FIND_DIR = '/user/service/logs /user/db/pgsql/logs /log/db/logs /usr/service/logs/soldrived' # log ÆÄÀÏ µð·ºÅ丮 À§Ä¡ ¼³Á¤ FIND_CONDITION = ' -atime +29 -a -type f -a -name *.log ' # »èÁ¦ÇÒ log ÆÄÀÏ °Ë»ö Á¶°Ç START_TIME = '06:00' # log ÆÄÀÏ »èÁ¦ ½Ã°¢ ¼³Á¤ def job1(): # job1()Àº x = random.randint(1,7000) # Class random()ÀÇ randint ±â´ÉÀ¸·Î xÀÇ Á¤¼ö ¹üÀ§¸¦ ÁöÁ¤Çϰí time.sleep(x) # ÃÊ ´ÜÀ§ÀÇ xÀÇ ½Ã°£ µ¿¾È ´ÙÀ½ ¶óÀÎÀÇ ¼öÇàÀ» ÁßÁö½ÃŲ´Ù. cmd1 = "'find " + FIND_DIR + FIND_CONDITION + "| wc -l 2>&1'" # work1 = os.popen(cmd1).readline() # Class os()ÀÇ popen ±â´ÉÀ¸·Î cmd1À» ¼öÇà½Ã۰í readline() ¸ðµâ·Î ±× °á°ú°ªÀ» ÀÐ¾î µå¸°´Ù. syslog.syslog(str("Will be deleted log files: " + work1)) # Class syslog()ÀÇ syslog ±â´ÉÀ¸·Î ½Ã½ºÅÛlog(/var/log/messages)¿¡ work1ÀÇ °á°ú¸¦ ±â·ÏÇÑ´Ù. cmd2 = "'find " + FIND_DIR + FIND_CONDITION + "|xargs rm -rf 2>&1'" # work2 = os.popen(cmd2) # Class os()ÀÇ popen ±â´ÉÀ¸·Î cmd2À» ¼öÇà½ÃŲ´Ù. schedule.every(1).day.at(START_TIME).do(job1) # Class schedule()ÀÇ every ±â´ÉÀ¸·Î START_TIME¿¡ ÁöÁ¤µÈ ½Ã°¢¿¡ job1À» ¼öÇàÇϰí while True: # schedule.run_pending() # time.sleep(10) # ¸Å 10ÃÊ ¸¶´Ù ¹Ýº¹ÀûÀ¸·Î ½ºÄÉÁÙ·¯°¡ ÁöÁ¤µÈ ½Ã°¢¿¡ µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¾Ë·ÁÁø ¹®Á¦ =========== License =======