<?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>Böyük hədəflərə kiçik addımlarla! &#187; cron</title>
	<atom:link href="http://alismayilov.blogy.az/tag/cron/feed/" rel="self" type="application/rss+xml" />
	<link>http://alismayilov.blogy.az</link>
	<description>Xoş gəlmisiniz.</description>
	<lastBuildDate>Thu, 14 Jan 2010 10:46:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>cron</title>
		<link>http://alismayilov.blogy.az/2009/09/02/cron/</link>
		<comments>http://alismayilov.blogy.az/2009/09/02/cron/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 09:41:26 +0000</pubDate>
		<dc:creator>Ali</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cron]]></category>

		<guid isPermaLink="false">http://alismayilov.blogy.az/?p=210</guid>
		<description><![CDATA[Linuxda biz sistemi elə düzəldə bilərik ki, o lazım olan proqramı avtomatik özü etsin. Başqa sözlə bəzən bizə müəyyən bir proqramı, komandanı, scripti bizim təsirimiz olmadan, gələcəkdə öz-özünə işə düşməsin istəyirik. Bunun üçün Linux bizi iki deamonla təmin edir. 

at deamon

cron deamon

at deamon vasitəsi ilə biz prosessin gələcəkdə nə vaxtsa bir dəfə yerinə yetirilməsini edə [...]]]></description>
			<content:encoded><![CDATA[<p>Linuxda biz sistemi elə düzəldə bilərik ki, o lazım olan proqramı avtomatik özü etsin. Başqa sözlə bəzən bizə müəyyən bir proqramı, komandanı, scripti bizim təsirimiz olmadan, gələcəkdə öz-özünə işə düşməsin istəyirik. Bunun üçün Linux bizi iki deamonla təmin edir. </p>
<ul>
<li>at deamon
</li>
<li>cron deamon</li>
</ul>
<p><strong>at deamon</strong> vasitəsi ilə biz prosessin gələcəkdə nə vaxtsa bir dəfə yerinə yetirilməsini edə bilərik. Yəni at deamon ilə istədiyimiz bir iş gələcəkdə görülür, lakin bir dəfə bu görülür. at deamonu yaxşıdır, amma dediyim kimi onunla proses gələcəkdə bir dəfə çağrılır. Lakin bizə çox zaman müəyyən işləri (məsələn backup) gələcəkdə müəyyən vaxtdan bir etmək tələb olunur. Bunun üçün cron deamon istifadə olunur.<br />
<strong>Cron deamon nədir? </strong><br />
- <em>cron deamon daim sistemin arxa planında işləyən servisdir. Bu servis hər dəqiqədə crontab adlı faylı yoxlayır və əgər orda yerinə yetirilməsi lazım olan iş varsa onu edir. </em>Susmaya görə cron deamon hər dəfə sistem boot edəndə avtomatik işə düşür. Əgər avtomatik işə düşməsə, onda siz</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[root@alihost ali]# service crond start
Starting crond: [ OK ]</pre></div></div>

<p>komandası vasitəsi ilə onu işə sala bilərsiz. Və ya</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[root@alihost ali]# /etc/init.d/crond start
Starting crond: [ OK ]</pre></div></div>

<p>komandası vastisəsi ilə crond servisin işə sala bilərsiz. Amma bir çox Linux distributivində bu, hər dəfə sistem işə düşəndə avtomatik işə düşür. Crondan istifadə etməklə çoxlu vaxt və enerjiyə qənaət edə bilərsiz. Əsasən vaxtaşırı backup üçün cronu istifadə etmək əla seçimdir.<br />
Yaxşı, indi baxaq görək cronu necə işlətmək lazımdır. /etc/ kataloquna baxsaz, orda crona aid bir neçə fayl görəcəksiniz.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[ali@alihost ~]$ ls /etc/cron
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab</pre></div></div>

<p>Bu scriptlərin hər birin cron servisi müəyyən olunmuş vaxtda çağırır (run edir). Məsələn <strong>/etc/cron.daily</strong></p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[ali@alihost ~]$ ls /etc/cron.daily/
00webalizer certwatch inn-cron-expire makewhatis.cron prelink rpm
0logwatch cups logrotate mlocate.cron readahead.cron tmpwatch</pre></div></div>

<p>/etc/cron.daily scripti hər gün bir dəfə  sistemi qaydaya salır (clean up). Əgər siz scriptinizin bu vaxtlarda işə düşməsini (yəni cron.daily/ hər gün bir dəfə, cron.hourly/ hər saatdan bir və s) istəyirsinizsə, onda sadəcə yaratdığınız scripti uyğun kataloqa atın. Əgər bu 4 vaxtdan başqa vaxta scriptinizi icra etmək istəsəz onda necə ? Əgər siz öz istədiyiniz vaxtlarda scripti işə salmaq istəyirsinizsə, onda crontab fayl yaratmaq lazımdır. Bu da çox asandır. crontab fayl text fayl olub, hər sətri bir iş üçün istifadə edilir. Hər sətir <strong>6 hissədən</strong> ibarətdir və hər hissə tab vasitəsi ilə ayrılıb. </p>
<ol>
<li>Dəqiqələr (Minutes) Bu hissə saatdan necə dəqiqə sonra komandanın çağrılmasını göstərmək üçündür.
</li>
<li> Saat (Hour) . Bu hansı saatda yerinə yetirilməni göstərmək üçündür. 0-23
</li>
<li> Gün (Day). Bu ayın hansı günündə komandanın çağrılmasını bildirir.
</li>
<li>Ay (Month). Bu ilin hansı ayında komandanı yerinə yetirmək lazımdır.
</li>
<li> Həftənin günləri. Bazar günü -0, Şənbə &#8211; 6.
</li>
<li> Komandanın adı, bura komandanın tam yolu da daxildir. </li>
</ol>
<p>Çox vaxt bu hissələrdən birində və ya bir neçəsində <strong>* işarəsi</strong> istifadə oluna bilər. * yəni &#8220;hər vaxt&#8221;, başqa sözlə elə bil həmin hissəni nəzər almır. Məsələn, həftənin günləri olan hissədə * işarəsi varsa, onda deməli həftənin hansı günü olur &#8211; olsun komanda çağrıla bilər (digər hissələrdə göstərilmiş vaxtda). Məsələn, hər ay, bazar günündən başqa hər gün saat 15:10 da tar komandası ilə /home kataloqun backup etmək istəyirəm. Onda</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">10 15 * * 1-6 /bin/tar -cvf /media/My_Book/backup.tar /home</pre></div></div>

<p>komandasın <strong>/etc/crontab</strong> (OpenSuseda /etc/crontab.d) faylına elavə etmək lazımdır. Lakin bunu yalnız root edə bilər. İstifadəçi isə öz cron faylın <strong>crontab -e</strong> komandası vasitəsi ilə yarada bilər. Terminaldan crontab -e daxil edin və vi editoru, boş açılacaq. İnsert edib, yuxarıdakılar<em>ı əlavə edək. Burda bir şey demək istərdim. Yuxarıda gördüyümüz kimi sistem cron faylları /etc/ </em>kataloqunda yerləşir, istifadəçi cron faylları isə <em>/var/spool/cron/ (OpenSuseda /etc/spool/cron/tabs)</em><br />
kataloqunda yerləşir.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[root@alihost ali]# cat /var/spool/cron/ali
10 15 * * 1-6 /bin/tar -cvf /media/My_Book/backup.tar /home</pre></div></div>

<p><strong>crontab -l </strong>komandası vasitəsi ilə istifadəçi öz crontabında olan işlərin siyahısına baxa bilər.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[ali@alihost ~]$ crontab -l
10 15 * * 1-6 /bin/tar -cvf /media/My_Book/backup.tar /home</pre></div></div>

<p><strong>crontab -r </strong>komandası ilə isə, siyahıda olan işləri silmək olar.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">[ali@alihost ~]$ crontab -r
[ali@alihost ~]$ crontab -l
no crontab for ali</pre></div></div>

<p>Sualınız varsa, buyurun. </p>
]]></content:encoded>
			<wfw:commentRss>http://alismayilov.blogy.az/2009/09/02/cron/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!--Google analytics--->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-11492332-1");
pageTracker._trackPageview();
} catch(err) {}</script>