<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sec &#34;IP&#34; nix &#187; Linux</title>
	<atom:link href="http://www.ugurengin.com/blog/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ugurengin.com/blog</link>
	<description>Uğur Engin</description>
	<lastBuildDate>Fri, 03 Feb 2012 23:00:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Nohup Kullanımı 2</title>
		<link>http://www.ugurengin.com/blog/nohup-kullanimi-2.html</link>
		<comments>http://www.ugurengin.com/blog/nohup-kullanimi-2.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 23:58:55 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[disown]]></category>
		<category><![CDATA[nice command]]></category>
		<category><![CDATA[nohup]]></category>
		<category><![CDATA[renice]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=2011</guid>
		<description><![CDATA[Burada nohup kullanımı ile ilgili bir giriş yapmıştım.Fakat üzerine eklenmesi gereken bir kaç ufak detayın ve disown gibi aynı işleve sahip farklı bir komut&#8217;un da anlatılması gerektiğini fark ettim.Çalıştırılacak uygulama veya komuta ait proses, tıpkı açılan her bir proses gibi yüksek seviyeli bir öncelik ile çalışır.(&#8221; high priority number &#8220;0&#8243;) Bu durumda nohup içerisine nice [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ugurengin.com/blog/nohup-kullanimi.html" target="_blank">Burada nohup</a> kullanımı ile ilgili bir giriş yapmıştım.Fakat üzerine eklenmesi gereken bir kaç ufak detayın ve disown gibi aynı işleve sahip farklı bir komut&#8217;un da anlatılması gerektiğini fark ettim.Çalıştırılacak uygulama veya komuta ait proses, tıpkı açılan her bir proses gibi yüksek seviyeli bir öncelik ile çalışır.(&#8221; high priority number &#8220;0&#8243;)</p>
<p>Bu durumda nohup içerisine nice -n argumanı eklenerek  açılacak yeni proses&#8217;in en düşük seviyede(19)  veya daha farklı seviyelerde çalışması sağlatılabilir.Aşağıda, bu durumu irdeleyen örnek bir komut kullanılarak sonucu hemen alt kısmına eklendi.</p>
<p><span style="color: #008000;">nohup nice -n 19 seq 1 9999999999 &gt; /tmp/out &amp;</span></p>
<p><strong><span style="color: #808080;"><span style="color: #ff0000;"> PID    USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND<br />
28544</span> root      36  <span style="color: #ff0000;">19</span>    61496  616   540 R    <span style="color: #ff0000;">45.3</span>    <span style="color: #ff0000;">0.1</span>           0:11.32   <span style="color: #ff0000;"> seq</span></span></strong></p>
<p>NI: Proses çalışma önceliği(Process priority)</p>
<p>Bu durumda, 1 numaralı parent proses&#8217;e migrate olan 28544 nolu yeni proses&#8217;in çalışma önceliği 19 ile set edilerek en alt seviyede çalışması sağlandı.Artık bu proses, cpu kullanımını minumum seviyede tutacağı gibi yoğun bir sistem üzerinde diğer proses&#8217;lerin altında çalışarak sistem kaynaklarını da yormayacaktır.</p>
<p>Bu arada, nohup belirtilen amaçlar için tek çözüm değildir.Bash kabuğu üzerinde desteklenen &#8220;disown&#8221;  isimli bir komut daha vardır ki çalıştırılan proses&#8217;e ait job number&#8217;a göre hareket eder ve yine nohup ile aynı işlevi yapar.Fakat disown ile çalıştırılacak komut veya script betiği, bir sh dosyasına  eklenerek çalıştırılmalıdır.</p>
<p>Örnek:</p>
<p><span style="color: #008000;">touch test.sh &amp;&amp; echo &#8220;nice -n 19 seq 1 9999999999 &gt; /tmp/out&#8221;  &gt; test.sh &amp;&amp; ls -l test.sh &amp;&amp; echo $?</span><br />
<span style="color: #ff0000;">-rw-r&#8211;r&#8211; 1 root root 39 Jan  29 23:44 test.sh</span><br />
<span style="color: #ff0000;">0</span></p>
<p>Yukarıdaki komut ile &#8220;nice -n 19 seq 1 9999999999 &gt; /tmp/out&#8221; tırnak içerisinde belirtilmiş olan komutu; string bir ifade gibi, test.sh isimli yeni bir dosya oluşturularak içerisine yazılmasını sağlıyoruz.Bu işlem esnasında dosya kontrolü ve herhangi bir hata dönecek mi diye de &#8220;$?&#8221; ifadesi ile kontrol ediyoruz.</p>
<p>test.sh isimli dosyanın disown edilme aşaması ve ps ile proses kontrolü.<br />
<span style="color: #008000;">sh test.sh &amp;</span><br />
<span style="color: #008000;">[1] 28978</span><br />
<span style="color: #008000;">[root@matrix tools]# disown -h</span></p>
<p><span style="color: #008000;">ps -aux | grep seq</span><br />
Warning: bad syntax, perhaps a bogus &#8216;-&#8217;? See /usr/share/doc/procps-3.2.7/FAQ<br />
<span style="color: #ff0000;">root     28979 87.9  0.1  61496   612 pts/0    RN   06:30   0:49 seq 1 9999999999</span></p>
<p>Şuanda disown edilen script, en tepede bulunan 1 numaralı parent proses&#8217;e migrate edilerek arka planda çalışmaya başladı.Artık shell session kapatılsa dahi işlemler arka planda çalışmaya devam ediyor olacaktır.</p>
<p>Detaylar:</p>
<p>&#8220;man bash&#8221;</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fnohup-kullanimi-2.html&amp;t=Nohup%20Kullan%C4%B1m%C4%B1%202" id="facebook_share_both_2011" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_2011') || document.getElementById('facebook_share_icon_2011') || document.getElementById('facebook_share_both_2011') || document.getElementById('facebook_share_button_2011');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_2011') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/nohup-kullanimi-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nohup Kullanımı</title>
		<link>http://www.ugurengin.com/blog/nohup-kullanimi.html</link>
		<comments>http://www.ugurengin.com/blog/nohup-kullanimi.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 02:53:26 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[nohup]]></category>
		<category><![CDATA[nohup kullanımı]]></category>
		<category><![CDATA[process nohup]]></category>
		<category><![CDATA[proses nohup]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1990</guid>
		<description><![CDATA[Kabuk üzerinde yapılan işlemler, bir parent proses altında kendine ait bir child proses içerisinde çalışır.Örneğin bash kabuğunda bir oturumunuz var ve bir script çalıştırıyorsunuz oturum kapandığı esnada çalışır durumda olan ilgili script de sonlanır.Teorik olarak kapanma sebeplerini açıklamak istiyorum.Oturum açıldığı esnada bir parent proses açılır ve yapılan ek işlemler bu proses&#8217;e child proses olarak bağlanır.Dolayısıyla [...]]]></description>
			<content:encoded><![CDATA[<p>Kabuk üzerinde yapılan işlemler, bir parent proses altında kendine ait bir child proses içerisinde çalışır.Örneğin bash kabuğunda bir oturumunuz var ve bir script çalıştırıyorsunuz oturum kapandığı esnada çalışır durumda olan ilgili script de sonlanır.Teorik olarak kapanma sebeplerini açıklamak istiyorum.Oturum açıldığı esnada bir parent proses açılır ve yapılan ek işlemler bu proses&#8217;e child proses olarak bağlanır.Dolayısıyla oturum kapatıldığı esnada herhangi bir script çalışır durumda olsa bile parent proses, 1 numaralı &#8220;SIGHUP&#8221; sinyalini alacağı için kısa bir süre içerisinde kendine bağlı olan child proses&#8217;leri de sonlandıracaktır.Ancak &#8220;nohup&#8221; gibi hareket eden bir araç ile scriptler çalıştırılır ise durum tam anlamıyla farklı bir hal alır ve oturum kapansa bile proses sonlanmaz.</p>
<p>Nohup, çalıştırılan işlemlere ait child proses&#8217;leri, en yukarıda bulunan 1 numaralı parent prosese migrate eder ve gelebilecek hup sinyallerinden child prosesleri korur. Dolayısıyla oturum kapansa bile çalışan işleme ait proses, 1 nolu parent proses altına migrate edilerek arka planda sonlanana kadar çalışması sağlanır.</p>
<p>Nohup kullanım örneği:</p>
<p><span style="color: #008000;"> nohup seq 0 9999990000000 1&gt;/tmp/out &lt; /dev/null &amp;</span></p>
<p>Yukarıdaki komut ile ulaşmak istenilen asıl amaç, &#8220;seq&#8221; komutu  ile belirtilen doğal sayılar arasında ramdom sayılar üretip, /tmp klasörü altında bulunan out isimli dosyaya sonucu yazdırmaktır.Komut sonuna dahil edilen &#8220;/dev/null&#8221; ise klavye davranışları önlemek adına kullanılır.Nohup ile çalıştırma işlemi başladıktan hemen sonra, shell oturumu kapatılıp yeni bir oturum açılarak proses&#8217;in o anki durumu &#8220;ps&#8221; komutuna verilecek çeşitli direktifler ile detaylıca veya top komutu ile basitce gözlemlenebilir.</p>
<p style="text-align: center;"><a href="http://www.ugurengin.com/blog/img/seq.jpg" rel="lightbox[1990]"><img class="aligncenter" src="http://www.ugurengin.com/blog/img/seq.jpg" alt="" width="567" height="38" /></a></p>
<p>Nohup edilen programa ait 25571 nolu proses&#8217;in 1 numarali parent proses altında çalıştığı, &#8220;pstree -p 1&#8243; komutu ile görülmek istenirse , aşapıdaki gibi bir görüntü ortaya çıkar.</p>
<p><img class="aligncenter" src="http://www.ugurengin.com/blog/img/pidppid.jpg" alt="" width="531" height="53" /><br />
Yukarıdaki ekran görüntüsü 25571 nolu child proses&#8217;in  1582 &gt; 24634 &gt; 25547 &gt; 25549 nolu parent prosesler dizisi altında olduğunu ifade ediyor.Zira zaten her proses, bir üst seviyede bulunan diğer bir parent prosese bağlıdır.</p>
<p>Not: Ancak işletim sistemi kabuğunun çeşitli özelliklerine göre bu tür proses korumaları yapılabilir.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fnohup-kullanimi.html&amp;t=Nohup%20Kullan%C4%B1m%C4%B1" id="facebook_share_both_1990" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1990') || document.getElementById('facebook_share_icon_1990') || document.getElementById('facebook_share_both_1990') || document.getElementById('facebook_share_button_1990');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1990') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/nohup-kullanimi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Process &#8220;/sbin/init&#8221;</title>
		<link>http://www.ugurengin.com/blog/sbininit.html</link>
		<comments>http://www.ugurengin.com/blog/sbininit.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 00:16:52 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[/sbin/init]]></category>
		<category><![CDATA[first process]]></category>
		<category><![CDATA[ilk proses]]></category>
		<category><![CDATA[init]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1984</guid>
		<description><![CDATA[/sbin/init isimli başlangıç prosesi her zaman 1 nolu pid numarayi alır.Burada enteresan olan durum: bu proses&#8217;e ait herhangi bir parent prosess olmayışıdır.Dolayısıyla her zamana &#8220;0&#8243; olarak değerlendirilir. Not: Init isimli prosess, linux açıldığı esnada devreye girer. İlk etapta &#8220;/etc/inittab&#8221; isimli dosyada set edilmiş olan runlevel numarasını okur ve  işletim sistemini bu doğrultuda açar. Aşağıda bulunan [...]]]></description>
			<content:encoded><![CDATA[<p>/sbin/init isimli başlangıç prosesi her zaman 1 nolu pid numarayi alır.Burada enteresan olan durum: bu proses&#8217;e ait herhangi bir parent prosess olmayışıdır.Dolayısıyla her zamana &#8220;0&#8243; olarak değerlendirilir.</p>
<p>Not: Init isimli prosess, linux açıldığı esnada devreye girer. İlk etapta &#8220;/etc/inittab&#8221; isimli dosyada set edilmiş olan runlevel numarasını okur ve  işletim sistemini bu doğrultuda açar.</p>
<p>Aşağıda bulunan kütüphaneler ile entegre çalışır.</p>
<p>libsepol.so.1 =&gt; /lib64/libsepol.so.1 (0x0000003900c00000)<br />
libselinux.so.1 =&gt; /lib64/libselinux.so.1 (0&#215;0000003900800000)<br />
libc.so.6 =&gt; /lib64/libc.so.6 (0x00000038ff400000)<br />
libdl.so.2 =&gt; /lib64/libdl.so.2 (0x00000038ff800000)<br />
/lib64/ld-linux-x86-64.so.2 (0x00000038ff000000)</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fsbininit.html&amp;t=First%20Process%20%22%2Fsbin%2Finit%22" id="facebook_share_both_1984" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1984') || document.getElementById('facebook_share_icon_1984') || document.getElementById('facebook_share_both_1984') || document.getElementById('facebook_share_button_1984');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1984') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/sbininit.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to do display all pid number of a parent process id in unix.</title>
		<link>http://www.ugurengin.com/blog/how-to-do-display-all-pid-number-of-a-parent-process-id-in-unix.html</link>
		<comments>http://www.ugurengin.com/blog/how-to-do-display-all-pid-number-of-a-parent-process-id-in-unix.html#comments</comments>
		<pubDate>Thu, 26 Jan 2012 16:28:02 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[child process]]></category>
		<category><![CDATA[display ppid]]></category>
		<category><![CDATA[linux process]]></category>
		<category><![CDATA[parent process]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[ppid]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1972</guid>
		<description><![CDATA[ps ile pid (child)+ ppid number(parent) ve prosess&#8217;lere ait diğer  ekstra bilgileri almak gayet basit. ps -o user,pcpu,pmem,pid,ppid,command axx &#8211;forest &#124; grep  &#8216;apache&#8217; &#124; sort apache    0.0 17.0 11944 32311  \_ /usr/sbin/httpd apache    0.6 18.1 11946 32311  \_ /usr/sbin/httpd apache    0.6 18.1 11948 32311  \_ /usr/sbin/httpd apache    0.6 18.1 11953 32311  \_ /usr/sbin/httpd apache    0.7 [...]]]></description>
			<content:encoded><![CDATA[<p>ps ile pid (child)+ ppid number(parent) ve prosess&#8217;lere ait diğer  ekstra bilgileri almak gayet basit.</p>
<p><span style="color: #008000;">ps -o user,pcpu,pmem,pid,ppid,command axx &#8211;forest | grep  &#8216;apache&#8217; | sort</span></p>
<p><span style="color: #808080;">apache    0.0 17.0 11944 <span style="text-decoration: underline;"><strong>32311</strong></span>  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.6 18.1 11946 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.6 18.1 11948 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.6 18.1 11953 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.7 18.1 11945 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.7 18.1 11952 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    0.9 18.4 11949 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    1.0 18.1 11947 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    1.0 18.4 11950 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    1.1 18.4 11951 32311  \_ /usr/sbin/httpd</span><br />
<span style="color: #808080;">apache    3.1 18.1 12150 32311  \_ /usr/sbin/httpd</span><span style="color: #808080;"><br />
</span></p>
<p>Yukarıdaki komut; &#8220;apache&#8221; isimli kullanıcıya ait prosess,memory,pid(prosess id),ppid(parent prosess id) ve prosess&#8217;in bağlı olduğu forest&#8217;ları sort ederek gösterir. Ek olarak , PPID numarası bilinen bir prosess&#8217;in tüm child prosess&#8217;leri de aşağıdaki komut ile tespit edilebilir.</p>
<p><span style="color: #008000;">pstree -p 32311 -n</span><br />
<span style="color: #808080;"><br />
httpd(32311)ââ¬âpipelog(12421)</span><br />
<span style="color: #808080;">             ââhttpd(12422)</span><br />
<span style="color: #808080;">             ââhttpd(12423)</span><br />
<span style="color: #808080;">             ââhttpd(12424)</span><br />
<span style="color: #808080;">             ââhttpd(12425)</span><br />
<span style="color: #808080;">             ââhttpd(12426)</span><br />
<span style="color: #808080;">             ââhttpd(12427)</span><br />
<span style="color: #808080;">             ââhttpd(12428)</span><br />
<span style="color: #808080;">             ââhttpd(12429)</span><br />
<span style="color: #808080;">             ââhttpd(12430)</span><br />
<span style="color: #808080;">             ââhttpd(12431)</span></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fhow-to-do-display-all-pid-number-of-a-parent-process-id-in-unix.html&amp;t=How%20to%20do%20display%20all%20pid%20number%20of%20a%20parent%20process%20id%20in%20unix." id="facebook_share_both_1972" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1972') || document.getElementById('facebook_share_icon_1972') || document.getElementById('facebook_share_both_1972') || document.getElementById('facebook_share_button_1972');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1972') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/how-to-do-display-all-pid-number-of-a-parent-process-id-in-unix.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listing all scheduled tasks on a server</title>
		<link>http://www.ugurengin.com/blog/listing-all-scheduled-tasks-on-a-server.html</link>
		<comments>http://www.ugurengin.com/blog/listing-all-scheduled-tasks-on-a-server.html#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:10:39 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[crontab list]]></category>
		<category><![CDATA[crontab users]]></category>
		<category><![CDATA[cut command]]></category>
		<category><![CDATA[scheduled task linux]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1956</guid>
		<description><![CDATA[Kayıtlı tüm kullanıcılara ait schedul task listesini verir. #!/bin/bash for i in `cat /etc/passwd &#124; cut -d &#8216;:&#8217; -f1 &#124; sort &#124;awk &#8216;{print $1} prin $0&#8242; &#124; uniq` ; do crontab -l -u $i done exit Çıktının bir kısmı [root@matrix tools]# sh cron.sh no crontab for adm no crontab for apache no crontab for avahi-autoipd [...]]]></description>
			<content:encoded><![CDATA[<p>Kayıtlı tüm kullanıcılara ait schedul task listesini verir.</p>
<p><span style="color: #008000;">#!/bin/bash<br />
for i in `cat /etc/passwd | cut -d &#8216;:&#8217; -f1 | sort |awk &#8216;{print $1} prin $0&#8242; | uniq` ;<br />
do<br />
crontab -l -u $i<br />
done<br />
exit<br />
</span><br />
Çıktının bir kısmı</p>
<p>[root@matrix tools]# sh cron.sh<br />
no crontab for adm<br />
no crontab for apache<br />
no crontab for avahi-autoipd<br />
no crontab for bin<br />
no crontab for clamav<br />
no crontab for daemon<br />
no crontab for dbus<br />
no crontab for ftp<br />
no crontab for gopher<br />
no crontab for hackedusr<br />
no crontab for haldaemon<br />
no crontab for halt<br />
no crontab for lp<br />
no crontab for mail<br />
no crontab for mailnull<br />
no crontab for mysql<br />
no crontab for news<br />
no crontab for nginx<br />
no crontab for nobody<br />
no crontab for nscd<br />
no crontab for ntp<br />
no crontab for operator<br />
no crontab for oprofile</p>
<p>Bu entry&#8217;i girmemin  traji komik bir yanı oldu bugün.Önüme 28 adet SQL Query sorusu, sanırım ortalama 4 sayfa da linux ve database ile alakalı çeşitli sorular içeren bir (bash scripting de dahil) soru kitapçığı kondu.<br />
Linux ile ilgili olan ilk soru, sistem üzerinde kayıtlı olan tüm kullanıcılara ait cron listesini veren bir script yazılması şeklindeydi.Diğer sorulara odaklanırken bu sorunun çözümünü muallak olarak yarım bıraktım.Fakat otobüs ile eve dönerken aklıma bu soru geldi ve istenen işlevi yapan scripti ancak ayaktayken telefonuma kodlayabildim.  :)<br />
Fakat kağıt üzerinde yarımca kaldı.<br />
&#8220;Kısacası hayat; insana her an, her bildiğiniz şeyi gösterebilme fırsatı tanımıyor bazen.&#8221;</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Flisting-all-scheduled-tasks-on-a-server.html&amp;t=Listing%20all%20scheduled%20tasks%20on%20a%20server" id="facebook_share_both_1956" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1956') || document.getElementById('facebook_share_icon_1956') || document.getElementById('facebook_share_both_1956') || document.getElementById('facebook_share_button_1956');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1956') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/listing-all-scheduled-tasks-on-a-server.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Based Data Processing Speed Test over the Linux</title>
		<link>http://www.ugurengin.com/blog/time-based-data-processing-speed-test-over-the-linux.html</link>
		<comments>http://www.ugurengin.com/blog/time-based-data-processing-speed-test-over-the-linux.html#comments</comments>
		<pubDate>Sat, 21 Jan 2012 02:16:38 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[cpu processing]]></category>
		<category><![CDATA[linux time]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1922</guid>
		<description><![CDATA[İşletim sistemleri, verilerin bir kısmını işlenmek üzere &#8220;filo&#8221; algoritması aracılığıyla byte byte hafıza&#8217;nın stack segmentinde tutar.Sonrasında ilgili veriler, process edilmek üzere önce önbellek ardından cpu&#8217;nun temel işlem döngüsüne sokulmak üzere sıraya alınır.Günümüz operating sistemleri, process ettiği her işlemi (executing,reading,writing) bir süreliğine bellek içerisine depolar.Dolayısıyı ile aynı işlem belli bir süre içerisinde tekrar çalıştırılmak istendiğinde; işlenmek [...]]]></description>
			<content:encoded><![CDATA[<p>İşletim sistemleri, verilerin bir kısmını işlenmek üzere &#8220;filo&#8221; algoritması aracılığıyla byte byte hafıza&#8217;nın stack segmentinde tutar.Sonrasında ilgili veriler, process edilmek üzere önce önbellek ardından cpu&#8217;nun temel işlem döngüsüne sokulmak üzere sıraya alınır.Günümüz operating sistemleri, process ettiği her işlemi (executing,reading,writing) bir süreliğine bellek içerisine depolar.Dolayısıyı ile aynı işlem belli bir süre içerisinde tekrar çalıştırılmak istendiğinde; işlenmek istenen veri, depolanan bellek üzerinden çağrılır. Böylece cpu üzerindeki processing time&#8217;da azaltılmış olur.Bu işlemler tamamen sistem kaynakları&#8217;nın performasını artırmak adına tasarlanmıştır.Dolayısı ile veriler depolanmak durumundadır.Aksi halde processing süresi uzayan her işlem, hafıza üzerinde yeteri miktarda alan allocate edemez ve virtual disk(swap) üzerinde kendine yer edinmeye başlar.Zira bu durum, belleğe oranla yapılan işlemlerin daha da uzamasına sebep olacaktır.</p>
<p>Konuyu biraz daha netleştirmek adına, find komutu ile örnek bir execution işlemi yapalım.Amacımız bir dizinde bulunan tüm &#8220;.txt&#8221; uzantılı dosyaların ne kadar bir süre zarfında listeleneceğini tespit etmek olsun.Komut başına eklenen &#8220;time&#8221;, sadece ilgili işlemin ne kadar bir zaman diliminde tamamlandığını gösterecektir.</p>
<p><span style="color: #008000;">[root@x ~]# time find . -type f -name &#8220;*.txt&#8221; -exec ls -l {} \; &gt; /dev/null</span></p>
<p><span style="color: #ff0000;">real    <span style="text-decoration: underline;">0m0.616s</span></span><br />
<span style="color: #ff0000;"> user    <span style="text-decoration: underline;">0m0.044s</span></span><br />
<span style="color: #ff0000;"> sys     <span style="text-decoration: underline;">0m0.095s</span></span></p>
<p>Aynı komut, ikinci defa çalıştırıldığında ciddi oranda processing süresinde azalma meydana geldiği detayları ile gözlemleniyor.</p>
<p><span style="color: #008000;"> [root@x ~]# time find . -type f -name &#8220;*.txt&#8221; -exec ls -l {} \; &gt; /dev/null</span></p>
<p><span style="color: #ff0000;">real    <span style="text-decoration: underline;">0m0.284s</span></span><br />
<span style="color: #ff0000;"> user   <span style="text-decoration: underline;"> 0m0.039s</span></span><br />
<span style="color: #ff0000;"> sys     <span style="text-decoration: underline;">0m0.087s</span></span></p>
<p>Not:</p>
<p>Time, linux üzerinde halihazırda bulunan bir komuttur. Temel işlevi; real,user ve sys(system)bazlı bir verinin ne kadar zaman diliminde read,execute veya write edildiğini belirtmektir.</p>
<p><span style="color: #008000;">[root@x ~]# ldd /usr/bin/time</span><br />
<span style="color: #ff0000;">        linux-vdso.so.1 =&gt;  (0x00007fff6bb78000)</span><br />
<span style="color: #ff0000;">        libc.so.6 =&gt; /lib64/libc.so.6 (0x00000038ff400000)</span><br />
<span style="color: #ff0000;">        /lib64/ld-linux-x86-64.so.2 (0x00000038ff000000)</span><br />
<br style="color: #008000;" /><span style="color: #008000;">[root@x ~]# rpm -qi time</span><br />
<span style="color: #ff0000;">Name        : time                         Relocations: /usr</span><br />
<span style="color: #ff0000;">Version     : 1.7                               Vendor: CentOS</span><br />
<span style="color: #ff0000;">Release     : 27.2.2                        Build Date: Sat 24 May 2008 03:44:24 PM EEST</span><br />
<span style="color: #ff0000;">Install Date: Sat 19 Feb 2011 03:36:54 AM EET      Build Host: builder15.centos.org</span><br />
<span style="color: #ff0000;">Group       : Applications/System           Source RPM: time-1.7-27.2.2.src.rpm</span><br />
<span style="color: #ff0000;">Size        : 20321                            License: GPL</span><br />
<span style="color: #ff0000;">Signature   : DSA/SHA1, Sun 15 Jun 2008 05:04:20 PM EEST, Key ID a8a447dce8562897</span><br />
<span style="color: #ff0000;">Summary     : A GNU utility for monitoring a program&#8217;s use of system resources.</span><br />
<span style="color: #ff0000;">Description :</span><br />
<span style="color: #ff0000;">The GNU time utility runs another program, collects information about</span><br />
<span style="color: #ff0000;">the resources used by that program while it is running, and displays</span><br />
<span style="color: #ff0000;">the results.</span></p>
<p>Benzeri testleri, read ve/veya write processing yaparak da gözlemlemek mümkün.Özellikle çalıştırılacak veya işlenecek bir verinin zaman süreçlerini incelemede fazlasıyla işe yarayacaktır.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Ftime-based-data-processing-speed-test-over-the-linux.html&amp;t=Time%20Based%20Data%20Processing%20Speed%20Test%20over%20the%20Linux" id="facebook_share_both_1922" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1922') || document.getElementById('facebook_share_icon_1922') || document.getElementById('facebook_share_both_1922') || document.getElementById('facebook_share_button_1922');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1922') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/time-based-data-processing-speed-test-over-the-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toplam HTTP Bağlantı Sayısı</title>
		<link>http://www.ugurengin.com/blog/toplam-http-baglanti-sayisi.html</link>
		<comments>http://www.ugurengin.com/blog/toplam-http-baglanti-sayisi.html#comments</comments>
		<pubDate>Mon, 16 Jan 2012 22:22:30 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Http]]></category>
		<category><![CDATA[http connection]]></category>
		<category><![CDATA[http linux]]></category>
		<category><![CDATA[total http]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1917</guid>
		<description><![CDATA[HTTP 80 üzerinden sağlanmış toplam bağlantı sayısını gösterir. for http in `netstat -antp &#124; awk &#8216;{if($4 ~/80/) print $0}&#8217; &#124; uniq &#124; sort -k 5 &#124; wc -l` do echo Total HTTP Connection: $http done Share on Facebook]]></description>
			<content:encoded><![CDATA[<p>HTTP 80 üzerinden sağlanmış toplam bağlantı sayısını gösterir.</p>
<p><span style="color: #008000;">for http in `netstat -antp | awk &#8216;{if($4 ~/80/) print $0}&#8217; | uniq | sort -k 5 | wc -l`</span> <span style="color: #008000;"><br />
do</span> <span style="color: #008000;"><br />
echo Total HTTP Connection: $http</span><br />
<span style="color: #008000;">done</span></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Ftoplam-http-baglanti-sayisi.html&amp;t=Toplam%20HTTP%20Ba%C4%9Flant%C4%B1%20Say%C4%B1s%C4%B1" id="facebook_share_both_1917" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1917') || document.getElementById('facebook_share_icon_1917') || document.getElementById('facebook_share_both_1917') || document.getElementById('facebook_share_button_1917');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1917') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/toplam-http-baglanti-sayisi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>İstenilen zaman dilimine ait logları listelemek.</title>
		<link>http://www.ugurengin.com/blog/istenilen-zaman-dilimine-ait-loglari-listelemek.html</link>
		<comments>http://www.ugurengin.com/blog/istenilen-zaman-dilimine-ait-loglari-listelemek.html#comments</comments>
		<pubDate>Wed, 11 Jan 2012 19:40:55 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[awk search]]></category>
		<category><![CDATA[linux awk]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1912</guid>
		<description><![CDATA[messages.1 isimli dosyada &#8220;Jan 8&#8243;  ile başlayan tüm loglar, 3.kolonda bulunan time değerlerine göre sort edilir. awk  &#8216;{if($1 ~/Jan/) if($2 ~/8/) print $0}&#8217; messages.1 &#124; sort -k 3 &#124;more Share on Facebook]]></description>
			<content:encoded><![CDATA[<p>messages.1 isimli dosyada &#8220;Jan 8&#8243;  ile başlayan tüm loglar, 3.kolonda bulunan time değerlerine göre sort edilir.</p>
<p><span style="color: #008000;">awk  &#8216;{if($1 ~/Jan/) if($2 ~/8/) print $0}&#8217; messages.1 | sort -k 3 |more<br />
</span></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fistenilen-zaman-dilimine-ait-loglari-listelemek.html&amp;t=%C4%B0stenilen%20zaman%20dilimine%20ait%20loglar%C4%B1%20listelemek." id="facebook_share_both_1912" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1912') || document.getElementById('facebook_share_icon_1912') || document.getElementById('facebook_share_both_1912') || document.getElementById('facebook_share_button_1912');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1912') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/istenilen-zaman-dilimine-ait-loglari-listelemek.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grep !</title>
		<link>http://www.ugurengin.com/blog/grep.html</link>
		<comments>http://www.ugurengin.com/blog/grep.html#comments</comments>
		<pubDate>Sun, 08 Jan 2012 07:17:36 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[grep linux]]></category>
		<category><![CDATA[grep regex]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1906</guid>
		<description><![CDATA[L ile başlayıp, &#8216;ux&#8217; ile bitmiş tüm string değerleri ayırıp alt alta listeler. grep -i &#8216;^L.*ux&#8217; test.txt &#124;  uniq Share on Facebook]]></description>
			<content:encoded><![CDATA[<p>L ile başlayıp, &#8216;ux&#8217; ile bitmiş tüm string değerleri ayırıp alt alta listeler.</p>
<p><span style="color: #008000;">grep -i &#8216;^L.*ux&#8217; test.txt |  uniq</span></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fgrep.html&amp;t=Grep%20%21" id="facebook_share_both_1906" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1906') || document.getElementById('facebook_share_icon_1906') || document.getElementById('facebook_share_both_1906') || document.getElementById('facebook_share_button_1906');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1906') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/grep.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Mem+Swap Monitoring via the Bash Script</title>
		<link>http://www.ugurengin.com/blog/small-memswap-monitoring-via-the-bash-script.html</link>
		<comments>http://www.ugurengin.com/blog/small-memswap-monitoring-via-the-bash-script.html#comments</comments>
		<pubDate>Sun, 08 Jan 2012 06:16:03 +0000</pubDate>
		<dc:creator>Uğur Engin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux resources]]></category>
		<category><![CDATA[memory monitoring]]></category>
		<category><![CDATA[swap monitoring]]></category>

		<guid isPermaLink="false">http://www.ugurengin.com/blog/?p=1895</guid>
		<description><![CDATA[Daha önce sadece swap miktarını belli kritere göre kontrol edip mesaj gönderen bir bash betiği hazırlamıştım.İlgili scripti biraz daha geliştirip swap kontrolü sonrası memory miktarını kontrol eden ufak bir algoritma ekledim.Özellikle operating sistem üzerinde ki kontroller sadece bu kriterlere göre monitor edilecekse, Nagios gibi ciddi ve daha fazla sistem kaynağı tüketen monitoring programları kurulmadan istenilen [...]]]></description>
			<content:encoded><![CDATA[<p>Daha önce sadece swap miktarını belli kritere göre kontrol edip mesaj gönderen <a href="http://www.ugurengin.com/blog/swap-miktarinin-belli-araliklarla-monitor-edilmesi.html">bir bash betiği </a>hazırlamıştım.İlgili scripti biraz daha geliştirip swap kontrolü sonrası memory miktarını kontrol eden ufak bir algoritma ekledim.Özellikle operating sistem üzerinde ki kontroller sadece bu kriterlere göre monitor edilecekse, Nagios gibi ciddi ve daha fazla sistem kaynağı tüketen monitoring programları kurulmadan istenilen yarar elde edilebilir.Yine script içerisinde bulunan memory ve swap gibi değerler isteğe göre güncellenip kullanılabilir, hatta ek aksiyonlar da dahil edilip daha efektif hale getirmek mümkün.</p>
<p>Scriptin işlevleri:</p>
<p>Check edilen swap miktarı 2GB’den büyük ise belirtilen adrese bir mesaj gönderir.Eğer swap kullanım miktarı 2 GB’dan az ise memory checking işlemi başlar ve kontrol edilen değerin 15MB’dan küçük olup olunmadığına bakılır.Eğer kontrol edilen değer, 15MB’dan az ise memory miktarının yükseldiğine dair ek bir bilgilendirme mesajı gönderir.(Bilgilendirme mesajını da güncellemeniz gerekli.)</p>
<p>Not: Bu testler product ortamında bulunan serverlar için yapılıyor.Kontrolünüz de bulunana işletim sistemlerinin genel durumlarına göre swap ve memory kullanım ortalamaları mutlaka değişecektir.Dolayısıyla bu tür notify mesajları almadan evvel mutlaka running durumda bir product serverin overload,ortalama memory ve swap değerlerini bilmelisiniz.</p>
<p>Test edişen işletim sistemleri:<br />
Linux Centos 5.7 ve Linux Redhat 5.x</p>
<p><span style="color: #008000;">#!/bin/bash</span><br />
<span style="color: #008000;"> #Author: Ugur Engin</span><br />
<span style="color: #008000;"> server=`hostname`</span><br />
<span style="color: #ff0000;"> swap_value=2097152</span><br />
<span style="color: #ff0000;"> memory_value=15360</span><br />
<span style="color: #008000;"> int_del=/bin/rm</span><br />
<span style="color: #ff0000;"> email=&#8221;mail@ugurengin.com&#8221;</span><br />
<span style="color: #008000;"> swap_check=`vmstat -s | grep &#8216;used swap&#8217; | awk &#8216;{print $1}&#8217; | sort -n`</span><br />
<span style="color: #008000;"> function mesaj_swap() {</span><br />
<span style="color: #008000;"> subject=&#8221;$server Swap miktari yukseldi!..&#8221;</span><br />
<span style="color: #008000;"> swap_emailmessage=&#8221;0&#8243;</span><br />
<span style="color: #008000;"> echo &#8220;Swap Uyari Mesaji:&#8221;&gt; $swap_emailmessage</span><br />
<span style="color: #008000;"> echo &#8220;$server isimli sunucunun suanki swap miktari: $swap_check KB&#8221; &gt;&gt; $swap_emailmessage</span><br />
<span style="color: #008000;"> /bin/mail -s &#8220;$subject&#8221; &#8220;$email&#8221; &lt; $swap_emailmessage</span><br />
<span style="color: #008000;"> $int_del $swap_emailmessage</span><br />
<span style="color: #008000;"> }</span><br />
<span style="color: #008000;"> memory_check=`vmstat -s | grep &#8216;free memory&#8217; | awk &#8216;{print $1}&#8217; | sort -n`</span><br />
<span style="color: #008000;"> function mesaj_memory() {</span><br />
<span style="color: #008000;"> memory_emailmessage=&#8221;1&#8243;</span><br />
<span style="color: #008000;"> subject2=&#8221;$server Memory miktari yukseldi!..&#8221;</span><br />
<span style="color: #008000;"> echo &#8220;$server isimli sunucunun free memory miktari: $memory_check KB&#8221; &gt;&gt; $memory_emailmessage</span><br />
<span style="color: #008000;"> /bin/mail -s &#8220;$subject2&#8243; &#8220;$email&#8221; &lt; $memory_emailmessage</span><br />
<span style="color: #008000;"> $int_del $memory_emailmessage</span><br />
<span style="color: #008000;"> }</span><br />
<span style="color: #008000;"> if [ $swap_check -ge "$swap_value" ]; then</span><br />
<span style="color: #008000;"> mesaj_swap</span><br />
<span style="color: #008000;"> elif [ $memory_check -le "$memory_value" ]; then</span><br />
<span style="color: #008000;"> mesaj_memory</span><br />
<span style="color: #008000;"> else</span><br />
<span style="color: #008000;"> exit</span><br />
<span style="color: #008000;"> fi</span></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.ugurengin.com%2Fblog%2Fsmall-memswap-monitoring-via-the-bash-script.html&amp;t=Small%20Mem%2BSwap%20Monitoring%20via%20the%20Bash%20Script" id="facebook_share_both_1895" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top left;">Share on Facebook</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_1895') || document.getElementById('facebook_share_icon_1895') || document.getElementById('facebook_share_both_1895') || document.getElementById('facebook_share_button_1895');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_1895') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.ugurengin.com/blog/small-memswap-monitoring-via-the-bash-script.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

