½Ã½ºÅÛ°ü¸®ÀÚÀÇ ½°ÅÍ Ä¿ÇǴнº Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
 FAQFAQ   °Ë»ö°Ë»ö   ¸â¹ö¸®½ºÆ®¸â¹ö¸®½ºÆ®   »ç¿ëÀÚ ±×·ì»ç¿ëÀÚ ±×·ì   »ç¿ëÀÚ µî·ÏÇϱâ»ç¿ëÀÚ µî·ÏÇϱâ 
 °³ÀÎ Á¤º¸°³ÀÎ Á¤º¸   ºñ°ø°³ ¸Þ½ÃÁö¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀºñ°ø°³ ¸Þ½ÃÁö¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀ   ·Î±×Àηα×ÀΠ

°¡ÀÔ¾øÀÌ ´©±¸³ª ±ÛÀ» ¾µ ¼ö ÀÖ½À´Ï´Ù. °øÁö»çÇ׿¡ ´ëÇÑ ´ñ±Û±îÁöµµ..




BBS >> ¼³Ä¡, ¿î¿µ Q&A | ³×Æ®¿÷, º¸¾È Q&A | ÀÏ¹Ý Q&A || Á¤º¸¸¶´ç | AWS || ÀÚÀ¯°Ô½ÃÆÇ | ±¸Àα¸Á÷ || °øÁö»çÇ× | ÀÇ°ßÁ¦½Ã
bashÆÄÀÏÀ» Ŭ·ÐÀ¸·Î ½ÇÇà½Ã Á»ºñ°¡ µÇ´Â°æ¿ì.

 
±Û ¾²±â   ´äº¯ ´Þ±â    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ °Ô½ÃÆÇ À妽º -> *NIX ÀϹÝ
ÀÌÀü ÁÖÁ¦ º¸±â :: ´ÙÀ½ ÁÖÁ¦ º¸±â  
±Û¾´ÀÌ ¸Þ½ÃÁö
rokmn3309
¼Õ´Ô





¿Ã¸®±â¿Ã·ÁÁü: 2004.12.13 ¿ù, 1:41 pm    ÁÖÁ¦: bashÆÄÀÏÀ» Ŭ·ÐÀ¸·Î ½ÇÇà½Ã Á»ºñ°¡ µÇ´Â°æ¿ì. Àοë°ú ÇÔ²² ´äº¯

¾È³çÇϼ¼¿ä..

2.x¿¡ ¾²·¹µå·Î µ¹¸®°í ÀÖ´Â ¾ÆÆÄÄ¡¿¡¼­ ƯÁ¤½ÃÁ¡¿¡ Segmentation fault°¡ ¹ß»ýÇÏ¿© ¼­¹ö°¡ ¸ÔÅëÀÌ µÇ´Â°æ¿ì°¡ Á¾Á¾ À־
crontab¿¡¼­ 2ºÐ¸¶´Ù.. http¼­¹ö°¡ ÀÀ´äÀ» ÇÏ´ÂÁö expect·Î telnetÀ¸·Î Åë½ÅÀ» Çغ¸°í ¹®Á¦°¡ ÀÖÀ»½Ã¿¡ ´Ù½Ã ¾ÆÆÄÄ¡¸¦
Àç½ÃÀÛÇÏ´Â expect¸¦ ½ÇÇàÈÄ ¸ÞÀÏÀ» º¸³»ÁÖ´Â ½©À» ½ÇÇàÇÏ°í ÀÖ½À´Ï´Ù.

¹®Á¦´Â Æò»ó½Ã üŷÇÏ´Â°Í ±îÁö´Â º° ¹®Á¦°¡ ¾øÀÌ ÀߵǴµ¥ ¹®Á¦°¡ »ý°Ü¼­ ¾ÆÆÄÄ¡¸¦ Àç½ÃÀÛÇÏ´Â ½©À» ½ÇÇàÈÄ Á»ºñ°¡ µÇ¾î¹ö¸®´Â
¹®Á¦°¡ ÀÖ½À´Ï´Ù.

ÀüüÀûÀÎ ·çƾÀº "Ŭ·Ð¿¡¼­ °ü¸®½©À» È£ÃâÇϸé À¥Åë½ÅüũÈÄ Åë½ÅÀÌ ¾ÈµÅ¸é ¾ÆÆÄÄ¡ Àç½ÃÀÛÈÄ ¸ÞÀÏÀ» º¸³»°í Á¾·á" ÀÔ´Ï´Ù.


´ÙÀ½Äڵ尡 Ŭ·Ð¿¡¼­ È£ÃâÇÏ´Â ½©ÀÔ´Ï´Ù.
ÄÚµå:

#http_control.sh
#!/bin/bash

checkdomain="127.0.0.1"
notifyMailaddr="aaa@bbb.com"

serverip=`hostname -i`
servername=`hostname`
serverdate=`date +%Y-%m-%d`
servertime=`date +%H:%M:%S`

mailsubject="[SERVERINFO]-"$servername
mailcontent="HTTP Restart Time: $serverdate $servertime and Server $servername ( $serverip )"

getMsg=`/script/http_live_check.sh $checkdomain` # ¾ÆÆÄÄ¡ ÀÀ´ä¿©ºÎ
getMsgLen=${#getMsg}
domsg=${getMsg:$getMsgLen-5:$getMsgLen}

if [ "$domsg" != "alive" ]
then
     # ¹®Á¦°¡ ¹ß»ý½Ã¿¡ ¾ÆÆÄÄ¡¸¦ Àç½ÃÀÛÇÏ°í °ü¸®ÀÚ¿¡°Ô ¸ÞÀÏ Àü¼Û
      /script/auto_http_restart.sh &
     #/script/auto_http_restart.sh
     sleep 1

     mailhead="$notifyMailaddr -s '$mailsubject'"
     echo $mailcontent | mail $mailhead
     exit 0
fi


´ÙÀ½Àº ÅÚ³ÝÀ¸·Î À¥¼­¹ö°¡ ÀÀ´äÇÏ´ÂÁö Åë½ÅÇÏ´Â ½©ÀÔ´Ï´Ù.
ÄÚµå:

#http_live_check.sh
#!/usr/bin/expect

set host [lindex $argv 0]
set port 80
spawn telnet $host $port

set timeout 5
expect {
    "Escape character is" {
        send "HEAD / HTTP/1.0\n\n";
    }
    "Connection refused" {
        send_user "http death"
        exit 2
    }
    "Unknown" {
        send_user "http death"
        exit 2
    }
    timeout {
        send_user "http death";
        exit 2
    }
}

# port is opened! now check response is good.
set timeout 10
expect {
    "HTTP/1.1" {
        send_user "http alive"
    }
    "Connection closed" {
        send_user "http death";
    }
    timeout {
        send_user "http death";
        exit 1
    }
}


´ÙÀ½Àº ¾ÆÆÄÄ¡¸¦ Àç½ÃÀÛÇÏ´Â ½©ÀÔ´Ï´Ù. À¥¿¡¼­ sslÀ» »ç¿ë ÇؾßÇؼ­ ¾ÆÆÄÄ¡¿¡¼­ ÀÚµ¿À¸·Î Æнº¿öµå¸¦
ÀνÄÇÏ°Ô Çߴµ¥ 2.x ´ë·Î ¾÷ÈÄ¿¡ ÀνÄÀÌ ¾ÈµÇ¾î¼­ ½©¿¡¼­ ÀÚµ¿À¸·Î ³Ö°Ô ¸¸µç°ÍÀÔ´Ï´Ù.
ÄÚµå:

#auto_http_restart.sh
#!/usr/bin/expect

set myPath "/data/local/apache-2.0.49/bin/apachectl"
set myCmd "$myPath stop"
spawn bash -c $myCmd
sleep 1

set myCmd "$myPath startssl"

while 1 {
        spawn bash -c $myCmd
        expect {
                "*already running" {
                        set myCmd "$myPath stop"
                        sleep 1
                }
                "*not running" {
                        set myCmd "$myPath startssl"
                        sleep 1
                }
                "Enter pass phrase:" {
                        send "mypassword\r"
                        sleep 1
                        expect "Ok: Pass Phrase Dialog successful."
                                interact
                                exit 0
                }
                default {
                        set myCmd "$myPath startssl"
                        sleep 1
                }
        }
}

interact
exit 0


´ÙÀ½Àº Ŭ·ÐÅÇ¿¡¼­ ÇØ´ç ºÎºÐÀÔ´Ï´Ù.
ÄÚµå:

# apache web daemon responsable check
*/2 * * * * root /script/http_control.sh &
#*/2 * * * * root /script/http_control.sh
À§·Î
truefeel
Ä«Æä °ü¸®ÀÚ


°¡ÀÔ: 2003³â 7¿ù 24ÀÏ
¿Ã¸° ±Û: 1277
À§Ä¡: ´ëÇѹα¹

¿Ã¸®±â¿Ã·ÁÁü: 2004.12.17 ±Ý, 9:20 am    ÁÖÁ¦: Re: bashÆÄÀÏÀ» Ŭ·ÐÀ¸·Î ½ÇÇà½Ã Á»ºñ°¡ µÇ´Â°æ¿ì. Àοë°ú ÇÔ²² ´äº¯

¾î¶² ÇÁ·Î¼¼½º°¡ Á»ºñ°¡ µÇ´ÂÁö.

±×¸®°í, ±× Àü ´Ü°è¿¡ apache°¡ ¿Ö segment fault°¡ ³ª´ÂÁö ºÎÅÍ ÆľÇÇÏ´Â°Ô ³ªÀ» °Í °°½À´Ï´Ù.
ÄÄÆÄÀÏÀÌ Àß ¸ø µÈ °ÍÀº ¾ø´ÂÁö, ´Ù¸¥ ¿¡·¯ ¸Þ½ÃÁö´Â ¾ø¾ú´ÂÁö µîµîÀ» ÆľÇÇϴ°Ô.
ltrace°°Àº °É·Î ÇÁ·Î¼¼½º¿¡¼­ ÀÌ·ïÁö´Â call »óŵµ ÆľÇÇغ¸½Ã±¸¿ä.

À¥¼­¹ö µ¿ÀÛÁßÀÎÁö ¾Æ´ÑÁö üũ´Â
ab (¾ÆÆÄÄ¡³»), HEAD (perl-libwww-perl ÆÐÅ°Áö) µîÀ¸·Î üũÇÏ´Â°Ô ´õ ÆíÇϰڳ׿ä.
¾Æ´Ï¸é php·Î °£´ÜÈ÷ Æ÷Æ® üũÇϵµ·Ï ÇϽôøÁö¿ä.

ÄÚµå:

$ServPort = "80";
$fp = @fsockopen ($ServAddr, $ServPort, $errno, $errstr, 10);
echo "[Á¢¼ÓÁß  ] $ServAddr:$ServPort \n";

// Æ÷Æ®°¡ ¿­¸®Áö ¾Ê¾Ò´Ù¸é
if (!$fp) {             
        return "0";
}
fclose ($fp);
return "1";
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ºñ¹Ð ¸Þ½ÃÁö º¸³»±â ±Û ¿Ã¸°ÀÌÀÇ À¥»çÀÌÆ® ¹æ¹®
ÀÌÀü ±Û Ç¥½Ã:   
±Û ¾²±â   ´äº¯ ´Þ±â    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ °Ô½ÃÆÇ À妽º -> *NIX ÀÏ¹Ý ½Ã°£´ë: GMT + 9 ½Ã°£(Çѱ¹)
ÆäÀÌÁö 1 Áß 1

 
°Ç³Ê¶Ù±â:  
»õ·Î¿î ÁÖÁ¦¸¦ ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù
´ä±ÛÀ» ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù
ÁÖÁ¦¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù
¿Ã¸° ±ÛÀ» »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù
ÅõÇ¥¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù


Powered by phpBB © 2001, 2005 phpBB Group