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

ÃÖÀûÈ­ / Æ©´× / ¼º´É°³¼± (6, ±Û 1, ÀÚ·á 3)
µð½ºÅ© ÄõÅÍ(quota) (3, ±Û 1, ÀÚ·á 3)
µð½ºÅ© °ü¸® / ÆÄÀϽýºÅÛ / mount (34, ±Û 13, ÀÚ·á 12)
¹é¾÷(backup) / ½Ã½ºÅÛ º¹±¸ (14, ±Û 6, ÀÚ·á 11)
¼­¹ö¿î¿µ (8, ±Û 2, ÀÚ·á 9)
ÇÁ¸°ÅÍ °ü¸® / ÇÁ¸°Æà (7)
ÆÐÅ°Áö °ü¸® / ÆÐÄ¡ / rpm (10, ±Û 5, ÀÚ·á 1)
ºÎÆÃ, boot / LILO / GRUB (10, ±Û 5, ÀÚ·á 9)
¼­¹ö ¸ð´ÏÅ͸µ (10, ±Û 5, ÀÚ·á 2)
·Î±×ÀÎ / ·Î±×¾Æ¿ô (1)
·Î±×(log) / syslog (5, ±Û 3, ÀÚ·á 3)
¸Þ¸ð¸®, ½º¿Ò(swap), ·¥µð½ºÅ©(ramdisk) (3, ±Û 2)
»ç¿ëÀÚ °ü¸®(°èÁ¤ °ü¸®) (1, ÀÚ·á 1)

  ¿©·¯ ¼­¹ö¿¡ ÀÏ°ý ¸í·ÉÀ» À§ÇÑ expect ½ºÅ©¸³Æ® ÀÛ¼ºÀÏ : 2007/08/06 22:58
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 20609
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      Á¦  ¸ñ : ¿©·¯ ¼­¹ö¿¡ ÀÏ°ý ¸í·ÉÀ» À§ÇÑ expect ½ºÅ©¸³Æ®
    ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
    ÀÛ¼ºÀÏ : 2007.5
    Á¤¸®ÀÏ : 2007.8.6(¿ù)

    ¿©·¯´ëÀÇ ¼­¹ö°¡ ÀÖ°í, ÀÌ ¼­¹ö¿¡ ÀÏ°ýÀûÀ¸·Î µ¿ÀÏÇÑ ¸í·ÉÀ» Áà¾ßÇÒ »óȲÀÌ ÀÖ´Ù°í ÇÏÀÚ. ÀÌ·± »óȲ¿¡¼­ °¢ ¼­¹ö¿¡ ÀÏÀÏÈ÷ Á¢¼ÓÇÑ ´ÙÀ½¿¡, ¸í·ÉÀ» ³»¸®°í, ·Î±× ¾Æ¿ôÇÑ´Ù´Â °ÍÀº ¼Õ¹ßÀÌ °í»ýÇÏ´Â ÀÛ¾÷ÀÌ ¾Æ´Ñ°¡. ÀÌ·¯ÇÑ ¹«¸ðÇÑ(?) ÀÛ¾÷Àº ´ÙÀ½°ú °°Àº ¹®Á¦°¡ ÀÖ´Ù.

    - ³Ê¹«³ªµµ Áö·çÇÑ ÀÛ¾÷ÀÌ´Ù.
    - ½Ã°£ÀÌ ³Ê¹« ¿À·¡ °É¸°´Ù. (ªÀº ½Ã°£¿¡ ¹Ýµå½Ã ¸ðµç ¼­¹ö¿¡ Àû¿ëÇØÇÏ´Â »óȲÀÌ¸é ´õ´õ¿í ¹®Á¦´Ù.)
    - ±ôºýÇÏ°í ÀÛ¾÷ÇÏÁö ¾ÊÀº ¼­¹ö°¡ »ý±æ ¼ö ÀÖ´Ù.
    - ½ÇÇàÇؾßÇÒ ¸í·ÉÀÌ ¸¹À» ¶§, ¸í·ÉÁß Çϳª¸¦ »©¸ÔÀº ¼­¹ö°¡ »ý±æ ¼ö ÀÖ´Ù.

    1. ÀÚµ¿ Á¢¼Ó ÈÄ ¸í·ÉÀ» ½ÇÇàÇÏ´Â expect ½ºÅ©¸³Æ®

    ÀÌ·¯ÇÑ ¹®Á¦¸¦ expect ½ºÅ©¸³Æ®·Î ÇØ°áÇغ¸ÀÚ. ´ÙÀ½Àº ÁöÁ¤ÇÑ ¼­¹ö¿¡ ÀÚµ¿À¸·Î Á¢¼ÓÇؼ­ ¸í·ÉÀ» ½ÇÇàÇÏ´Â expect ½ºÅ©¸³Æ®ÀÌ´Ù.

     
    #!/usr/bin/expect --
    #
    # ¼­¹öÁ¢¼Ó -> root·Î ¸í·É ½ÇÇàÈÄ Á¾·á
    #
    # 2006.11.22
    # Made by ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )

    set timeout¡¡¡¡¡¡7

    set server      [lindex $argv 0]
    set cmd         [lindex $argv 1]
    set logout_flg  [lindex $argv 2]

    set sleeptime¡¡¡¡¡¡0.3
    set sleeptime2¡¡¡¡¡¡1

    # default
    set pass        "ÀϹÝÀ¯Àú_PW_ÀÔ·ÂÇϼ¼¿ä"
    set pass_root¡¡¡¡¡¡"root_PW_ÀÔ·ÂÇϼ¼¿ä"

    # server 1 (±âº» root PW°¡ ´Ù¸¥ ¼­¹öµé)
    if { $server == "truefeel1" || $server == "truefeel2" || $server == "truefeel3"  } {
    ¡¡¡¡¡¡set pass_root   "root_PW_ÀÔ·ÂÇϼ¼¿ä"
    }

    # server 2 (±âº» root PW°¡ ´Ù¸¥ ¼­¹öµé)
    if { $server == "w1" || $server == "w2" } {
    ¡¡¡¡¡¡set pass_root   "root_PW_ÀÔ·ÂÇϼ¼¿ä"
    }

    # server 3 (±âº» »ç¿ëÀÚ PW°¡ ´Ù¸¥ ¼­¹öµé)
    if { $server == "coffeenix1" || $server == "coffeenix2" } {
    ¡¡¡¡¡¡set pass        "ÀϹÝÀ¯Àú_PW_ÀÔ·ÂÇϼ¼¿ä"
    }


    # Mesg
    set login_msg  "assword:"
    set prompt_msg "truefeel"

    # ------------------------------------------
    # option È®ÀÎ
    if { $cmd == "" } {
    ¡¡¡¡¡¡send "Usage : ./cmd.exp <Server> <Command> \[logout flag\] \n\n"
    ¡¡¡¡¡¡send "        logout flag = 1    : ¸í·É ½ÇÇà ÈÄ¿¡ ÀÚµ¿À¸·Î ·Î±×¾Æ¿ô\n"
    ¡¡¡¡¡¡send "        logout flag ¹ÌÁöÁ¤ : ¸í·É¸¸ ½ÇÇàÇÏ°í, ·Î±×¾Æ¿ôÀº ÇÏÁö ¾ÊÀ½\n"
    ¡¡¡¡¡¡exit
    }

    # ------------------------------------------
    spawn ssh $server

    # login
    expect $login_msg
    sleep $sleeptime
    send "$pass\r"

    sleep $sleeptime
    send "\r"

    # su
    expect $prompt_msg
    sleep $sleeptime
    send "su -\r"

    expect $login_msg
    send "$pass_root\r"

    #
    sleep $sleeptime
    send "$cmd\r"
    sleep $sleeptime2

    # logout
    if { $logout_flg == "1" } {
    ¡¡¡¡¡¡send "exit\r"
    ¡¡¡¡¡¡sleep $sleeptime
    ¡¡¡¡¡¡send "exit\r"
    ¡¡¡¡¡¡sleep $sleeptime
    }

    interact
     

    * Download : http://coffeenix.net/truefeel/files/expect/cmd.exp.txt

    À§ ½ºÅ©¸³Æ®´Â Linux, FreeBSD¿¡¼­ ¸ðµÎ »ç¿ëÀÌ °¡´ÉÇϸç, »ç¿ë ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

     # ./cmd.exp <Á¢¼ÓÇÒ ¼­¹ö> <¸í·É¾î ³ª¿­> [ÀÚµ¿_·Î±×¾Æ¿ô_¿©ºÎ=1]
     


    ½ºÅ©¸³Æ®´Â ³Ê¹«³ª °£´ÜÇÏ´Ù. ½ºÅ©¸³Æ®¸¦ Å©°Ô ³ª´²º¸¸é, ù¹ø° º¯¼ö¼³Á¤ ºÎºÐ, 2¹ø° ¿É¼Ç üũ ºÎºÐ, 3¹ø° ¼­¹ö¿¡ Á¢¼ÓÇؼ­ ¸í·ÉÀ» ³»¸®´Â ºÎºÐÀ¸·Î ³ª´¶´Ù.

    2±ºµ¥ Á¤µµ¸¸ »ìÆ캸ÀÚ.

     
         17 # default
         18 set pass        "ÀϹÝÀ¯Àú_PW_ÀÔ·ÂÇϼ¼¿ä"
         19 set pass_root   "root_PW_ÀÔ·ÂÇϼ¼¿ä"
         20
         21 # server 1 (±âº» root PW°¡ ´Ù¸¥ ¼­¹öµé)
         22 if { $server == "truefeel1" || $server == "truefeel2" || $server == "truefeel3"  } {
         23         set pass_root   "root_PW_ÀÔ·ÂÇϼ¼¿ä"
         24 }
     


    17¶óÀκÎÅÍ´Â Á¢¼ÓÇÒ »ç¿ëÀÚÀÇ PW¿Í root PW¸¦ Àû´Â´Ù. ¼­¹ö¿¡ µû¶ó PW°¡ ´Ù¸£¸é if ¹®À» ÅëÇؼ­ º°µµ·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. ±× ¾Æ·¡¿¡ expect, sleep, send °¡ ¹Ýº¹ÀûÀ¸·Î ¾²ÀÎ ºÎºÐÀº ¼­¹ö¿¡ Á¢¼ÓÇؼ­ su ¸í·ÉÀ¸·Î root·Î º¯°æÇÏ°í, ÁöÁ¤ÇÑ ¸í·ÉÀ» ½ÇÇàÇÏ´Â °úÁ¤ÀÌ´Ù.

     
         74 # logout
         75 if { $logout_flg == "1" } {
         76         send "exit\r"
         77         sleep $sleeptime
         78         send "exit\r"
         79         sleep $sleeptime
         80 }
     


    ÀÌ ºÎºÐÀº ¸í·É ½ÇÇà ÈÄ¿¡ »ç¿ëÀÚ°¡ ¿øÇϸé, ÀÚµ¿À¸·Î ·Î±×¾Æ¿ôÀ» ÇÑ´Ù. exit°¡ 2¹ø ¾²ÀÎ °ÍÀº ÇѹøÀº root -> ÀϹݻç¿ëÀÚ·Î ÀüȯÀ», ±× ´ÙÀ½Àº logoutÀ» À§ÇÑ °ÍÀÌ´Ù.

    °£´ÜÇÑ »ç¿ë ¿¹Á¦´Ù. ù¹ø°ÁÙÀº t1.coffeenix.net ¼­¹ö¿¡ Á¢¼ÓÇÑ ÈÄ ¸®ºÎÆÃÀ» ÇÏ°í, µÎ¹ø°ÁÙÀº ls¿Í 'cat /etc/fstab' ¸í·ÉÀ» ³»¸° ÈÄ ÀÚµ¿À¸·Î ·Î±× ¾Æ¿ô(3¹ø° ¿É¼ÇÀ¸·Î  '1'À» ÁöÁ¤ÇßÀ½)À» ÇÑ´Ù.

     
    »ç¿ë¿¹)
    ./cmd.exp t1.coffeenix.net "ls;pwd;shutdown -r now"
    ./cmd.exp t1.coffeenix.net "ls;cat /etc/fstab" 1
     


    2. ¿©·¯ ¼­¹ö¿¡ Á¢¼ÓÇϱâ À§ÇÑ shell script

    ¾Õ¿¡ ¼Ò°³ÇÑ expect ½ºÅ©¸³Æ®´Â ÁöÁ¤ÇÑ 1´ëÀÇ ¼­¹ö¿¡ Á¢¼ÓÇÏ¿© ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. óÀ½¿¡ ¿ì¸®°¡ ¿øÇÏ´ø °ÍÀº ¿©·¯ ´ëÀÇ ¼­¹ö¿¡ Á¢¼ÓÇÏ´Â °ÍÀ̾ú´Ù. ¿©·¯ ´ëÀÇ Á¢¼ÓÀº shell script·Î ó¸®Çß´Ù.

     #!/bin/sh
    #

    # Á¢¼ÓÇÒ server¸¦ °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ³ª¿­
    SERVER="$SERVER server1 server2 server3 server4 server5 server6"
    SERVER="$SERVER www1 www2 www3 www4 www5"

    # cmd.exp °æ·Î
    EXP="$HOME/bin/cmd.exp"
    # ½ÇÇàÇÒ ¸í·É¾î¸¦ ; ·Î ±¸ºÐÇÏ¿© ³ª¿­ (¿¹. ls;cd /etc )
    CMD=""
    # ¸í·É ½ÇÇà ÈÄ ÀÚµ¿ ·Î±×¾Æ¿ôÇÏ·Á¸é 1À» ÀÔ·Â
    OPT=""

    # -------------------------------
    for s in $SERVER
    do
            case "$s" in
            *)
                    $EXP ${s} "$CMD" $OPT
                    ;;
            esac

            sleep 0.5
    done
     


    ÀÌ ¶§ /etc/resolv.conf ÀÇ search ¿É¼Ç¿¡´Â ¼­¹öÀÇ µµ¸ÞÀθíÀ» Àû¾îÁÖ´Â°Ô ÆíÇÏ´Ù. À̸¦ Å׸é search coffeenix.net ·Î ¼³Á¤Çصθé,  ssh server1.coffeenix.net À¸·Î ÇÏÁö ¾Ê°í ssh server1 ¸í·ÉÀ¸·Î¸¸À¸·Îµµ Á¢¼ÓÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

    3. °ü·Ã expect ½ºÅ©¸³Æ®

    * expect ÇÁ·Î±×·¡¹Ö ¿¹ (±Û ÁÁÀºÁøÈ£)
      http://coffeenix.net/board_view.php?bd_code=112
                                                                                                            
    * expect ÇÁ·Î±×·¡¹Ö ¿¹ µÎ¹ø° (±Û ÁÁÀºÁøÈ£)
      http://coffeenix.net/board_view.php?bd_code=115

    * ½ºÀ§Ä¡Àåºñ Á¢¼Ó/¸í·É¿ë expect ½ºÅ©¸³Æ® (2006.1, ±Û ÁÁÀºÁøÈ£)
      http://coffeenix.net/board_view.php?bd_code=1327

      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [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 ¹ö±×)
    [08/01] DNS forwarder (Àü´ÞÀÚ) ¼­¹ö¸¦ ÅëÇؼ­ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
      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ÀÏ~