#!/bin/bash # logon.sh: ¿©·¯ºÐÀÌ ¾ÆÁ÷µµ ·Î±×ÀÎÇØ ÀÖ´ÂÁö¸¦ È®ÀÎÇØ ÁÖ´Â ¾ÆÁÖ °£´ÜÇÑ ½ºÅ©¸³Æ®. TRUE=1 LOGFILE=/var/log/messages # $LOGFILE Àº ÀÐÀ» ¼ö ÀÖ¾î¾ß µË´Ï´Ù(chmod 644 /var/log/messages). TEMPFILE=temp.$$ # ÀÌ ½ºÅ©¸³Æ®ÀÇ ÇÁ·Î¼¼½º ID·Î "À¯ÀÏÇÑ" Àӽà ÆÄÀÏ À̸§À» ¸¸µì´Ï´Ù. KEYWORD=address # ·Î±×ÀÎÀ» ÇÏ°Ô µÇ¸é /var/log/messages ¿¡ #+ "remote IP address xxx.xxx.xxx.xxx" ¶õ ÁÙÀÌ µ¡ºÙ¿© Áý´Ï´Ù. ONLINE=22 USER_INTERRUPT=13 trap 'rm -f $TEMPFILE; exit $USER_INTERRUPT' TERM INT # ½ºÅ©¸³Æ®°¡ Control-C ¿¡ ÀÇÇØ ÀÎÅÍ·´Æ®¸¦ ¹Þ¾ÒÀ» °æ¿ì¿¡ Àӽà ÆÄÀÏÀ» Áö¿öÁÝ´Ï´Ù. echo while [ $TRUE ] # ¹«ÇÑ ·çÇÁ. do tail -1 $LOGFILE> $TEMPFILE # ½Ã½ºÅÛ ·Î±× ÆÄÀÏÀÇ ¸¶Áö¸· ÁÙÀ» Àӽà ÆÄÀÏ·Î ÀúÀå. search=`grep $KEYWORD $TEMPFILE` # ¼º°øÀûÀÎ ·Î±×ÀÎÀ» ³ªÅ¸³»´Â "IP address"¶õ ¹®±¸°¡ µé¾î ÀÖ´ÂÁö È®ÀÎ. if [ ! -z "$search" ] # ºó ÄÀÌ µé¾î ÀÖÀ» ¼ö Àֱ⠶§¹®¿¡ Äõ¿ìÆ® ÇÊ¿ä. then echo "On-line" rm -f $TEMPFILE # Àӽà ÆÄÀÏ Áö¿ì±â. exit $ONLINE else echo -n "." # ¿¬¼ÓÀûÀÎ Á¡µéÀÌ ÂïÈ÷µµ·Ï -n ¿É¼ÇÀ¸·Î #+ echo °¡ ´º¶óÀÎÀ» ¹«½ÃÇϵµ·Ï ÇÔ. fi sleep 1 done # ÁÖÀÇ: KEYWORD º¯¼ö¸¦ "Exit" ·Î ¹Ù²Ù¸é ·Î±×ÀÎ »óÅ¿¡¼ °©ÀÛ½º·´°Ô ·Î±×¾Æ¿ôÀÌ #+ µÆ´ÂÁö¸¦ È®ÀÎÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. # ¿¬½À¹®Á¦: À§ÀÇ ÁÖÀÇ»çÇ×´ë·Î ½ºÅ©¸³Æ®¸¦ ¹Ù²Ù°í ¿¹»Ú°Ô ´Ùµë¾î º¸¼¼¿ä. exit 0 # Nick Drage °¡ ´Ù¸¥ ¹æ¹ýÀ» Á¦¾ÈÇØ ÁÖ¾ú½À´Ï´Ù: while true do ifconfig ppp0 | grep UP 1> /dev/null && echo "connected" && exit 0 echo -n "." # ¿¬°áµÉ ¶§±îÁö Á¡(.....)À» Ãâ·Â. sleep 2 done # ¹®Á¦Á¡: ÀÌ ½ºÅ©¸³Æ®¸¦ ³¡³»±â¿¡´Â Control-C ¸¦ ´©¸£´Â °Í¸¸À¸·Î ºÎÁ·ÇÕ´Ï´Ù. # (Á¡ÀÌ °è¼Ó ¿¡Äڵ˴ϴÙ.) # ¿¬½À¹®Á¦: ÀÌ ¹®Á¦¸¦ ÇØ°áÇØ º¸¼¼¿ä. # Stephane Chazelas µµ ´Ù¸¥ ¹æ¹ýÀ» Á¦¾ÈÇØ ÁÖ¾ú½À´Ï´Ù: CHECK_INTERVAL=1 while ! tail -1 "$LOGFILE" | grep -q "$KEYWORD" do echo -n . sleep $CHECK_INTERVAL done echo "On-line" # ¿¬½À¹®Á¦: À§¿¡¼ ¼³¸íÇÑ °¢ ¹æ¹ýµéÀÇ ÀåÁ¡°ú ´ÜÁ¡À» »ý°¢ÇØ º¸¼¼¿ä.