#!/bin/bash # cleanup, version 2 # ·çÆ®·Î ½ÇÇà½ÃÅ°¼¼¿ä. LOG_DIR=/var/log ROOT_UID=0 # $UID°¡ 0ÀÎ À¯Àú¸¸ÀÌ ·çÆ® ±ÇÇÑÀ» °®½À´Ï´Ù. LINES=50 # ±âº»ÀûÀ¸·Î ÀúÀåÇÒ ÁÙ ¼ö. E_XCD=66 # µð·ºÅ丮¸¦ ¹Ù²Ü ¼ö ¾ø´Ù? E_NOTROOT=67 # ·çÆ®°¡ ¾Æ´Ò °æ¿ìÀÇ Á¾·á ¿¡·¯. if [ "$UID" -ne "$ROOT_UID" ] then echo "ÀÌ ½ºÅ©¸³Æ®´Â ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß µË´Ï´Ù." exit $E_NOTROOT fi if [ -n "$1" ] # ¸í·É¾îÁÙ ÀÎÀÚ°¡ Á¸ÀçÇÏ´ÂÁö Å×½ºÆ®(non-empty). then lines=$1 else lines=$LINES # ¸í·É¾îÁÙ¿¡¼ ÁÖ¾îÁöÁö ¾Ê¾Ò´Ù¸é µðÆúÆ®°ªÀ» ¾¸. fi # Stephane Chazelas °¡ ¸í·É¾îÁÙ ÀÎÀÚ¸¦ È®ÀÎÇÏ´Â ´õ ÁÁÀº ¹æ¹ýÀ» #+ Á¦¾ÈÇØ ÁÖ¾ú´Âµ¥ Áö±Ý ´Ü°è¿¡¼´Â ¾à°£ ¾î·Á¿î ÁÖÁ«´Ï´Ù. # # E_WRONGARGS=65 # ¼ýÀÚ°¡ ¾Æ´Ñ ÀÎÀÚ.(Ʋ¸° ÀÎÀÚ Æ÷¸Ë) # # case "$1" in # "" ) lines=50;; # *[!0-9]*) echo "»ç¿ë¹ý: `basename $0` Á¤¸®ÇÒÆÄÀÏ"; exit $E_WRONGARGS;; # * ) lines=$1;; # esac # #* ÀÌ°ÍÀ» ÀÌÇØÇÏ·Á¸é "·çÇÁ" ÀýÀ» Âü°íÇϼ¼¿ä. cd $LOG_DIR if [ `pwd` != "$LOG_DIR" ] # ȤÀº if [ "$PWD" != "LOG_DIR" ] # /var/log ¿¡ ÀÖÁö ¾Ê´Ù? then echo "$LOG_DIR ·Î ¿Å°Ü°¥ ¼ö ¾ø½À´Ï´Ù." exit $E_XCD fi # ·Î±×ÆÄÀÏÀÌ µÚÁ×¹ÚÁ׵DZâ Àü¿¡ ¿Ã¹Ù¸¥ µð·ºÅ丮¿¡ ÀÖ´ÂÁö µÎ¹ø È®ÀÎÇÔ. # ´õ ÁÁÀº ¹æ¹ýÀº: # --- # cd /var/log || { # echo "ÇÊ¿äÇÑ µð·ºÅ丮·Î ¿Å°Ü°¥ ¼ö ¾ø½À´Ï´Ù." >&2 # exit $E_XCD; # } tail -$lines messages > mesg.temp # message ·Î±× ÆÄÀÏÀÇ ¸¶Áö¸· ºÎºÐÀ» ÀúÀå. mv mesg.temp messages # »õ ·Î±× ÆÄÀÏÀÌ µÊ. # cat /dev/null > messages #* À§ÀÇ ¹æ¹ýÀÌ ´õ ¾ÈÀüÇϴϱî ÇÊ¿ä ¾øÀ½. cat /dev/null > wtmp # > wtemp ¶ó°í Çصµ °°Àº °á°ú. echo "·Î±×°¡ Á¤¸®µÆ½À´Ï´Ù." exit 0 # ½ºÅ©¸³Æ® Á¾·á½Ã¿¡ 0À» ¸®ÅÏÇϸé #+ ½©¿¡°Ô ¼º°øÇß´Ù°í ¾Ë·ÁÁÜ.