|
Ä¿ÇÇÇâÀÌ ³ª´Â *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";
|
|
|
À§·Î |
|
|
|
|
»õ·Î¿î ÁÖÁ¦¸¦ ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù ´ä±ÛÀ» ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù ÁÖÁ¦¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù ¿Ã¸° ±ÛÀ» »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù ÅõÇ¥¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù
|
Powered by phpBB © 2001, 2005 phpBB Group
|