Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > ÇÁ·Î±×·¡¹Ö / °³¹ß µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù

À¥ ÇÁ·Î±×·¡¹Ö / PHP (19, ±Û 13, ÀÚ·á 15)
ÇÁ·Î±×·¡¹Ö Åø / IDE (12, ÀÚ·á 3)
¶óÀ̺귯¸® (3)
C, C++ (10, ÀÚ·á 11)
Java(ÀÚ¹Ù) (13, ±Û 1, ÀÚ·á 5)
Python (ÆÄÀ̽ã) (5, ÀÚ·á 2)
½© ÇÁ·Î±×·¡¹Ö(shell script, ¼¿) (8, ±Û 3, ÀÚ·á 4)
¿ÀǼҽº / ÇÁ·ÎÁ§Æ® (2)
Perl (ÆÞ) (7, ÀÚ·á 3)
ÀÓº£µðµå(embedded) (8, ±Û 1, ÀÚ·á 6)
¹öÀü°ü¸® / CVS (8, ±Û 1, ÀÚ·á 3)
Æ÷Æà / ¸¶À̱׷¹ÀÌ¼Ç (1, ÀÚ·á 1)
Assembly (¾î¼Àºí¸®) (3, ÀÚ·á 1)
µð¹ö±ë, µð¹ö±×(debug), µð¹ö°Å (4, ±Û 1, ÀÚ·á 3)
XML (2)
±âŸ¾ð¾î (2, ÀÚ·á 1)
¸ð¹ÙÀÏ(mobile, wap) (2, ÀÚ·á 1)

  expect ÇÁ·Î±×·¡¹Ö ¿¹ ÀÛ¼ºÀÏ : 2003/10/30 02:10
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 19370
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      97³â¿¡ ³ª¿ì´©¸® ¸®´ª½ºµ¿È£È¸¿¡ ¼ÒÀÎÀÌ ¾´ ±ÛÀÔ´Ï´Ù.
    Áö±ÝÀº Àǹ̾ø´Â expect ½ºÅ©¸³Æ®Áö¸¸, expectÀÇ È°¿ëÀ» Àß º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
    Àú¸¸ÀÇ »ý°¢Àϱî¿ä? ^^

    ¼öÁ¤¾øÀÌ ±×´ë·Î ¿Ã¸³´Ï´Ù.
    -------------------------------------------------------------------
    [1643] Á¦¸ñ : [ÆÁ] äÆÃÁ·(?)À» À§ÇÑ expect È°¿ë
    ¿Ã¸°ÀÌ : bluefine(..ÁøÈ£)    97/05/20 00:25    ÀÐÀ½ : 243  °ü·ÃÀÚ·á ¾øÀ½
    ------------------------------------------------------------------------------

        Ã¤ÆÃÇϽô ºÐÀ» À§ÇØ expect ¸¦ ÀÌ¿ëÇÑ script ¸¦ Â¥ ºÃ½À´Ï´Ù. ´ëºÎºÐÀÇ
      »ç¶÷µé(äÆÃÀ» ¾ÈÇϽô ºÐµé)¿¡°Ô´Â ¾Æ·¡ÀÇ script °¡ ÇÊ¿ä°¡ ¾øÀ» µí ½Í³×¿ä.
      ±×·¡µµ expect ¾²½Ã´Â, ȤÀº ¾²°í ½ÍÀº ºÐÀº ÇÑ ¹ø ºÁ º¸¼¼¿ä.

        ¸®´ª½ºµ¿¿¡´Â äÆÃÁ·(?) µéÀÌ ¸¹´Ù´Â °ÍÀ» ´À²¼½À´Ï´Ù. ¹ãºÎÅÍ »õº®, ȤÀº
      ¾Æħ±îÁö ÇϽô ºÐµéµµ °è½Ã´õ±º¿ä. Àúµµ ¸î ¹øÀº Çß½À´Ï´Ù. ¿ø·¡ Àú´Â
      Ã¤ÆÃÀ» °ÅÀÇ ÇÏÁö ¾Ê½À´Ï´Ù. ¾î¼´Ù »ç¶÷ ¸¸³ª°í, Áú¹®¿¡ ´ëÇÑ ´äº¯À» ÇØÁÖ±â
      À§ÇÑ °æ¿ì(´ëÈ­¹æÀ¸·Î ÃÊûÀ» ÇÑ °æ¿ì)¿¡³ª ÇÕ´Ï´Ù.

        Ç×»ó ÇÏ´Â ºÐµéÀÌ °è¼Ó äÆÃÀ» ÇϽôõ±º¿ä. ±×¸®°í Á¦ ´«Ä¡(? ¿Ø ´«Ä¡±îÁö)
      ·Î´Â ´©°¡ Á¢¼ÓÀ» Çß´ÂÁö Á¶»ç¸¦ ÇÏ¿© äÆÃÀ» ÇÏ´Â »ç¶÷µéµµ ÀÖ´Â °Í °°¾Æ¿ä.
      ±×·¡¼­ expect ·Î °£´ÜÇÑ script ¸¦ ¸¸µé¾î ºÃ½À´Ï´Ù. expect °øºÎµµ ÇÒ°â.

        ¿ì¼± script ³»¿ëÀÔ´Ï´Ù.

    >-----------------------ÀÚ¸£¼¼¿ä. -----------------------------<
    #!/usr/bin/expect --
    #
    # -------------------------------------------------------------
    # »ç¿ëÀÚ Á¢¼Ó Á¶»ç, °³¼³µÈ ´ëÈ­¹æ Á¶»ç script
    # -------------------------------------------------------------
    # -n : »ç¿ëÀÚ Á¢¼ÓÀº Á¶»ç ¾ÈÇÔ

    # Á¢¼ÓÇÑ ³»¿ëÀÌ ~/nowlog ¿¡ ÀúÀåµË´Ï´Ù.
    # ÇÊ¿ä¾øÀ» ¶§´Â comment(¾Õ¿¡ #) ÇØÁÖ¼¼¿ä.
    log_file ~/nowlog
    set BELL \007
    set nopfchk 0

    proc pfchk {} {
         send "pf °Ë»çÇÒ ID\r"
         expect -re "ÃÖ±Ù" {
                   expect_user "zz" {
                          send_user " Á¤»ó»óÅÂ(interact)·Î ¿Ô½À´Ï´Ù.\n"
                          break
                   }
              } -re "ÇöÀç" {
                    send_user \007
         }
    }

    # -------------------------------------------
    # ¿É¼Ç °Ë»ç
    # -n : pf üũ¸¦ ÇÏÁö ¾Ê½À´Ï´Ù.
    # -------------------------------------------
    while { $argc } {
          set option [lindex $argv 0]
          switch -- $option \
                 "-n" {
                      set nopfchk 1
                      incr argc -1
          }   default {
                      break
          }
    }

    # -------------------------------------------
    # ³ª¿ì´©¸®¿¡ Á¢¼ÓÀ» ÇÕ´Ï´Ù.
    # -------------------------------------------
    spawn telnet -8 now
    expect "Enter"
    sleep 1
    send "\r"
    expect -re "³ª ¿ì ID :"
    sleep 1
    send "´ç½ÅÀÇID\r"
    expect -re "ºñ¹Ð¹øÈ£ :"
    sleep 1
    send "´ç½ÅÀÇ passwd\r"
    expect -re "¼±ÅÃ>"
    send "go linux\r"
    expect -re "Enter"
    sleep 1
    send "\r"

    # -------------------------------------------
    # »ç¿ëÀÚ Á¢¼Ó Á¶»ç, °³¼³µÈ ´ëÈ­¹æ Á¶»ç
    #
    #    - 15 ÃÊ °£°ÝÀ¸·Î 30ºÐ µ¿¾È °Ë»çÇÕ´Ï´Ù.
    #    - ã´Â »ç¶÷ÀÌ Á¢¼ÓÀ» ÇßÀ¸¸é "»ß" ¼Ò¸®¸¦
    #      ³»¸ç °è¼Ó °³¼³µÈ ´ëÈ­¹æÀ» ã´Â´Ù.
    #    - °³¼³µÈ ´ëÈ­¹æÀÌ ÀÖÀ¸¸é ºüÁ®³ª°£´Ù.
    #    - interact ¸ðµå·Î °¡·Á¸é zz ¸¦ ´©¸¥´Ù.
    # -------------------------------------------
    expect -re "¼±ÅÃ>"
    sleep 1

    for {set num 0} {$num < (40*3)} {incr num} {
        # pf ¸í·É¾î·Î Á¢¼Ó »óȲ Á¶»ç
        #
        if { $nopfchk != 1 } {
           pfchk
        }
        # °³¼³µÈ ´ëÈ­½Ç Á¶»ç
        #
        sleep 5
        send "4\r"
        expect -re "¾ø½À´Ï´Ù" {
                   expect_user "zz" {
                          send_user " Á¤»ó»óÅÂ(interact)·Î ¿Ô½À´Ï´Ù.\n"
                          send "p\r"
                          break
                   }
                   send "p\r"
             } -re "°ø°³  " {
                   send_user $BELL
                   send_user $BELL
                   break
        }
       sleep 10
    }
    interact
    >-----------------------ÀÚ¸£¼¼¿ä. -----------------------------<

        '´ç½ÅÀÇID' ¿Í '´ç½ÅÀÇ passwd' ¿¡ °¢°¢ Á¢¼ÓÀÚÀÇ ID, passwd ¸¦ ³ÖÀ¸¼¼¿ä.  
      ±×¸®°í '°Ë»çÇÒ ID' ¿¡´Â Á¢¼ÓÀ» Çß´ÂÁö ã°í ½ÍÀº ºÐÀÇ ID¸¦ ÀÔ·ÂÇÏ¸é µË´Ï´Ù.

        À§ÀÇ script ´Â 30ºÐ µ¿¾È 15ÃÊ °£°ÝÀ¸·Î °è¼Ó ã°íÀÚ ÇÏ´Â ºÐÀÌ Á¢¼ÓÀ»
      Çß´ÂÁö ´ëÈ­¹æÀÌ °³¼³ÀÌ µÇ¾î ÀÖ´ÂÁö üũ¸¦ ÇÕ´Ï´Ù. ã´Â »ç¶÷ÀÌ Á¢¼ÓÀ»
      ÇßÀ¸¸é '»ß' ¼Ò¸®¸¦ ÇÑ ¹ø, ´ëÈ­¹æÀÌ °³¼³µÇ¾úÀ¸¸é '»ß' ¼Ò¸®¸¦ µÎ ¹ø ³À´Ï´Ù.

        ±×¸®°í Áß°£¿¡ °Ë»ç¸¦ ¸¶Ä¡°í ½ÍÀ¸¸é 'zz' ¸¦ ´©¸¥ ÈÄ ¿£Å͸¦ Ä¡¸éµË´Ï´Ù.
      ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ±äÇϳª interact ¸ðµå·Î µé¾î°©´Ï´Ù.

        -n ¿É¼ÇÀº Á¢¼ÓÇÑ »ç¶÷À» ã´Â °ÍÀ» ÇÏÁö ¾ÊÀ» ¶§ ¾²´Â ¿É¼ÇÀÔ´Ï´Ù.

         script¸¦ ¼³¸íÇÏ°Ú½À´Ï´Ù.

      proc pfchk {} {
           send "pf °Ë»çÇÒ ID\r"
           expect -re "ÃÖ±Ù" {
                     expect_user "zz" {
                            send_user " Á¤»ó»óÅÂ(interact)·Î ¿Ô½À´Ï´Ù.\n"
                            break
                     }
                } -re "ÇöÀç" {
                      send_user \007
           }
      }

      proc pfchk {} ´Â Á¢¼ÓÀÚ¸¦ ã´Â ÇÁ·Î½ÃÀúÀÔ´Ï´Ù. È£ÃâÀº pfchk ¶ó°í Çϸé
      µË´Ï´Ù.

      send : Åë½Å¸ÁÀ¸·Î ³»¿ëÀ» º¸³½´Ù.
      send_user : Åë½Å¸ÁÀ¸·Î º¸³»Áö ¾Ê°í È­¸éÀ¸·Î¸¸ º¸³½´Ù.
      expect : Åë½Å¸ÁÀ¸·Î ºÎÅÍ µé¾î¿Â ¹®ÀÚ¸¦ ±â´Ù¸°´Ù.
      expect_user : »ç¿ëÀÚ·Î ºÎÅÍ µé¾î¿Â ¹®ÀÚ¸¦ ±â´Ù¸°´Ù.

        À§ÀÇ °æ¿ì pf ¸í·É¸¦ ÇÑ ÈÄ 'ÃÖ±Ù' À̶ó´Â ±ÛÀÚ°¡ µé¾î¿À¸é 'zz' ¶ó´Â ±ÛÀÚ°¡
      ÀÔ·ÂÀÌ µÇ¾úÀ¸¸é ºüÁ®³ª°¡´Â °ÍÀÔ´Ï´Ù. 'ÇöÀç'¶ó´Â ±ÛÀÚ°¡ µé¾î¿À¸é '»ß'¼Ò¸®¸¦
      ÇÑ ¹ø ³»°Ô µË´Ï´Ù. pf ¸í·É¸¦ ¾²½Ã¸é ¹«½¼ ¸»ÀÎÁö ¾Æ½Ç °Ì´Ï´Ù.

      while { $argc } {
            set option [lindex $argv 0]
            switch -- $option \
                   "-n" {
                        set nopfchk 1
                        incr argc -1
            }   default {
                        break
            }
      }

      ÀÔ·ÂµÈ ¿É¼ÇÀ» ã´Â °ÍÀÔ´Ï´Ù. switch ´Â sh script ÀÇ case ¿Í °°Àº °ÍÀÔ´Ï´Ù.
      -n ¿É¼ÇÀÌ ÀԷµǸé nopfchk=1 À» ÀÔ·ÂÇÏ°í ÀÌ °ÍÀÌ ³ªÁß¿¡ if ¹®¿¡ ÀÇÇØ pf
      ¸í·É¾î¸¦ ¾²Áö ¾Êµµ·ÏÇÏ´Â °ÍÀÌÁÒ. incr argc -1 Àº ÀÔ·ÂµÈ ´ÙÀ½ ¸Å°³º¯¼ö¸¦
      Àеµ·Ï ÇÕ´Ï´Ù. ¾øÀ¸¸é while {} À» ºüÁ® ³ª°¡ÁÒ.

        ³ª¿ì´©¸® Á¢¼Ó°ü·Ã script ºÎºÐÀº ¼³¸íÇÏÁö ¾Ê°Ú½À´Ï´Ù. ¿©±â °Ô½ÃÆÇ¿¡
      lt expect ÇÏ¿© ã¾Æº¸½Ã¸é ¸¸¿ë´ÔÀÇ ±ÛÀÌ ÀÖÀ¸´Ï ²À Àо½Ã±â ¹Ù¶ø´Ï´Ù.

      for {set num 0} {$num < (40*3)} {incr num} {
          # pf ¸í·É¾î·Î Á¢¼Ó »óȲ Á¶»ç
          #
          if { $nopfchk != 1 } {
             pfchk
          }
          # °³¼³µÈ ´ëÈ­½Ç Á¶»ç
          #
          sleep 5
          send "4\r"
        expect -re "¾ø½À´Ï´Ù" {
                ~~~~~ »ý·«ÇÕ´Ï´Ù. ~~~~~
             } -re "°ø°³  " {
                   send_user $BELL
                   send_user $BELL
                   break
          }
         sleep 10
      }
      interact

      for {set num 0} {$num < (40*3)} {incr num} Àº num=0 ºÎÅÍ num < (40*3) ±îÁö
      1 ¾¿ Áõ°¡ÇÏ´Â for ¹®ÀÔ´Ï´Ù. 40*5Çϸé 50ºÐµ¿¾È °Ë»ç¸¦ ÇÕ´Ï´Ù. if ¹®¿¡ ÀÇÇØ
      nopfchk=1 À̸é pf °Ë»ç¸¦ ÇÏÁö ¾Ê½À´Ï´Ù. pf üũ 5ÃÊ°¡ Áö³­ µÚ¿¡ °³¼³µÈ
      ´ëÈ­¹æÀ» ã½À´Ï´Ù. ÀÌ ºÎºÐÀº pf üũ¿Í °ÅÀÇ °°½À´Ï´Ù. ±×·¡¼­ »ý·«ÇÕ´Ï´Ù.
      ´ÜÁö send_user $BELL À» µÎ ¹øÇÏ¿© '»ß' ¼Ò¸®¸¦ µÎ ¹ø ³» »ÓÀÔ´Ï´Ù. ´ëÈ­¹æ
      °Ë»ç ÈÄ 10ÃÊ ÈÄ¿¡ ´Ù½Ã pf üũ¸¦ ÇÕ´Ï´Ù.

         ÀÌ»óÀÔ´Ï´Ù. expect ÇÁ·Î±×·¥ÀÌ ¾øÀ¸½Å ºÐÀº ¿ì¼± ÀÚ·á½Ç¿¡¼­ expect 1.2 ¿Í
      tk/tcl lib ¸¦ ¹ÞÀ¸½Ã°í ¼³Ä¡ÇϽñ⠹ٶø´Ï´Ù.

         ¿©±â ÀÖ´Â script ´Â /usr/doc/examples/expect ¿¡ ÆÄÀÏÀ» Âü°í ÇßÀ¸¸ç,
      man expect µµ Âü°íÇß½À´Ï´Ù. O'reilly »ç¿¡¼­ Ã¥µµ ³ª¿ÍÀִµ¥ expect °øºÎÇϽÇ
      ºÐÀº ÇÑ ¹ø »ç¼­ º¸¼¼¿ä.

         ¹®Á¦°¡ ÀÖÀ¸¸é ½º½º·Î °íÄ¡¼¼¿ä.  expect ¿¡ ´ëÇØ Àß ¸ð¸£¼Å¼­ ¸ø °íÄ¡½Ã¸é
    ¸ÞÀÏ·Î ¾Ë·ÁÁÖ¼¼¿ä. ÀÌ script°¡ À¯¿ëÇÒ »ç¶÷ÀÌ ÀÖÀ»±î?
      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [04/19] Á¦ÁÖ&#5
    [04/18] ??? ?????
    [04/17] ???? onion ?????? -
    [04/11] ±¹°¡&#5
    [04/10] Stride Into Dream:
    [03/20] Re: ¿Â¶óÀΰÔÀÓÀÇ Á¾ÁÖ±¹ ´ëÇѹα¹
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~