<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>The eye - 배우고 공부하고 노력하는 블로그</title>
		<link>http://theeye.pe.kr/</link>
		<description>배움에 망설이는 그 순간 당신은 2류</description>
		<language>ko</language>
		<pubDate>Mon, 08 Feb 2010 13:05:02 +0900</pubDate>
		<generator>Textcube 1.7.6 : Staccato</generator>
		<image>
		<title>The eye - 배우고 공부하고 노력하는 블로그</title>
		<url>http://theeye.pe.kr/attach/1/1061459892.jpg</url>
		<link>http://theeye.pe.kr/</link>
		<width>220</width>
		<height>168</height>
		<description>배움에 망설이는 그 순간 당신은 2류</description>
		</image>
		<item>
			<title>SNMP 서비스 컴파일 설치 하기</title>
			<link>http://theeye.pe.kr/entry/how-to-compile-net-snmp-on-linux-machine</link>
			<description>[&lt;STRONG&gt;&lt;A href=&quot;http://www.net-snmp.org/&quot; target=_blank&gt;&lt;STRONG&gt;Net-SNMP&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]에서 제공하는 SNMP를 컴파일 하여 직접 설치해 보도록 하겠습니다. 이 글을 작성하는 시점에서의 가장 최신 버젼은 5.5입니다. 시간이 지나서 이글을 보실 경우에는 홈페이지에 방문하여 나오는 가장 최신인 안정화 버젼을 사용하시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=4&gt;&lt;U&gt;컴파일 하여 설치하기&lt;/U&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;/usr/local/net-snmp에 설치한다는 조건하에 다음과 같은 옵션으로 설치합니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;tar -zxvf net-snmp-5.5.tar.gz&lt;BR&gt;cd net-snmp-5.5&lt;BR&gt;CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure --prefix=/usr/local/net-snmp \&lt;BR&gt;  --disable-shared --with-mib-modules=mibII,host,mibII/ip,mibII/tcp,mibII/udp, \&lt;BR&gt;  mibII/icmp,mibII/var_route,mibII/kernel_linux,ucd_snmp&lt;BR&gt;make&lt;BR&gt;make install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;U&gt;&lt;FONT color=#003366 size=4&gt;&lt;STRONG&gt;설정 파일 생성하기&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;EXAMPLE.conf 파일을 참고하셔서 설정파일을 생성하시면 됩니다. 기본적인 위치는 /usr/local/net-snmp/share/snmp/snmpd.conf 입니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;rocommunity public&lt;BR&gt;rocommunity public 127.0.0.1&lt;BR&gt;rocommunity test 87.65.43.21&lt;BR&gt;includeAllDisks&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위와 같은 간단한 설정만으로도 &lt;FONT color=#333333&gt;&lt;U&gt;CPU사용량, 로드에버리지, 네트워크, 메모리/스왑 사용량, 접속 사용자, 실행중인 프로세스&lt;/U&gt;&lt;/FONT&gt; 정보를 얻어올 수 있습니다. &lt;STRONG&gt;includeAllDisks&lt;/STRONG&gt;옵션은 NFS를 포함한 마운트된 모든 파티션의 정보를 얻어올 수 있게 하는 옵션입니다.&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=4&gt;서비스 실행&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;서비스는 다음의 명령으로 실행합니다. /etc/rc.d/rc.local 파일등에 넣어두면 자동 실행 시킬 수 있습니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;/usr/local/net-snmp/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;서비스가 정상적으로 수행중인지 정상적으로 161번 포트가 열려있는지 확인해 봅시다. 결과가 출력된다면 성공입니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;netstat -ln | grep 161&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;참고 : &lt;A href=&quot;http://forums.cacti.net/about15353.html&quot;&gt;http://forums.cacti.net/about15353.html&lt;/A&gt;</description>
			<category>서버관리</category>
			<category>includeAllDisks</category>
			<category>SNMP</category>
			<category>리눅스</category>
			<category>서버관리</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/367</guid>
			<comments>http://theeye.pe.kr/entry/how-to-compile-net-snmp-on-linux-machine#entry367comment</comments>
			<pubDate>Thu, 04 Feb 2010 17:17:59 +0900</pubDate>
		</item>
		<item>
			<title>rrdtool 설치 하기</title>
			<link>http://theeye.pe.kr/entry/how-to-install-rrdtool-with-compiling</link>
			<description>MRTG와 쌍벽을 이루는 그래프를 그리기 위한 툴인 rrdtool의 경우 yum등을 통해 손쉽게 설치가 가능합니다. 하지만 이번에는 수동으로 설치하는 방법을 알아볼까 합니다. 이 글은 [&lt;STRONG&gt;&lt;A href=&quot;http://oss.oetiker.ch/rrdtool/doc/rrdbuild.en.html&quot; target=_blank&gt;&lt;STRONG&gt;이것&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]을 참고하였습니다. 시간이 지나 새로운 버젼이 나오게 되면 과거버젼의 글이 되어버리므로 참고만 하시되 원본글을 보고 설치하시기 바랍니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=4&gt;설치 준비하기&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;최소한의 설치 준비를 위해 다음을 생각해 두어야 합니다.&lt;BR&gt;&lt;BR&gt;1. 어느 디렉토리에서 설치를 위한 빌드를 준비할 것인가?&lt;BR&gt;2. 어느 디렉토리에 설치할 것인가?&lt;BR&gt;&lt;BR&gt;두가지를 결정하였다면 환경 변수로 등록해 둡니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;BUILD_DIR=/tmp/rrdbuild&lt;BR&gt;INSTALL_DIR=/opt/rrdtool-1.4.2&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;빌드를 할 디렉토리를 만들어서 이동합니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;mkdir -p $BUILD_DIR&lt;BR&gt;cd $BUILD_DIR&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;추가로 필요로 하는 라이브러리를 알아보기 위한 설치를 시도해 봅니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.2.tar.gz&lt;BR&gt;gunzip -c rrdtool-1.4.2.tar.gz | tar xf -&lt;BR&gt;cd rrdtool-1.4.2&lt;BR&gt;./configure --prefix=$INSTALL_DIR &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위의 결과가 정상적으로 끝난다면 필요한 라이브러리가 모두 있는것으로써 바로 사용이 가능해 집니다. 하지만 보통은 어떤 라이브러리들이 없는 쭉 나오게 됩니다. 그것을 적어두고 다음으로 넘어갑니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=4&gt;의존성 라이브러리 설치하기&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;설치를 하기에 앞서 라이브러리들이 서로 참조를 하기 때문에 다음을 수행하여 문제 없이 이루어 지도록 해줍니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig&lt;BR&gt;export PATH=$INSTALL_DIR/bin:$PATH&lt;BR&gt;export LDFLAGS=&quot;-Wl,--rpath -Wl,${INSTALL_DIR}/lib&quot;&lt;BR&gt;export MAKE=make&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;이후 다음의 라이브러리들중 필요로 하는 라이브러리만 선별적으로 순서대로 설치를 합니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;- pkgconfig&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz&lt;BR&gt;gunzip -c pkg-config-0.23.tar.gz | tar xf -&lt;BR&gt;cd pkg-config-0.23&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- zlib&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz&lt;BR&gt;gunzip -c zlib-1.2.3.tar.gz | tar xf -&lt;BR&gt;cd zlib-1.2.3&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot; --shared&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- libpng&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz&lt;BR&gt;gunzip -c libpng-1.2.18.tar.gz | tar xf -&lt;BR&gt;cd libpng-1.2.18&lt;BR&gt;env CFLAGS=&quot;-O3 -fPIC&quot; ./configure --prefix=$INSTALL_DIR&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- freetype&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz&lt;BR&gt;gunzip -c freetype-2.3.5.tar.gz | tar xf -&lt;BR&gt;cd freetype-2.3.5&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- libXML2&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-2.6.32.tar.gz&lt;BR&gt;gunzip -c libxml2-2.6.32.tar.gz | tar xf -&lt;BR&gt;cd libxml2-2.6.32&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- fontconfig&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz&lt;BR&gt;gunzip -c fontconfig-2.4.2.tar.gz   | tar xf -&lt;BR&gt;cd fontconfig-2.4.2&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot; \&lt;BR&gt;  --with-freetype-config=$INSTALL_DIR/bin/freetype-config&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;font-config의 경우, 설치중에 폰트캐시를 생성하게 됩니다. 하지만 시스템을 X를 제외하여 설치하였다면 폰트가 하나도 없게 되어 캐시를 생성해봤자 사용할 수 있는 폰트가 없기 때문에 모든 문자가 깨져 나오게 됩니다. 이때에는 사용하려는 트루타입 폰트(ttf)를 &lt;FONT color=#008000&gt;$INSTALL_DIR/etc/fonts(rpm 패키지로 설치되어있을 경우 /usr/share/fonts)&lt;/FONT&gt;&amp;nbsp;안에 설치하여 주신후에 &lt;STRONG&gt;fc-cache&lt;/STRONG&gt;를 실행하여 주시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;- Pixman&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz&lt;BR&gt;gunzip -c pixman-0.10.0.tar.gz  | tar xf -&lt;BR&gt;cd pixman-0.10.0&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- Cairo&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz&lt;BR&gt;gunzip -c cairo-1.6.4.tar.gz   | tar xf -&lt;BR&gt;cd cairo-1.6.4&lt;BR&gt;./configure --prefix=$INSTALL_DIR \&lt;BR&gt;   --enable-xlib=no \&lt;BR&gt;   --enable-xlib-render=no \&lt;BR&gt;   --enable-win32=no \&lt;BR&gt;   CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- Glib&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz&lt;BR&gt;gunzip -c glib-2.15.4.tar.gz  | tar xf -&lt;BR&gt;cd glib-2.15.4&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot;&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;- Pango&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR&lt;BR&gt;wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.bz2&lt;BR&gt;bunzip2 -c pango-1.21.1.tar.bz2 | tar xf -&lt;BR&gt;cd pango-1.21.1&lt;BR&gt;./configure --prefix=$INSTALL_DIR CFLAGS=&quot;-O3 -fPIC&quot; --without-x&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=4&gt;다시 rrdtool 설치하기&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;필요한 의존 라이브러리를 설치하였다면 다시한번 설치를 시도해 봅시다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cd $BUILD_DIR/rrdtool-1.4.2&lt;BR&gt;./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python&lt;BR&gt;$MAKE clean&lt;BR&gt;$MAKE&lt;BR&gt;$MAKE install&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;설치후에 &lt;FONT color=#008000&gt;$INSTALL_DIR/share/rrdtool/examples&lt;/FONT&gt; 안에 있는 예제를 실행하여 정상적으로 그래프가 그려지는지 확인하여 봅시다. 잘 된다면 설치 성공입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1228430952.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;89&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;EM&gt; 
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;EM&gt;위는 설치중에 나오는 시디 구매 장난;;&lt;/EM&gt;&lt;/DIV&gt;&lt;/EM&gt;</description>
			<category>서버관리</category>
			<category>MRTG</category>
			<category>rrdtool</category>
			<category>리눅스</category>
			<category>서버관리</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/366</guid>
			<comments>http://theeye.pe.kr/entry/how-to-install-rrdtool-with-compiling#entry366comment</comments>
			<pubDate>Thu, 04 Feb 2010 11:02:19 +0900</pubDate>
		</item>
		<item>
			<title>[MySQL] 실행중인 쿼리 콘솔에서 중단시키기</title>
			<link>http://theeye.pe.kr/entry/how-to-kill-running-query-on-MySQL</link>
			<description>간혹 특정 프로그램에서 실행한 쿼리가 잘못되어 데이터베이스 서버 전체가 먹통이 되는 경우가 생길 수 있습니다.&lt;BR&gt;&lt;BR&gt;정체를 알 수 없는 상황에서의 이런 현상은 원인을 잡아내기가 힘들죠. 하지만 그냥 문제가 되는 쿼리&lt;FONT color=#008000&gt;(보통 이런 문제는 두가지 쿼리가 서로의 종료를 기다리며 발생하는 데드락 현상이 많습니다)&lt;/FONT&gt;를 바로 죽이면 해결됩니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint lang-sql&quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;mysql&amp;gt; SHOW PROCESSLIST;&lt;BR&gt;+----+--------+--------------+---------+---------+------+-------+-------------&lt;BR&gt;| Id | User   | Host         | db      | Command | Time | State | Info        &lt;BR&gt;+----+--------+--------------+---------+---------+------+-------+-------------&lt;BR&gt;|  5 | root   | localhost    | STARPL3 | Query   | 2048 | init  | INSERT INTO ...&lt;BR&gt;| 13 | root   | localhost    | NULL    | Query   |    0 | NULL  | show processlist&lt;BR&gt;| 14 | lapoly | Canopus:3750 | STARPL3 | Sleep   |  160 |       | NULL        &lt;BR&gt;| 15 | lapoly | Canopus:3751 | NULL    | Sleep   |  386 |       | NULL        &lt;BR&gt;+----+--------+--------------+---------+---------+------+-------+-------------&lt;BR&gt;4 rows in set (0.00 sec)&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;딱 보았을때 &lt;STRONG&gt;INSERT INTO&lt;/STRONG&gt; 쿼리문의 &lt;STRONG&gt;Time&lt;/STRONG&gt;을 보니 엄청나게 오랜 시간이 걸리는 쿼리문이라는것을 알 수 있습니다.&lt;BR&gt;&lt;BR&gt;저것을 죽일려면 &lt;STRONG&gt;KILL&lt;/STRONG&gt; 명령을 사용하시면 됩니다. [&lt;STRONG&gt;&lt;A href=&quot;http://dev.mysql.com/doc/refman/5.0/en/kill.html&quot; target=_blank&gt;&lt;STRONG&gt;참고&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint lang-sql&quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;mysql&amp;gt; KILL 5&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;앞에 나와있는 Id의 값을 인자로 사용하시면 잠시 후 해당 쿼리가 강제로 중단됩니다.&lt;script type=&quot;text/javascript&quot; src=&quot;/plugins/SyntaxHighlighter/lang-sql.js&quot;&gt;&lt;/script&gt;</description>
			<category>서버관리</category>
			<category>mysql</category>
			<category>PROCESS</category>
			<category>Query</category>
			<category>데이터베이스</category>
			<category>쿼리</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/365</guid>
			<comments>http://theeye.pe.kr/entry/how-to-kill-running-query-on-MySQL#entry365comment</comments>
			<pubDate>Tue, 02 Feb 2010 04:51:37 +0900</pubDate>
		</item>
		<item>
			<title>[TC/TT] SyntaxHighlighter 2.0 - Google Code Prettify</title>
			<link>http://theeye.pe.kr/entry/SyntaxHighlighter_2_0_for_Textcube_and_TatterTools</link>
			<description>&lt;P&gt;&lt;STRONG&gt;- Example of Lua syntax highlighting&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint lang-lua&quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;os=require(&quot;os&quot;)&lt;BR&gt;math=require(&quot;math&quot;)&lt;BR&gt; &lt;BR&gt;-- Some comments that demonstrate long brackets&lt;BR&gt;double_quoted = &quot;Not a long bracket [=[&quot;&lt;BR&gt;--[=[ quoting out&lt;BR&gt; [[ foo ]]&lt;BR&gt; [==[does not end comment either]==]&lt;BR&gt;]=]&lt;BR&gt;past_end_of_comment&lt;BR&gt;--]=]&lt;BR&gt; &lt;BR&gt;-- Example code courtesy Joseph Harmbruster&lt;BR&gt;#&lt;BR&gt;do&lt;BR&gt;  local function ssgeneral(t, n, before)&lt;BR&gt;    for _, h in ipairs(incs) do&lt;BR&gt;      for i = h + 1, n do&lt;BR&gt;        local v = t[i]&lt;BR&gt;        for j = i - h, 1, -h do&lt;BR&gt;          local testval = t[j]&lt;BR&gt;          if not before(v, testval) then break end&lt;BR&gt;          t[i] = testval; i = j&lt;BR&gt;        end&lt;BR&gt;        t[i] = v&lt;BR&gt;      end &lt;BR&gt;    end&lt;BR&gt;    return t&lt;BR&gt;  end&lt;BR&gt; &lt;BR&gt;  function shellsort(t, before, n)&lt;BR&gt;    n = n or #t&lt;BR&gt;    if not before or before == &quot;&amp;lt;&quot; then return ssup(t, n)&lt;BR&gt;    elseif before == &quot;&amp;gt;&quot; then return ssdown(t, n)&lt;BR&gt;    else return ssgeneral(t, n, before)&lt;BR&gt;    end&lt;BR&gt;  end&lt;BR&gt;  return shellsort&lt;BR&gt;end&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;SyntaxHighlighter 2.0입니다. 1.x대에서 2.0으로의 발전은 많은것이 바뀌었음을 뜻합니다.&lt;BR&gt;&lt;BR&gt;이 코드강조 플러그인의 자세한 설명은 이전 글을 참고하세요. &lt;STRONG&gt;[&lt;A href=&quot;http://theeye.pe.kr/entry/TT플러그인-SyntaxHighlighter-10&quot; target=_blank&gt;1.0&lt;/A&gt;]&lt;/STRONG&gt; &lt;STRONG&gt;[&lt;A href=&quot;http://theeye.pe.kr/entry/SyntaxHighlighter-13-using-Google-Code-Pretify&quot; target=_blank&gt;1.3&lt;/A&gt;]&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;이번 버젼의 가장 큰 변화는 하이라이팅 될 언어가 자동으로 선택 되던것뿐만 아니라 임의로 지정할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;- 기존의 자동 언어 선택 하이라이팅&lt;/STRONG&gt;&lt;BR&gt;［code]...［/code]&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;- 임의 지정 하이라이팅&lt;BR&gt;&lt;/STRONG&gt;［code lang-c]...［/code]&lt;BR&gt;&lt;BR&gt;지원하는 언어는 다음과 같습니다. (괄호안이 임의 지정할때 사용되는 코드)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;bash(lang-sh) 
&lt;LI&gt;C(lang-c) 
&lt;LI&gt;C++(lang-cc) 
&lt;LI&gt;C#(lang-cs) 
&lt;LI&gt;Java(lang-java) 
&lt;LI&gt;Javascript(lang-js) 
&lt;LI&gt;Perl 
&lt;LI&gt;Python(lang-py) 
&lt;LI&gt;SQL(lang-sql) 
&lt;LI&gt;XML 
&lt;LI&gt;(X)HTML(lang-html) 
&lt;LI&gt;PHP 
&lt;LI&gt;XSL 
&lt;LI&gt;Lua(lang-lua) 
&lt;LI&gt;VBScript(lang-vb) 
&lt;LI&gt;Haskell(lang-hs) 
&lt;LI&gt;Ocaml &amp;amp; F#(lang-ml) 
&lt;LI&gt;Lisp(lang-el) 
&lt;LI&gt;Protocol Buffers(lang-proto) 
&lt;LI&gt;Wiki Syntax(lang-wiki) 
&lt;LI&gt;CSS(lang-css) 
&lt;LI&gt;VHDL(lang-vhdl)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;버그나 기능개선 문의는 블로그에 댓글 달아주시거나 메일주세요^^&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1237052151.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; SyntaxHighlighter_20.zip&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;/plugins/SyntaxHighlighter/lang-lua.js&quot;&gt;&lt;/script&gt;</description>
			<category>프로젝트</category>
			<category>code</category>
			<category>Code Prettify</category>
			<category>Syntax</category>
			<category>SyntaxHighliter</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/364</guid>
			<comments>http://theeye.pe.kr/entry/SyntaxHighlighter_2_0_for_Textcube_and_TatterTools#entry364comment</comments>
			<pubDate>Mon, 01 Feb 2010 13:10:25 +0900</pubDate>
		</item>
		<item>
			<title>[MySQL] 무한정 늘어나는 log-bin 파일 줄이기</title>
			<link>http://theeye.pe.kr/entry/how-to-reduce-log-bin-file-on-mysql-database</link>
			<description>MySQL에서 사용하는 log-bin이라는 옵션은 사용된 쿼리들이 로깅되는 파일이며 Innodb 혹은 Replication등에서 사용되곤 합니다.&lt;BR&gt;&lt;BR&gt;하지만 이 파일의 문제는 무한정 늘어난다는 것입니다. relay-log-space-limit 같은 옵션이 있지만 이 옵션은 Replication에서 사용되는 relay-log-bin의 용량을 제한 하는 옵션이지 해결책이 되지 못합니다.&lt;BR&gt;&lt;BR&gt;하지만 이 파일을 정리하는 방법이 있습니다. 우선 다음의 Query를 사용하는 것입니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint lang-sql&quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;INTERVAL에서는 원하시는 로깅 시점을 기록하시면 됩니다. 위의 경우에는 30일 이전의 로깅 정보를 삭제하게 됩니다.&lt;BR&gt;&lt;BR&gt;차례차례 해보도록 하겠습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;1. 현재의 하드디스크 용량 상태를 확인합니다.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;[root@Theeye db]# df -h&lt;BR&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;BR&gt;/dev/sda1              18G  1.9G   15G  12% /&lt;BR&gt;/dev/sda3              15G  803M   13G   6% /home&lt;BR&gt;/dev/sda2              97G   78G   15G  85% /usr/local/mysql/db&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;데이터베이스 공간이 85%나 사용되어 곧 꽉찰지도 모른다는 불안감에 휩싸이게 되었습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;2. log-bin 파일을 확인해 봅시다.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;[root@Theeye db]# ls mysql-bin.*&lt;BR&gt;mysql-bin.000001  mysql-bin.000002  mysql-bin.000003 ......  mysql-bin.000073&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;파일이 엄청나게 많이 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;3. 다음 명령어를 수행합니다.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;mysql -e &quot;PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)&quot;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;물론 mysql에 접속하셔서 위의 명령어를 입력하셔도 됩니다. Super권한을 가진 root계정으로 실행해 주세요.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;4. log-bin 파일이 줄었나 확인해 봅시다.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;[root@Theeye db]# ls mysql-bin.*&lt;BR&gt;mysql-bin.000041  mysql-bin.000042  mysql-bin.000043 ......  mysql-bin.000073&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;41번 이전의 파일들이 모두 삭제 되었습니다. 41번 부터가 최근 30일 이내의 로그정보가 남아있는 모양이군요.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;5. 하드디스크 용량 상태를 확인해 봅시다.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;[root@Theeye db]# df -h&lt;BR&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;BR&gt;/dev/sda1              18G  1.9G   15G  12% /&lt;BR&gt;/dev/sda3              15G  803M   13G   6% /home&lt;BR&gt;/dev/sda2              97G   40G   53G  43% /usr/local/mysql/db&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;확실히 용량이 많이 확보가 되었군요^^&lt;BR&gt;&lt;BR&gt;주기적인 실행이 필요하실 경우에는 위의 명령어를 crontab에 등록하시면 됩니다. 일주일에 한번정도의 실행이 적당하겠네요.&lt;script type=&quot;text/javascript&quot; src=&quot;/plugins/SyntaxHighlighter/lang-sql.js&quot;&gt;&lt;/script&gt;</description>
			<category>서버관리</category>
			<category>log-bin</category>
			<category>mysql</category>
			<category>데이터베이스</category>
			<category>로그</category>
			<category>용량</category>
			<category>제한</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/363</guid>
			<comments>http://theeye.pe.kr/entry/how-to-reduce-log-bin-file-on-mysql-database#entry363comment</comments>
			<pubDate>Sun, 01 Nov 2009 00:58:22 +0900</pubDate>
		</item>
		<item>
			<title>[RHEL] Ethernet Bandwidth Limit 걸기 (속도 제한/QOS)</title>
			<link>http://theeye.pe.kr/entry/limit-bandwidth-of-ethernet-on-linux-machine-like-QOS</link>
			<description>&lt;P&gt;&lt;FONT color=#d41a01&gt;&lt;EM&gt;2010년 2월 4일 추가 ----&lt;BR&gt;이 기능은 잘 되지 않는것으로 판단됩니다. 자세한 부분은 댓글을 참고하세요.&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;리눅스의 사실상 기본 패키지인 iproute안에는 tc(Traffic Control)이라는 명령어가 포함되어 있습니다.&lt;BR&gt;&lt;BR&gt;이 명령어를 사용하여 네트워크 스위치의 도움 없이도 자체적으로 자신의 이더넷 속도를 제한 할 수 있습니다.&lt;BR&gt;&lt;BR&gt;이는 보통 네트워크에서 말하는 QOS(Quality Of Service)와 비슷한 기능을 제공합니다.&lt;BR&gt;&lt;BR&gt;하지만 저비용으로 고효율을 낼 수 있다는 점에서 매우 괜찮은 방법인듯 합니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;1) 요구 사항&lt;/STRONG&gt;&lt;BR&gt;- iproute RPM 패키지가 설치되어있어야 함&lt;BR&gt;- 리눅스 커널의 iproute 파트의 Traffic Control 옵션(Netlink포함)이 활성화 되어있어야 함.&lt;BR&gt;- 리눅스 커널 2.4버젼 이후의 경우 기본적으로 대부분의 Traffic Control 옵션이 활성화 되어있음.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;2) 시스템 명령어 추가&lt;/STRONG&gt;&lt;BR&gt;- shaping이라는 명령을 추가합니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;$ vi /etc/init.d/shaping&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;- 다음의 소스코드를 입력합니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;#!/bin/bash&lt;BR&gt;#  tc uses the following units when passed as a parameter.&lt;BR&gt;#  kbps: Kilobytes per second &lt;BR&gt;#  mbps: Megabytes per second&lt;BR&gt;#  kbit: Kilobits per second&lt;BR&gt;#  mbit: Megabits per second&lt;BR&gt;#  bps: Bytes per second &lt;BR&gt;#       Amounts of data can be specified in:&lt;BR&gt;#       kb or k: Kilobytes&lt;BR&gt;#       mb or m: Megabytes&lt;BR&gt;#       mbit: Megabits&lt;BR&gt;#       kbit: Kilobits&lt;BR&gt;#  To get the byte figure from bits, divide the number by 8 bit&lt;BR&gt;#&lt;BR&gt; &lt;BR&gt;# tc명령어의 위치를 입력합니다.&lt;BR&gt;TC=/sbin/tc&lt;BR&gt; &lt;BR&gt;# 대역폭을 제한하기 위한 이더넷 인터페이스를 지정합니다.&lt;BR&gt;IF=eth0&lt;BR&gt; &lt;BR&gt;# 다운로드 속도 제한&lt;BR&gt;DNLD=15mbit&lt;BR&gt; &lt;BR&gt;# 업로드 속도 제한&lt;BR&gt;UPLD=15mbit&lt;BR&gt; &lt;BR&gt;# 속도 제한을 적용할 호스트의 IP 주소&lt;BR&gt;IP=123.123.123.123&lt;BR&gt; &lt;BR&gt;# Filter options for limiting the intended interface.&lt;BR&gt;U32=&quot;$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32&quot;&lt;BR&gt; &lt;BR&gt;start() {&lt;BR&gt;# We&#039;ll use Hierarchical Token Bucket (HTB) to shape bandwidth.&lt;BR&gt;# For detailed configuration options, please consult Linux man&lt;BR&gt;# page.&lt;BR&gt;    $TC qdisc add dev $IF root handle 1: htb default 30&lt;BR&gt;    $TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD&lt;BR&gt;    $TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD&lt;BR&gt;    $U32 match ip dst $IP/32 flowid 1:1&lt;BR&gt;    $U32 match ip src $IP/32 flowid 1:2&lt;BR&gt;# The first line creates the root qdisc, and the next two lines&lt;BR&gt;# create two child qdisc that are to be used to shape download &lt;BR&gt;# and upload bandwidth.&lt;BR&gt;#&lt;BR&gt;# The 4th and 5th line creates the filter to match the interface.&lt;BR&gt;# The &#039;dst&#039; IP address is used to limit download speed, and the &lt;BR&gt;# &#039;src&#039; IP address is used to limit upload speed.&lt;BR&gt;}&lt;BR&gt; &lt;BR&gt;stop() {&lt;BR&gt;# Stop the bandwidth shaping.&lt;BR&gt;    $TC qdisc del dev $IF root&lt;BR&gt;}&lt;BR&gt; &lt;BR&gt;restart() {&lt;BR&gt;# Self-explanatory.&lt;BR&gt;    stop&lt;BR&gt;    sleep 1&lt;BR&gt;    start&lt;BR&gt;}&lt;BR&gt; &lt;BR&gt;show() {&lt;BR&gt;# Display status of traffic control status.&lt;BR&gt;    $TC -s qdisc ls dev $IF&lt;BR&gt;}&lt;BR&gt; &lt;BR&gt;case &quot;$1&quot; in&lt;BR&gt;  start)&lt;BR&gt;    echo -n &quot;Starting bandwidth shaping: &quot;&lt;BR&gt;    start&lt;BR&gt;    echo &quot;done&quot;&lt;BR&gt;    ;;&lt;BR&gt;  stop)&lt;BR&gt;    echo -n &quot;Stopping bandwidth shaping: &quot;&lt;BR&gt;    stop&lt;BR&gt;    echo &quot;done&quot;&lt;BR&gt;    ;;&lt;BR&gt;  restart)&lt;BR&gt;    echo -n &quot;Restarting bandwidth shaping: &quot;&lt;BR&gt;    restart&lt;BR&gt;    echo &quot;done&quot;&lt;BR&gt;    ;;&lt;BR&gt;  show)&lt;BR&gt;    echo &quot;Bandwidth shaping status for $IF:&quot;&lt;BR&gt;    show&lt;BR&gt;    echo &quot;&quot;&lt;BR&gt;    ;;&lt;BR&gt;  *)&lt;BR&gt;    pwd=$(pwd)&lt;BR&gt;    echo &quot;Usage: tc.bash {start|stop|restart|show}&quot;&lt;BR&gt;    ;;&lt;BR&gt;esac&lt;BR&gt; &lt;BR&gt;exit 0&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;- 실행 권한을 주고 실행해 봅니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;$ chmod 755 /etc/init.d/shaping&lt;BR&gt;$ /etc/init.d/shaping start&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;3) 결과 확인&lt;/STRONG&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1394057682.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;162&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;/P&gt;- 빨간선을 기준으로 왼쪽이 기존의 상황이고 오른쪽이 트래픽 제한을 한 이후 입니다.&lt;BR&gt;- 기존의 경우 엄청나게 들쭉 날쭉한 것을 알 수 있습니다.&lt;BR&gt;- 오른쪽의 경우 강제로 제한이 걸리면서 둥글게 트래픽이 뭉개지는 것을 볼 수 있습니다.&lt;BR&gt;- 제한을 건 속도에 정확하게 제한이 걸리는것으로 보이지는 않습니다.&lt;BR&gt;- 테스트를 거치면서 IDC상황에 맞게 설정하시면 될것 같습니다.&lt;BR&gt;&lt;BR&gt;참고 : &lt;A href=&quot;http://www.topwebhosts.org/tools/traffic-control.php&quot;&gt;http://www.topwebhosts.org/tools/traffic-control.php&lt;/A&gt;</description>
			<category>서버관리</category>
			<category>Bandwidth</category>
			<category>Limit</category>
			<category>MRTG</category>
			<category>QOS</category>
			<category>RHEL</category>
			<category>Traffic Control</category>
			<category>리눅스</category>
			<category>속도</category>
			<category>제한</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/362</guid>
			<comments>http://theeye.pe.kr/entry/limit-bandwidth-of-ethernet-on-linux-machine-like-QOS#entry362comment</comments>
			<pubDate>Mon, 26 Oct 2009 01:09:11 +0900</pubDate>
		</item>
		<item>
			<title>[AppConnect] 앱스토어 정보를 알려주는 트위터를 시작하였습니다.</title>
			<link>http://theeye.pe.kr/entry/launch-the-appconnect-extra-service-in-twitter</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1015727047.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;383&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;앱스토어의 모든 어플리케이션의 정보를 보고 친구들에게 추천할 수 있는 어플리케이션인 &lt;STRONG&gt;&lt;A href=&quot;http://theeye.pe.kr/entry/wecon-proudly-present-AppConnect-iPhone-MUST-HAVE-Application&quot; target=_blank&gt;&lt;STRONG&gt;AppConnect&lt;/STRONG&gt;&lt;/A&gt;(&lt;A href=&quot;http://appconnect.starpl.com/&quot;&gt;http://appconnect.starpl.com&lt;/A&gt;)&lt;/STRONG&gt;의 트위터 서비스를 시작하였습니다.&lt;BR&gt;&lt;BR&gt;저기의 대부분은 글은 앱커넥트 서비스를 사용자들이 사용하면서 얻어진 현재의 트랜드 정보를 바탕으로 자동 포스팅 하도록 되어있습니다.&lt;BR&gt;&lt;BR&gt;보통의 어플리케이션 세일 정보 및 새로 등록되는 어플리케이션의 정보를 보여주는 웹사이트들은 많지만 정보의 양이 너무 방대하여 괜찮은 정보를 알기가 힘들죠.&lt;BR&gt;&lt;BR&gt;실제로 앱커넥트를 사용하는 1만명이 넘는 &lt;STRONG&gt;엑티브 유저&lt;/STRONG&gt;들의 피드백을 토대로 등록된지 하루만의 어플리케이션중에서도 사람들의 호기심을 끄는 어플리케이션 목록을 얻어낼 수 있습니다.&lt;BR&gt;&lt;BR&gt;이러한 다른 서비스와는 차별화 된 어플리케이션의 정보를 하루하루 통계내서 특정시간마다 포스팅 하도록 하였습니다.&lt;BR&gt;&lt;BR&gt;저도 몇번씩 직접 접속하여 확인하고 있으니 DM날리셔도 좋습니다. 답장 해 드리도록 하겠습니다.&lt;BR&gt;&lt;BR&gt;그리고 계속해서 알림 정보의 종류를 늘려나갈 생각인데 필요하신 정보나 주기적으로 얻길 원하는 정보가 있으시면 말씀해 주시면 적극 추가하도록 하겠습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#177fcd&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#177fcd&gt;&lt;A href=&quot;http://twitter.com/appconn&quot; target=_blank&gt;&lt;STRONG&gt;&lt;FONT color=#177fcd&gt;AppConnect Twitter - http://twitter.com/appconn&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;/STRONG&gt;</description>
			<category>AppConnect Development</category>
			<category>AppConnect</category>
			<category>appconnect.starpl.com</category>
			<category>Apple</category>
			<category>starpl</category>
			<category>twitter</category>
			<category>애플</category>
			<category>앱커넥트</category>
			<category>트위터</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/361</guid>
			<comments>http://theeye.pe.kr/entry/launch-the-appconnect-extra-service-in-twitter#entry361comment</comments>
			<pubDate>Tue, 20 Oct 2009 23:59:02 +0900</pubDate>
		</item>
		<item>
			<title>[SpamAssassin] Bayesian 스팸 학습 데이터 배포</title>
			<link>http://theeye.pe.kr/entry/distritution-baysian-spam-data-for-spamassassin</link>
			<description>&lt;P&gt;스팸어쎄신을 이용하여 약 3년정도 모은 스팸메일을 학습 시킨 데이터를 공개 합니다. &lt;BR&gt;&lt;BR&gt;별건 아니지만 저도 보관해 두었다가 다른데서 쓰기 위해 올려둘까 합니다.&lt;BR&gt;&lt;BR&gt;자세한 사용법은 다음의 글을 참고하시면 도움이 될 듯 합니다.&lt;BR&gt;&lt;BR&gt;&lt;A href=&quot;http://theeye.pe.kr/entry/한국에-맞는-스팸어쎄신-설정하여-스팸-95-줄여보기&quot; target=_blank&gt;&lt;A href=&quot;http://theeye.pe.kr/entry/한국에-맞는-스팸어쎄신-설정하여-스팸-95-줄여보기&quot; target=_blank&gt;http://theeye.pe.kr/entry/한국에-맞는-스팸어쎄신-설정하여-스팸-95-줄여보기&lt;/A&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;약 100만개의 스팸메일이 학습되었습니다. &lt;BR&gt;&lt;BR&gt;본래 학습형 필터가 너무 많은것을 학습시키면 오히려 잘못 진단할 확률이 높아지는 법인데 몇일 테스트 해본 결과 충분히 잘 걸러지고 있네요.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1163895165.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; bayes.part02.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1171183768.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; bayes.part03.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1409581118.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; bayes.part04.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1145414248.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; bayes.part01.rar&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;</description>
			<category>서버관리</category>
			<category>Baysian</category>
			<category>spamassassin</category>
			<category>리눅스</category>
			<category>서버관리</category>
			<category>스팸</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/360</guid>
			<comments>http://theeye.pe.kr/entry/distritution-baysian-spam-data-for-spamassassin#entry360comment</comments>
			<pubDate>Sun, 18 Oct 2009 18:38:40 +0900</pubDate>
		</item>
		<item>
			<title>[리눅스 프로그래밍] IPC + MySQL을 이용한 텍스트 기반 머드게임 만들기</title>
			<link>http://theeye.pe.kr/entry/linux-based-mud-game-using-IPC-and-MySQL</link>
			<description>&lt;P&gt;이것 역시 학교 과제로 만들었던 프로젝트입니다. IPC(Inter-Process Communication)을 이용하여 다중 접속이 가능한 머드 게임을 만드는 것이었는데요. IPC는 SystemV시절부터 있어왔던 프로세스간 통신 방법입니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;* 시나리오&lt;/STRONG&gt;&lt;BR&gt;서기 2080년 지구의 지상은 인간들의 무분별한 전쟁과 자원 채취로 인간이 살 수 없는 환경이 되어버렸다. 이에 인간들은 우주를 개척하려고 하였으나 아직 인간이 우주에서 살아가기에는 아직 기술적인 문제가 많고 또한 정치적인 문제까지 겹쳐 우주발전이 지연되고 있는 상황이다. 하지만 뛰어난 중력 컨트롤 과학 기술을 이용하여 인간이 살기 힘들 정도로 오염된 지상을 떠나 하늘에서 거주하기 시작하였다. 하늘에는 부유하는 도시가 생겨났고 개인 비행선은 최고의 이동수단이 되었다. 당신은 이제 자신의 비행선을 가지고 무역, 전쟁 또는 도적질을 할 수 있다. 하지만 조심해야 한다. 인간이 하늘로 올라가는 것을 신에 대한 모독이라 여기는 광신교 집단이 무차별적인 공격을 감행하고 있다는 소문이 있다. 또한 환경오염에 따른 괴생물체가 자주 출몰하곤 한다.&lt;BR&gt;당신의 앞날에 행운을 빈다.&lt;BR&gt;&lt;BR&gt;위와 같이 나름 멋진 시나리오를 갖추고 멋진 방대한 규모의 설계서를 제출하였습니다. 하지만 역시나 시간상의 압박으로 제대로 구현하지 못하였습니다-_-; 기획의 20%정도만 완성.... 아무튼 결과적으로 A+받았으니 그것으로 만족해야 할것 같네요;;&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1158683087.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;서버를 실행한 모습입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1214490804.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;클라이언트를 실행하여 아이디와 비번을 입력하고 접속합니다. 계정 관리는 MySQL디비를 활용합니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1330239498.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;217&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;users명령어를 이용하여 접속한 사용자들의 리스트를 볼 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1004031307.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;217&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;stat을 치면 현재 체력을 볼 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1400186220.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;217&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;map을 치면 현재 위치와 향하고 있는 방향을 알 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1032871767.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;217&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;특정 사용자에게 메시지를 전송할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1292297554.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;206&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;다른 사용자의 입장에서 본 화면입니다. 메시지가 도착했네요.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1027136970.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;217&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;모든 접속자에게 전체 메시지를 보냅니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1339967430.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;250&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;미리 구현된 맵을 이동해 다녀봅니다. 막힌 지역으로는 이동할 수가 없으며 다른 사용자를 만날 경우 메시지를 표시해 줍니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1400405010.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;284&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;접속을 끊었다가 재 접속하면 최종 로그아웃 했던 위치에서 다시 시작합니다. DB를 활용합니다.&lt;BR&gt;&lt;BR&gt;기존적으로 맵의 구현은 다음과 같습니다. 0은 일반 지역 1은 구름이 있어 이동 불가능한 지역입니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;int Map =&lt;BR&gt;{&lt;BR&gt;{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,1},&lt;BR&gt;{1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1},&lt;BR&gt;{1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1},&lt;BR&gt;{1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1},&lt;BR&gt;{1,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1},&lt;BR&gt;{1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1},&lt;BR&gt;{1,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1},&lt;BR&gt;{1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1},&lt;BR&gt;{1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&lt;BR&gt;{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}&lt;BR&gt;};&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;BR&gt;MySQL 데이터 베이스 스키마는 다음과 같습니다. 다음의 테이블을 추가해 둔후에 common.h안의 DB서버 정보를 입력해 주시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint lang-sql&quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;CREATE TABLE `USER` (                                  &lt;BR&gt; `USER_IDX` int(11) NOT NULL auto_increment,          &lt;BR&gt; `USER_ID` varchar(20) default NULL,                  &lt;BR&gt; `USER_PW` varchar(20) default NULL,                  &lt;BR&gt; `USER_NAME` varchar(20) default NULL,                &lt;BR&gt; `X` int(4) default NULL,                             &lt;BR&gt; `Y` int(4) default NULL,                             &lt;BR&gt; PRIMARY KEY  (`USER_IDX`)                            &lt;BR&gt;)&lt;/P&gt;
&lt;P&gt;CREATE TABLE `NPC` (                                   &lt;BR&gt; `NPC_IDX` int(11) NOT NULL auto_increment,           &lt;BR&gt; `NPC_NAME` varchar(20) default NULL,                 &lt;BR&gt; `ATTACK_DMG` int(4) default NULL,                    // 공격 데미지&lt;BR&gt; `DEFENSE` int(4) default NULL,                       // 방어력&lt;BR&gt; `HEALTH` int(4) default NULL,                        // 체력 (공격받을시 데미지 계산 : 현재 체력 - (사용자 공격데미지[10 fix] - NPC방어력))&lt;BR&gt; PRIMARY KEY  (`NPC_IDX`)                             &lt;BR&gt;)&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;BR&gt;컴파일의 경우에는 Makefile을 참고하시면 되며, MySQL 라이브러리 패스를 이곳에서 지정하시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1364223203.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; mudgame.zip&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;/plugins/SyntaxHighlighter/lang-sql.js&quot;&gt;&lt;/script&gt;</description>
			<category>프로젝트</category>
			<category>Game</category>
			<category>iPC</category>
			<category>linux</category>
			<category>Mud</category>
			<category>mysql</category>
			<category>게임</category>
			<category>리눅스</category>
			<category>리눅스 프로그래밍</category>
			<category>머드</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/359</guid>
			<comments>http://theeye.pe.kr/entry/linux-based-mud-game-using-IPC-and-MySQL#entry359comment</comments>
			<pubDate>Sun, 11 Oct 2009 14:01:11 +0900</pubDate>
		</item>
		<item>
			<title>[리눅스 프로그래밍] 간단한 나만의 쉘(Shell) 만들기</title>
			<link>http://theeye.pe.kr/entry/open-to-the-public-with-my-first-simple-linux-shell-project</link>
			<description>작년에 리눅스 프로그래밍 과제로 만들었던던 간단한 쉘 입니다. 이름은 어찌 지어야 할지 몰라서 minish이라고 하였습니다. 몇가지의 간단한 기본 명령어를 구현하였으며 백그라운드 프로세스 실행 및 &amp;gt;, &amp;gt;&amp;gt;등의 리다이렉션과 파이프(|)를 구현 하였습니다. 환경 변수를 활용한 프롬프트의 모양 변경도 가능합니다. 최대한 심플하게 그리고 예외처리 없이(시간이 부족했었다곤.....ㅠㅠ) 제작 되었습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1067905616.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;쉘의 기본적인 화면입니다. 심플 그 자체입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1222651170.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;361&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;파일 복사 명령어인 cp명령어의 테스트 화면입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1384452271.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;361&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;파일 삭제명령어인 rm의 실행 모습입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1030384014.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;361&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;파일 이동 명령어인 mv입니다. 위에서는 파일 이름을 변경하는데 사용해보고 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1100061326.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;272&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;디렉토리를 옮겨다니는 cd 명령어의 수행 모습입니다. 권한이 있다면 디렉토리를 이동해 다닐 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1254381181.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;디렉토리 생성 명령어인 mkdir입니다. 디렉토리를 생성하고 들어가보는 것까지 해보았습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1114032901.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;디렉토리 삭제 명령어인 rmdir의 실행 모습니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1245206000.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;리눅스에 기본적으로 있는 cat명령어이죠. 욕심을 가지고 만들다가 파일 리더 그이상의 기능을 구현하지 못하였습니다;; 원래는 표준입력을 받아서 파일을 생성할수 있어야 하는데 말이죠..ㅠㅠ&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1346223880.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;쉘의 종료 명령어입니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1154392686.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;295&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;환경 명령어를 설정하는 모습니다. PS2에 일반적으로 쓰이는 형태의 프롬프트 모양을 입력해 두시면 그 쉘 모양대로 프롬프트가 뜨게 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1267807693.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;306&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;파이프(|)를 사용하는 모습입니다. 이거 생각보다 구현하기가 까다롭습니다...ㅠㅠ&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1177133866.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;306&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;리다이렉트의 생성&amp;amp;추가를 해보는 모습입니다. 표준입출력의 기본이죠.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1065981192.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;306&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;백그라운드 프로세스(&amp;amp;)를 실행하는 모습입니다. sleep명령어를 수행하면 그 시간만큼 쉘이 멈춰있게 되는데 바로 다른 명령어를 입력받는것을 볼 수 있습니다. 이거 구현을 조금 야매로 한 감이 있긴 한데 정상 동작을 하는 듯하면서도 아닌듯 하면서도;; 아하하...아무튼 그렇습니다.&lt;BR&gt;&lt;BR&gt;만들었던 소스를 공개 합니다. 잘만들지는 않았지만 학습용으로는 좋을것이라 생각됩니다. 하지만 과제 제출용으로 쓰실려는 학생 여러분...처음부터 끝까지 혼자 능력으로 프로그래밍 잘 하는 사람은 없다고 봅니다. 하지만 이 자료를 받아서 노력하는데 보탬이 되는데 쓸 지언정...그대로 내진 마세요...예전에도 어떤 학생이 교수님한테 이 블로그를 걸렸다고 글을 내려달라는 요청을 받은적도 있는데;;ㅎㅎ 스스로 공부합시다.&lt;BR&gt;&lt;BR&gt;참고로 안에 Makefile도 있으니 make로 돌려 컴파일 하여 사용하시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1066519629.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; minish.zip&lt;/a&gt;&lt;/div&gt;</description>
			<category>프로젝트</category>
			<category>C</category>
			<category>cat</category>
			<category>cd</category>
			<category>cp</category>
			<category>mkdir</category>
			<category>mv</category>
			<category>Pipe</category>
			<category>rm</category>
			<category>rmdir</category>
			<category>stdin</category>
			<category>stdout</category>
			<category>리눅스</category>
			<category>리눅스 프로그래밍</category>
			<category>백그라운드</category>
			<category>표준입출력</category>
			<category>프로그래밍</category>
			<category>프로세스</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/358</guid>
			<comments>http://theeye.pe.kr/entry/open-to-the-public-with-my-first-simple-linux-shell-project#entry358comment</comments>
			<pubDate>Sun, 11 Oct 2009 13:41:08 +0900</pubDate>
		</item>
	</channel>
</rss>
