<?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>Michał Lachowski</title>
	<atom:link href="http://blog.lachowski.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lachowski.info</link>
	<description>http://blog.lachowski.info</description>
	<lastBuildDate>Mon, 13 Jun 2011 09:13:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Problemy przy aktualizacji KDEmod</title>
		<link>http://blog.lachowski.info/2010/10/17/problemy-przy-aktualizacji-kdemod/</link>
		<comments>http://blog.lachowski.info/2010/10/17/problemy-przy-aktualizacji-kdemod/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 18:43:57 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[aktualizacja]]></category>
		<category><![CDATA[lnusertmp]]></category>
		<category><![CDATA[problem]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=45</guid>
		<description><![CDATA[Kilka dni temu przyszedł czas na aktualizację systemu, w tym środowiska KDEmod (do wersji 4.5.2). Poczatkowo problemem był konflikt zależności &#8211; w systemie znajdowało się (i było wymagane przez niektóre programy) zmodyfikowane qt &#8211; czyli qtmod, a do wykonania aktualizacji potrzebne było &#8222;oryginalne&#8221; qt. Postanowiłem &#8222;zaryzykować&#8221;, odinstalowałem zmodyfikowaną wersję i pobrałem qt razem z KDEmod. [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Kilka dni temu przyszedł czas na aktualizację systemu, w tym środowiska <em>KDEmod</em> (do wersji 4.5.2). Poczatkowo problemem był konflikt zależności &#8211; w systemie znajdowało się (i było wymagane przez niektóre programy) zmodyfikowane <em>qt</em> &#8211; czyli <em>qtmod</em>, a do wykonania aktualizacji potrzebne było &#8222;oryginalne&#8221; <em>qt</em>. Postanowiłem &#8222;zaryzykować&#8221;, odinstalowałem zmodyfikowaną wersję i pobrałem <em>qt</em> razem z <em>KDEmod</em>. Byłem przygotowany na wystąpienie pewnych problemów, ale trochę zaskoczyło mnie to, czego dotyczyły <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /><br />
<span id="more-45"></span><br />
Od razu mogę powiedzieć, że zamiana <em>qtmod</em> na <em>qt</em> nie miała większego wpływu na pracę systemu &#8211; wszystkie zainstalowane programy działają tak, jak powinny.</p>
<p>Jednak mimo wszystko start środowiska po aktualizacji nie udał się. Powitał mnie komunikat:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Call to lnusertemp failed {temporary directories full?}. Check your installation?</pre></div></div>

<p>Wynikałoby z niego, że brakuje miejsca na pliki tymczasowe. Jednak nie &#8211; na systemowej partycji ponad 3GB wolnego miejsca. No to szukamy dalej &#8211; użytkownik jednego z forów poradził, aby sprawdzić uprawnienia dla katalogów <em>/tmp</em> oraz <em>/var/tmp</em>. Dla kilku osób okazało się to rozwiązaniem, ale u mnie problem dalej istniał (pomimo praw dostępu dla obu katalogów ustawionych na 777).</p>
<p>Rozwiązaniem okazało się usunięcie dowiązań <em>~/.kdemod4/cache-localhost.localdomain</em>, <em>~/.kdemod4/socket-localhost.localdomain</em>, oraz <em>~/.kdemod4/tmp-localhost.localdomain</em>. Po restarcie zostały automatycznie odtworzone i środowisko wreszcie ruszyło <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/10/17/problemy-przy-aktualizacji-kdemod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	
	
	<!-- google ad injected by adsense-optimizer http://www.adsenseoptimizer.de -->
	<div  style="padding:10px; display: block; margin-left: auto; margin-right: auto; margin-top: -10px; margin-bottom: 10px; text-align: center;"><!-- Ad number: 1 --><script type="text/javascript"><!--
    	 
    	google_ad_client = "pub-1710907018475191"; google_alternate_color = "FFFFFF";
		google_ad_width = 468; google_ad_height = 60;
		google_ad_format = "468x60_as"; google_ad_type = "text";
		google_ad_channel =""; google_color_border = "44A1D0";
		google_color_link = "44A1D0"; google_color_bg = "FFFFFF";
		google_color_text = "000000"; google_color_url = "008000";
		google_ui_features = "rc:0"; //--></script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>	<item>
		<title>JuK &#8211; alternatywa dla Amaroka</title>
		<link>http://blog.lachowski.info/2010/10/02/juk-alternatywa-dla-amaroka/</link>
		<comments>http://blog.lachowski.info/2010/10/02/juk-alternatywa-dla-amaroka/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 15:37:14 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programy]]></category>
		<category><![CDATA[JuK]]></category>
		<category><![CDATA[odtwarzacz]]></category>
		<category><![CDATA[programy]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=42</guid>
		<description><![CDATA[Od dość długiego czasu szukałem alternatywy dla Amaroka. Przeszkadzało mi w nim przede wszystkim to, że stał się &#8222;kombajnem&#8221; do zarządzania i odtwarzania muzyki. Zajmował dość dużo miejsca w RAMie, dziwnie zachowywał się podczas przeciągania na listę nowych utworów/katalogów oraz potrzebował chwili czasu na uruchomienie. Testowałem kilka innych programów, ale JuK zdecydowanie najbardziej przypadł mi [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Od dość długiego czasu szukałem alternatywy dla Amaroka. Przeszkadzało mi w nim przede wszystkim to, że stał się &#8222;kombajnem&#8221; do zarządzania i odtwarzania muzyki. Zajmował dość dużo miejsca w RAMie, dziwnie zachowywał się podczas przeciągania na listę nowych utworów/katalogów oraz potrzebował chwili czasu na uruchomienie. Testowałem kilka innych programów, ale <a href="http://developer.kde.org/~wheeler/juk.html">JuK</a> zdecydowanie najbardziej przypadł mi do gustu.<br />
<span id="more-42"></span><br />
Ogólnie można powiedzieć, że jego funkcjonalność jest bardzo zbliżona do wspomnianego Amaroka (odtwarzanie wielu formatów, wbudowana biblioteka mediów, edytor tagów oraz wyszukiwanie ich w Sieci, zarządzanie listami odtwarzania, etc.) Dodatkowo lekki interfejs (wyglądem zbliżony do Dolphina &#8211; na pierwszy rzut oka okno programu przypomina mi otwarty folder) estetycznie komponuje się z KDE.</p>
<p>W tym momencie jedynym zauważonym przeze mnie minusem jest statyczna belka tytułowa &#8211; brak na niej nazwy aktualnie odtwarzanej piosenki, cały czas mamy tam napis &#8211; nazwę programu). Przeszkadza to, gdy player jest zminimalizowany albo ukryty pod innymi oknami.</p>
<p>Poza tym JuK posiada dość ubogie możliwości konfiguracji &#8211; choć w porównaniu do Amaroka sporą część odtwarzaczy można nazwać &#8222;ubogimi&#8221; <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  Dla niektórych będzie to wadą, ale bynajmniej nie dla mnie. Domyślny wygląd i ustawienia są intuicyjne, co na pewno jest plusem. Dlatego też wydaje mi się, że na dłuższy czas znalazłem dla siebie dobry odtwarzacz, a Amarok już poszedł w odstawkę <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/10/02/juk-alternatywa-dla-amaroka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wi-Fi i ArchLinux</title>
		<link>http://blog.lachowski.info/2010/09/09/wi-fi-i-archlinux/</link>
		<comments>http://blog.lachowski.info/2010/09/09/wi-fi-i-archlinux/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 19:54:43 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sprzęt]]></category>
		<category><![CDATA[dbus]]></category>
		<category><![CDATA[hal]]></category>
		<category><![CDATA[konfiguracja]]></category>
		<category><![CDATA[networkmanager]]></category>
		<category><![CDATA[nm-applet]]></category>
		<category><![CDATA[wi-fi]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=41</guid>
		<description><![CDATA[Podłączenie się do domowej sieci bezprzewodowej &#8211; w teorii czynność prosta i bezbolesna, a praktyce czasem bywa różnie Mnie zeszło dobrych kilkanaście minut, a wszystko przez daemona dbus do spółki z NetworkManagerem dostarczanym przez KDE. Na &#8222;dzień dobry&#8221; powitał mnie brak uprawnień podczas próby uruchomienia NetworkManagera. Po krótkich poszukiwaniach ustaliłem, że konieczne jest dodanie dwóch [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Podłączenie się do domowej sieci bezprzewodowej &#8211; w teorii czynność prosta i bezbolesna, a praktyce czasem bywa różnie <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Mnie zeszło dobrych kilkanaście minut, a wszystko przez daemona <em>dbus</em> do spółki z <em>NetworkManagerem</em> dostarczanym przez KDE.<br />
<span id="more-41"></span><br />
Na &#8222;dzień dobry&#8221; powitał mnie brak uprawnień podczas próby uruchomienia NetworkManagera. Po krótkich poszukiwaniach ustaliłem, że konieczne jest dodanie dwóch wpisów:</p>
<ul>
<li>do pliku <em>/etc/dbus-1/system.d/NetworkManager.conf</em>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>policy <span style="color: #007800;">group</span>=<span style="color: #ff0000;">&quot;network&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
     <span style="color: #000000; font-weight: bold;">&lt;</span>allow <span style="color: #007800;">send_destination</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManager&quot;</span> 
            <span style="color: #007800;">send_interface</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManager&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>policy<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

</li>
<li>oraz do pliku <em>/etc/dbus-1/system.d/nm-applet.conf</em>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>policy <span style="color: #007800;">group</span>=<span style="color: #ff0000;">&quot;network&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
     <span style="color: #000000; font-weight: bold;">&lt;</span>allow <span style="color: #007800;">own</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManagerUserSettings&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span>
     <span style="color: #000000; font-weight: bold;">&lt;</span>allow <span style="color: #007800;">send_destination</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManagerUserSettings&quot;</span>
            <span style="color: #007800;">send_interface</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManagerUserSettings&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span>
&nbsp;
     <span style="color: #000000; font-weight: bold;">&lt;</span>deny <span style="color: #007800;">send_interface</span>=<span style="color: #ff0000;">&quot;org.freedesktop.NetworkManagerSettings.Secrets&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>policy<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

</li>
</ul>
<p>Drugiego z plików nie było w systemie. Dlaczego? Ano dlatego, że jest częścią pakietu  <strong>network-manager-applet</strong>, czyli appleta do zarządzania połączeniami dla&#8230; Gnome <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  To nam akurat nie przeszkadza, bo w przeciwieństwie do jego odpowiednika z KDE, ta aplikacja działa dokładnie tak jak powinna.</p>
<p>Kolejnym krokiem jest zmiana daemona zarządzającego połączeniami. Od teraz nie będzie to <em>network</em>, a <em>networkmanager</em>. Edytujemy plik <em>/etc/rc.conf</em> pamiętając, że <em>networkmanager </em>musi być uruchamiany <strong>po</strong> daemonie <em>hal</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">DAEMONS</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span> ... <span style="color: #000000; font-weight: bold;">!</span>network hal networkmanager... <span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>W moim przypadku adres IP jest przydzielany dynamicznie, więc w sekcji <em>INTERFACES</em> wyłączamy wszystkie dotychczasowe konfiguracje połączeń:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#eth0=&quot;dhcp&quot;</span>
<span style="color: #666666; font-style: italic;">#wlan0=&quot;dhcp&quot;</span>
<span style="color: #007800;">INTERFACES</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>eth0 <span style="color: #000000; font-weight: bold;">!</span>wlan0<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>W między czasie warto pamiętać o dodaniu użytkownika do odpowiednich grup (network, networkmanager) oraz zatrzymaniu daemona <em>network</em> i restartowaniu <em>dbus</em> lub <em>networkmanager </em> po dokonaniu zmian w plikach. Przypominam o tym, bo sam straciłem trochę czasu i cierpliwości przez nieodświeżanie konfiguracji <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Kiedy przebrniemy przez to wszystko, powinno udać nam się uruchomić <em>nm-applet</em>. Dalsza konfiguracja przebiega już bez niespodzianek &#8211; wystarczy podanie klucza WPA i mamy dostęp do Internetu.</p>
<p>Wydaje mi się, że opisałem najważniejsze rzeczy. Jednak prób (i błędów) związanych z tematem było na tyle sporo, że coś mogło mi umknąć. Tak czy inaczej ogólny zarys postępowania jest, mam nadzieję że komuś sie przyda <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/09/09/wi-fi-i-archlinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Klonowanie adresu MAC</title>
		<link>http://blog.lachowski.info/2010/09/03/klonowanie-adresu-mac/</link>
		<comments>http://blog.lachowski.info/2010/09/03/klonowanie-adresu-mac/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 19:03:26 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sprzęt]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[konfiguracja]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=37</guid>
		<description><![CDATA[Kilka dni temu do naszego studenckiego mieszkania został podłączony Internet. Z racji chwilowego braku routera dostęp do Sieci ma ten, kto pierwszy dopadnie kabel (chociaż w sumie ja nie mam co narzekać, bo opisywany przeze mnie internet od Play&#8217;a nadal spisuje się dobrze). Niestety tylko komputer o adresie MAC zgłoszonym dostawcy może komunikować się ze [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Kilka dni temu do naszego studenckiego mieszkania został podłączony Internet. Z racji chwilowego braku routera dostęp do Sieci ma ten, kto pierwszy dopadnie kabel <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  (chociaż w sumie ja nie mam co narzekać, bo <a href="http://blog.lachowski.info/2010/02/15/play-online-na-karte-opinia/">opisywany przeze mnie internet od Play&#8217;a</a> nadal spisuje się dobrze). Niestety tylko komputer o adresie MAC zgłoszonym dostawcy może komunikować się ze światem, dlatego też musiałem &#8222;podszyć się&#8221; pod maszynę mojego współlokatora.<br />
<span id="more-37"></span><br />
O klonowaniu MAC napisano już wiele, ale dla formalności przypomnę, co należy zrobić:</p>
<ul>
<li>zatrzymanie karty, dla której MAC ma być zmieniony</li>
<li>zmiana adresu</li>
<li>uruchomienie karty</li>
<li>restart sieci</li>
</ul>
<p>W konsoli możemy to zrobić wydając kolejno polecenia:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> eth0 down
<span style="color: #c20cb9; font-weight: bold;">ifconfig</span> eth0 hw ether XX:XX:XX:XX:XX:XX
<span style="color: #c20cb9; font-weight: bold;">ifconfig</span> eth0 up
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>network restart</pre></td></tr></table></div>

<p>Wszystko będzie działać jak trzeba, tyle że po ponownym uruchomieniu systemu MAC wróci do swojej &#8222;fabrycznej&#8221; wartości. I wreszcie, po trochę przydługim wstępie docieramy do sedna dzisiejszego wpisu &#8211; daemona, który przy uruchomieniu systemu od razu zmieni MAC na bardziej nam odpowiadający <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Poniżej zamieszczam jego kod (znaleziony na <a href="http://wiki.archlinux.org/index.php/Configuring_Network#Change_MAC.2Fhardware_address">anglojęzycznym wiki ArchLinuksa</a>)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash                                                                     </span>
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.conf                                                                  
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>functions
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
      stat_busy <span style="color: #ff0000;">'Setting MAC address'</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #c20cb9; font-weight: bold;">ifconfig</span> eth0 hw ether XX:XX:XX:XX:XX:XX <span style="color: #666666; font-style: italic;"># your new MAC address</span>
      <span style="color: #000000; font-weight: bold;">then</span>
              stat_done
      <span style="color: #000000; font-weight: bold;">else</span>
              stat_fail
      <span style="color: #000000; font-weight: bold;">fi</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
      stat_busy <span style="color: #ff0000;">'Restoring original MAC address'</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #c20cb9; font-weight: bold;">ifconfig</span> eth0 hw ether YY:YY:YY:YY:YY:YY <span style="color: #666666; font-style: italic;"># your old MAC address</span>
      <span style="color: #000000; font-weight: bold;">then</span>
              stat_done
      <span style="color: #000000; font-weight: bold;">else</span>
              stat_fail
      <span style="color: #000000; font-weight: bold;">fi</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
restart<span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #007800;">$0</span> stop
      <span style="color: #007800;">$0</span> start
      <span style="color: #000000; font-weight: bold;">;;</span>
<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 {start|stop|restart}&quot;</span>
<span style="color: #000000; font-weight: bold;">esac</span></pre></td></tr></table></div>

<p>Plik zapisujemy w <em>/etc/rc.d/</em>, np. pod nazwą <em>set-hw-addr</em>. Teraz wystarczy tylko dodać daemona do <em>/etc/rc.conf</em> w taki sposób, aby uruchamiał się <strong>przed</strong> interfejsem sieciowym:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">DAEMONS</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span>... set-hw-addr network ...<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Na koniec dodam tylko, że podłączanie dwóch komputerów (przy pomocy switcha) o tym samym MAC do sieci to nie jest dobry pomysł (sprawdzone doświadczalnie) <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/09/03/klonowanie-adresu-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	
	
	<!-- google ad injected by adsense-optimizer http://www.adsenseoptimizer.de -->
	<div  style="padding:10px; display: block; margin-left: auto; margin-right: auto; margin-top: -10px; margin-bottom: 10px; text-align: center;"><!-- Ad number: 2 --><script type="text/javascript"><!--
    	 
    	google_ad_client = "pub-1710907018475191"; google_alternate_color = "FFFFFF";
		google_ad_width = 468; google_ad_height = 60;
		google_ad_format = "468x60_as"; google_ad_type = "text";
		google_ad_channel =""; google_color_border = "44A1D0";
		google_color_link = "44A1D0"; google_color_bg = "FFFFFF";
		google_color_text = "000000"; google_color_url = "008000";
		google_ui_features = "rc:0"; //--></script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>	<item>
		<title>Backup danych na serwerze</title>
		<link>http://blog.lachowski.info/2010/08/28/backup-danych-na-serwerze/</link>
		<comments>http://blog.lachowski.info/2010/08/28/backup-danych-na-serwerze/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 17:37:40 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[kopia]]></category>
		<category><![CDATA[skrypt]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=33</guid>
		<description><![CDATA[W myśl pewnego stwierdzenia ludzie dzielą się na tych, którzy robią kopie zapasowe i na tych, którzy dopiero zaczną je robić Ja należę do tych pierwszych, co ważniejsze dane staram się backupować. Niedawno skrypt, który wykonuje za mnie całą pracę przeszedł modyfikacje, a jego ostatnią wersją mam zamiar się podzielić z Wami. 1 2 3 [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>W myśl pewnego stwierdzenia ludzie dzielą się na tych, którzy robią kopie zapasowe i na tych, którzy dopiero zaczną je robić <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  Ja należę do tych pierwszych, co ważniejsze dane staram się backupować. Niedawno skrypt, który wykonuje za mnie całą pracę przeszedł modyfikacje, a jego ostatnią wersją mam zamiar się podzielić z Wami.<br />
<span id="more-33"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">CREATE</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">DELETE</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>F <span style="color: #660033;">-d</span><span style="color: #ff0000;">&quot;-28 day&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#usunięcie najstarszego backupu</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> .<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>backup_<span style="color: #007800;">$DELETE</span>.tar.gz <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #c20cb9; font-weight: bold;">rm</span> .<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>backup_<span style="color: #007800;">$DELETE</span>.tar.gz
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#zrzut bazy danych</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>mysqldump <span style="color: #660033;">-A</span> <span style="color: #660033;">-uXXXXX</span> <span style="color: #660033;">-pXXXXX</span> <span style="color: #000000; font-weight: bold;">&gt;</span> .<span style="color: #000000; font-weight: bold;">/</span>dump_<span style="color: #007800;">$CREATE</span>.sql
&nbsp;
<span style="color: #666666; font-style: italic;">#pakowanie zawartości konta</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">--exclude-tag-all</span>=backup.sh <span style="color: #660033;">-zcvf</span> .<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>backup_<span style="color: #007800;">$CREATE</span>.tar.gz .<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#usunięcie zrzutu bazy danych</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> .<span style="color: #000000; font-weight: bold;">/</span>dump_<span style="color: #007800;">$CREATE</span>.sql
&nbsp;
<span style="color: #666666; font-style: italic;">#wysłanie kopii na inny serwer</span>
<span style="color: #c20cb9; font-weight: bold;">scp</span> .<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>backup_<span style="color: #007800;">$CREATE</span>.tar.gz remote:~<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>hosting
&nbsp;
<span style="color: #666666; font-style: italic;">#usunięcie najstarszego backupu na zdalnym serwerze - odpowiednik linii 7-11</span>
<span style="color: #c20cb9; font-weight: bold;">ssh</span> remote <span style="color: #ff0000;">&quot;if [ -e ./backups/hosting/backup_<span style="color: #007800;">$DELETE</span>.tar.gz ]
then
  rm ./backups/hosting/backup_<span style="color: #007800;">$DELETE</span>.tar.gz
fi
exit&quot;</span></pre></td></tr></table></div>

<p>Na początek ustalamy aktualną datę, która będzie występować w nazwach plików, oraz datę kopii, która jest najstarsza i zamierzamy się jej pozbyć. Skrypt wykonuje się u mnie raz na tydzień, więc zmienną <em>$DELETE</em>, pomniejszam o 28 dni. Dzięki temu na serwerze zawsze pozostają cztery ostatnie kopie (aktualnie wykonana i trzy poprzednie; czwarta zostanie usunięta).</p>
<p>Po usunięciu jednego z archiwów (jeśli oczywiście istnieje) zabieramy się za tworzenie bieżącej kopii. Na początek zrzut wszystkich naszych baz do pliku. Służy do tego narzędzie <em>mysqldump</em>. Przyjmowane opcje to kolejno:</p>
<ul>
<li><strong>-A</strong> &#8211; zrzut wszystkich dostępnych baz danych</li>
<li><strong>-u</strong> &#8211; nazwa użytkownika baz danych</li>
<li><strong>-p</strong> &#8211; hasło dla ww. użytkownika</li>
</ul>
<p>Następnym krokiem jest tarowanie i kompresja zawartości katalogu domowego. Tu bardzo pomocna okazała się opcja <em>&#8211;exclude-tag-all</em>. Powoduje ona pominięcie katalogu, w którym znajduje się plik o nazwie podanej jako wartość tej opcji. Zapisując skrypt pod nazwą <em>backup.sh</em> w katalogu <em>./backups</em> osiągnąłem to, co zamierzałem &#8211; folder, w którym lądują kopie <strong>nie jest dołączany</strong> do archiwum.</p>
<p>Dla porządku usuwam jeszcze plik z bazami danych. Został zarchiwizowany, więc nie musi już leżeć w katalogu głównym mojego konta.</p>
<p>W tym momencie z grubsza wszystko jest gotowe. Tyle że backup trzymany w tym samym miejscu, co reszta danych chroni mnie tylko przed własnymi &#8222;błędami&#8221; &#8211; przypadkowym usunięciem/nadpisaniem plików. W razie awarii dysku czy podobnej sytuacji i tak nie będę miał dostępu do kopii (wiem że administratorzy też archiwizują dane, ale ich uzyskanie może chwilę potrwać). A skoro mam możliwość wysłania ich na inny serwer, to czemu z niej nie skorzystać? <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Na sam koniec pozostaje usunięcie najstarszej kopii z zapasowego serwera. Wykonujemy mniej więcej to samo, co na początku skryptu, tylko że po zalogowaniu się na wspomniane konto.</p>
<p>Ostatecznie mamy kopię baz danych spakowaną razem z całą zawartością folderu domowego (wyłączając katalog ./backups) i dodatkowo  wysłaną na zewnętrzny serwer. Teraz wystarczy dodać zadanie do <em><a href="http://pl.wikipedia.org/wiki/Crontab">crontab</a>&#8216;a</em>, np.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">0</span> <span style="color: #000000;">10</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">2</span> .<span style="color: #000000; font-weight: bold;">/</span>backups<span style="color: #000000; font-weight: bold;">/</span>backup.sh</pre></div></div>

<p>i (dopóki nic złego się nie dzieje) można zapomnieć o całej sprawie, a kopia wykona się co wtorek o 10 rano <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Informacja</h3>
<p>Autorem kodu, na którym częściowo oparłem swój skrypt, jest <a href="http://blog.keepmind.eu/pelny-backup-danych-ze-strony-www-dzieki-cronbash.html">Filip Cierpich</a>.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/08/28/backup-danych-na-serwerze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modyfikacje .bashrc</title>
		<link>http://blog.lachowski.info/2010/08/25/modyfikacje-bashrc/</link>
		<comments>http://blog.lachowski.info/2010/08/25/modyfikacje-bashrc/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 12:33:28 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bashrc]]></category>
		<category><![CDATA[konfiguracja]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=30</guid>
		<description><![CDATA[.bashrc &#8211; główny plik konfiguracyjny jednej z najpopularniejszych powłok systemowych dla Linuksa. Umożliwia nam personalizację Bash&#8217;a, aby jak najlepiej dostosować go do swoich potrzeb. Zazwyczaj wraz z upływem czasu wydłuża się jego zawartość, użytkownicy dodają wpisy ułatwiając sobie późniejszą pracę. W tym poście mam zamiar podzielić się moim .bashrc. Ameryki na pewno nie odkryję, bo [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><strong>.bashrc</strong> &#8211; główny plik konfiguracyjny jednej z najpopularniejszych powłok systemowych dla Linuksa. Umożliwia nam personalizację Bash&#8217;a, aby jak najlepiej dostosować go do swoich potrzeb. Zazwyczaj wraz z upływem czasu wydłuża się jego zawartość, użytkownicy dodają wpisy ułatwiając sobie późniejszą pracę. W tym poście mam zamiar podzielić się moim <strong>.bashrc</strong>. Ameryki na pewno nie odkryję, bo wszystkie przedstawione przeze mnie rzeczy znalazłem wcześniej w Sieci, ale liczę, że ktoś jeszcze ich nie spotkał i okażą się przydatne <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Na początek podaję całą zawartość mojego pliku. Za moment zajmę się omówieniem poszczególnych jego fragmentów.<br />
<span id="more-30"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Check for an interactive session</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PS1</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">return</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">EDITOR</span>=<span style="color: #c20cb9; font-weight: bold;">nano</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># wyświetlanie daty przy każdym poleceniu w historii</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HISTTIMEFORMAT</span>=<span style="color: #ff0000;">&quot;| %d/%m/%y %T | &quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># kolorowanie plików man</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_mb</span>=$<span style="color: #ff0000;">'\E[01;31m'</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_md</span>=$<span style="color: #ff0000;">'\E[01;31m'</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_me</span>=$<span style="color: #ff0000;">'\E[0m'</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_se</span>=$<span style="color: #ff0000;">'\E[0m'</span>                           
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_so</span>=$<span style="color: #ff0000;">'\E[01;44;33m'</span>                                 
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_ue</span>=$<span style="color: #ff0000;">'\E[0m'</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LESS_TERMCAP_us</span>=$<span style="color: #ff0000;">'\E[01;32m'</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#aliasy</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">ls</span>=<span style="color: #ff0000;">'ls -ahl --color=auto'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">pacman</span>=<span style="color: #ff0000;">&quot;sudo pacman-color&quot;</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">grep</span>=<span style="color: #ff0000;">'grep --color'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">r</span>=<span style="color: #ff0000;">'sudo su'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> ..=<span style="color: #ff0000;">'cd ..'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">x</span>=<span style="color: #ff0000;">'startx'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">c</span>=<span style="color: #ff0000;">'clear'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">mount</span>=<span style="color: #ff0000;">'sudo mount'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">umount</span>=<span style="color: #ff0000;">'sudo umount'</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">play</span>=<span style="color: #ff0000;">&quot;sudo wvdial play&quot;</span>
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">sh</span>=<span style="color: #ff0000;">'sudo shutdown -h now'</span>
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;">#konfiguracja wiersza poleceń</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #c20cb9; font-weight: bold;">whoami</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span> == root <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #007800;">PS1</span>=<span style="color: #ff0000;">&quot;\[\033[0;34m\][\u@\h] \[\033[0;33m\][ <span style="color: #000099; font-weight: bold;">\t</span> ] \[\033[0;31m\][ \w ] \[\033[0m\] <span style="color: #000099; font-weight: bold;">\n</span> &gt;&gt; &quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
  <span style="color: #007800;">PS1</span>=<span style="color: #ff0000;">&quot;\[\033[0;32m\][\u@\h] \[\033[0;33m\][ <span style="color: #000099; font-weight: bold;">\t</span> ] \[\033[0;31m\][ \w ] \[\033[0m\] <span style="color: #000099; font-weight: bold;">\n</span> &gt;&gt; &quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #666666; font-style: italic;">#domyslna</span>
<span style="color: #666666; font-style: italic;">#PS1='[\u@\h \W]\$ '</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># autouzupełnianie poleceń poprzedzonych przez 'sudo'</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PS1</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #7a0874; font-weight: bold;">complete</span> <span style="color: #660033;">-cf</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># 10 najczęściej używanych poleceń</span>
topten <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">history</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{a[$6]++ } END{for(i in a){print a[i] &quot; &quot; i}}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-rn</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># blokowanie &gt; jeżeli plik istnieje</span>
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #660033;">-o</span> noclobber</pre></td></tr></table></div>

<p>Na początek linia <strong>2.</strong> &#8211; standardowa opcja sprawdzająca, czy Bash jest uruchomiony w trybie interaktywnym. </p>
<p>Linia <strong>4.</strong> to ustawienie domyślnego edytora &#8211; Vim, Kate, Nano&#8230; co kto lubi <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>7.</strong> linia związana jest z poleceniem <em>history</em>. Określa format daty, która będzie dodatkowo wyświetlana przy każdym wpisie na liście ostatnio używanych komend.</p>
<p>W liniach <strong>od 10. do 16.</strong> zawarte są opcje kolorowania składni plików manuala. Bardzo pomocne, bo nagłówki, wszystkie opcje i opisywane parametry są wyróżnione, przez co tekst nie zlewa się w niewyraźną całość. O samym kolorowaniu nie będę się rozpisywał, krótko i treściwie zostało to już przedstawione pod <a href="http://www.klodzko.linux.pl/?p=434">tym</a> adresem.</p>
<p>Kolejne kilkanaście linijek to aliasy &#8211; głównie dodanie parametrów, które i tak za każdym razem byłyby przeze mnie dopisywane, ewentualnie skrócenie niektórych nazw poleceń. Niektórzy dodają nawet aliasy będące najczęściej popełnianymi przez nich literówkami (np.: <em>alias <strong>gerp</strong>=&#8217;grep &#8211;color&#8217;</em>). Można i tak, grunt żeby ułatwić sobie życie <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Linie <strong>od 32. do 36.</strong> to krótki warunek definiujący wygląd wiersza poleceń. Oprócz zazwyczaj spotykanych nazw użytkownika i hosta dodane są także aktualna godzina oraz bieżący katalog. Całość została przejrzyście pokolorowana. Dodatkowo po zalogowaniu się na konto root jego nazwa jest zapisana innym kolorem.</p>
<p>Następny warunek włącza uzupełnianie poleceń poprzedzonych <em>sudo</em> &#8211; czyli nadal działa nam nieoceniony klawisz TAB <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Funkcja topten() zgrabnie wyciąga z historii najczęściej używane polecenia. Pomijając zawiłości <em>awk</em> można powiedzieć, że zapakowaliśmy w nią cztery polecenia, jedno po drugim opracowujące dla nas żądaną listę.</p>
<p>Ostatnia opcja uchroniła mnie już kilka razy przed utratą mniej lub bardziej ważnych danych. Blokuje bowiem nadpisanie istniejącego pliku przekierowanym na niego strumieniem. Przy próbie ww. działania zostaniemy poinformowani, że nie jest to możliwe.</p>
<p>Jeśli macie jakieś ciekawe tricki dodane do <em>.bashrc</em> i chcecie się nimi podzielić &#8211; zapraszam do komentowania <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/08/25/modyfikacje-bashrc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>commandline.pl – świat komend linuksowych</title>
		<link>http://blog.lachowski.info/2010/07/22/commandline-pl-swiat-komend-linuksowych/</link>
		<comments>http://blog.lachowski.info/2010/07/22/commandline-pl-swiat-komend-linuksowych/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 21:03:43 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Strony www]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[commandline.pl]]></category>
		<category><![CDATA[strony www]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=26</guid>
		<description><![CDATA[Dziś króciutki wpis &#8211; prezentacja ciekawej strony, na którą dziś trafiłem. Chodzi o zawarty w tytule wpisu serwis commandline.pl, czyli &#8222;Świat komend linuksowych&#8221;. Adres warty dodania do zakładek, bo autor publikuje przydatne przykłady użycia konsolowych programów. Na pewno wszystkie napisane tam rzeczy można znaleźć w dokumentacji, ale przyznajmy szczerze &#8211; nie zawsze nam się chce [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Dziś króciutki wpis &#8211; prezentacja ciekawej strony, na którą dziś trafiłem. Chodzi o zawarty w tytule wpisu serwis <a href="http://commandline.pl ">commandline.pl</a>, czyli &#8222;Świat komend linuksowych&#8221;. </p>
<p>Adres warty dodania do zakładek, bo autor publikuje przydatne przykłady użycia konsolowych programów. Na pewno wszystkie napisane tam rzeczy można znaleźć w dokumentacji, ale przyznajmy szczerze &#8211; nie zawsze nam się chce przez nią przebijać <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  A tak mamy pod ręką przykłady poleceń, które mogą nam zaoszczędzić trochę czasu i co nieco ułatwić życie.</p>
<p>Prezentowana lista jest całkiem spora &#8211; obejmuje zarówno narzędzia podstawowe (i wydawałoby się banalne) jak <strong>grep</strong> czy nawet <strong>mv</strong>, ale także tego programy równie przydatne, a już niekoniecznie tak proste w obsłudze (np. <strong>sed</strong> lub <strong>awk</strong>).</p>
<p>Myślę, że nawet zaawansowani użytkownicy Linuksa trafią tam na nowe dla nich rzeczy, a dla początkujących strona może okazać się nieocenioną pomocą <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/07/22/commandline-pl-swiat-komend-linuksowych/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Indywidualna oferta od home.pl</title>
		<link>http://blog.lachowski.info/2010/07/07/indywidualna-oferta-od-home-pl/</link>
		<comments>http://blog.lachowski.info/2010/07/07/indywidualna-oferta-od-home-pl/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 11:15:37 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[cennik]]></category>
		<category><![CDATA[domena]]></category>
		<category><![CDATA[home.pl]]></category>
		<category><![CDATA[ovh]]></category>
		<category><![CDATA[transfer]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=24</guid>
		<description><![CDATA[W home.pl mam wykupionych kilka domen &#8211; w sumie tylko jedna była zarejestrowana &#8222;normalnie&#8221;, pozostałe wziąłem w promocji i pewnie nawet nie będę ich przedłużał. Chociaż to akurat jest mało ważne. Muszę przedłużyć domenę globalną (.net), ale nikt nie powiedział, że zrobię to w home.pl, który tani na pewno nie jest&#8230; Szybkie przejrzenie cenników kilku [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>W <strong>home.pl</strong> mam wykupionych kilka domen &#8211; w sumie tylko jedna była zarejestrowana &#8222;normalnie&#8221;, pozostałe wziąłem w promocji i pewnie nawet nie będę ich przedłużał. Chociaż to akurat jest mało ważne. Muszę przedłużyć domenę globalną (<strong>.net</strong>), ale nikt nie powiedział, że zrobię to w home.pl, który tani na pewno nie jest&#8230;</p>
<p>Szybkie przejrzenie cenników kilku operatorów wyraźnie w dobrym świetle stawia <strong>OVH</strong>. Transfer domeny globalnej (co jest równoznaczne z jej przedłużeniem na kolejny rok) to koszt <strong>24.39 PLN z VAT</strong>, a późniejsze prolongaty są o ok 5PLN droższe. Dla porównania w home.pl roczne przedłużenie kosztuje <strong>61 PLN</strong> &#8211; lekko licząc wychodzi dwa razy drożej.</p>
<p>Co prawda moja domena jest już wygasająca (na dzień dzisiejszy pozostało 19 dni), ale home.pl nie robi przeszkód przy wykonywaniu transferu w takiej sytuacji. Dlatego też wczoraj wysłałem wniosek o wydanie <strong>AuthInfo</strong>. Prośba została rozpatrzona bardzo szybko, minęły chyba dwie godziny i dostałem oczekiwanego maila z kodem. Konsultant zapytał się przy okazji, czy może wiedzieć po co mi ten kod <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Troszkę wesoło mi się zrobiło, ale napisałem zgodnie z prawdą, że mam zamiar przenieść się do innego, tańszego operatora. Następny mail i pytanie, czy jestem zainteresowany indywidualną ofertą lub przedłużeniem na więcej niż rok. Okazało się, że jeśli zapłacę z góry za <strong>3 lata</strong> to mogą mi zaproponować&#8230; <strong>10% zniżki</strong>. </p>
<h3>A teraz trochę prostej matematyki&#8230;</h3>
<p>Na początek oferta home.pl (przedłużenie na 3 lata z góry)</p>
<ul>
<li>3 x 61 PLN = 183 PLN</li>
<li>zniżka wyniesie 18.30 PLN, czyli do zapłacenia pozostanie <strong>164.70 PLN</strong></li>
</ul>
<p>Bierzemy pod lupę OVH (transfer, czyli przedłużenie na rok + koszt utrzymania przez kolejne dwa lata)</p>
<ul>
<li>24.39 PLN + 2 x 29.27 PLN = <strong>82,93 PLN</strong></li>
</ul>
<p>Chyba nie ma sensu komentować tego porównania, decyzja jest oczywista. AuthInfo już mam, wpłata w OVH zaksięgowana, czekam na pojawienie się nowej domeny w panelu. Potem tylko wklepanie kodu i pewnie znów troszkę czekania na zatwierdzenie zmian. Jak na razie wszystko idzie dobrze, ale w razie pojawienia się problemów na pewno popełnię jakiś wpis przybliżający Wam sytuację.</p>
<p>A home.pl? Niech sobie trzyma swój cennik (i wspaniałe indywidualne oferty) dla innych klientów, ja ani trochę nie jestem zainteresowany. Skoro to samo mogę mieć dwa razy taniej i na dodatek w porównywalnej co do wielkości firmie (jestem pewien, że to nie organizacja-krzak, która z dnia na dzień zniknie z Sieci) to po co mam przepłacać?</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/07/07/indywidualna-oferta-od-home-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webmail vs. klient pocztowy</title>
		<link>http://blog.lachowski.info/2010/06/25/webmail-vs-klient-pocztowy/</link>
		<comments>http://blog.lachowski.info/2010/06/25/webmail-vs-klient-pocztowy/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:46:55 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[klient]]></category>
		<category><![CDATA[poczta]]></category>
		<category><![CDATA[webmail]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=23</guid>
		<description><![CDATA[Chyba każdy, kto korzysta z poczty elektronicznej zastanawia się, jak ułatwić sobie życie. Klienty pocztowe (Thunderbird, KMail, Outlook, etc.) na pewno pomagają utrzymać porządek, zwłaszcza gdy mamy kilka kont na różnych serwerach. I pewnie normalnie korzystałbym z któregoś z nich, gdyby nie Gmail. Według mnie ma wszystkie funkcje, których wymagam od klienta pocztowego. I jeszcze [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Chyba każdy, kto korzysta z poczty elektronicznej zastanawia się, jak ułatwić sobie życie. Klienty pocztowe (Thunderbird, KMail, Outlook, etc.) na pewno pomagają utrzymać porządek, zwłaszcza gdy mamy kilka kont na różnych serwerach. I pewnie normalnie korzystałbym z któregoś z nich, gdyby nie <strong>Gmail</strong>. Według mnie ma wszystkie funkcje, których wymagam od klienta pocztowego. I jeszcze trochę więcej <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Stosowanie etykiet zamiast folderów oraz grupowanie rozmów w wątki to dwie główne cechy, które działają na korzyść webowego interfejsu od Google, a z którymi &#8222;zwykłe&#8221; programy nie zawsze radzą sobie tak, jakbym chciał.<br />
<span id="more-23"></span></p>
<h3>Obsługa etykiet</h3>
<p>Mechanizm etykiet jest według mnie wygodniejszy od tradycyjnych folderów. Lepiej jest mieć jedną wiadomość oznaczoną odpowiednimi etykietami, niż kilka jej niezależnych kopii, które po prostu zajmują miejsce. Co prawda wielu ludzi narzeka na taki sposób oznaczania wiadomości, pewnie z powodu przyzwyczajenia do folderów. Ale zależy, co kto lubi <img src='http://blog.lachowski.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Korzystając z klienta poczty, próbującego dostosować się do struktury Gmaila, wiadomości oznaczone kilkoma tagami mam widoczne w kilku folderach. Jest to jak najbardziej logiczne, ale nie do końca wygodne. Mając otwartą wiadomość nie da się szybko dodawać/usuwać etykiet, można tylko kopiować albo przenosić maile między folderami. Poza tym mając otwartą wiadomość nie wiem jakimi innymi tagami jest ona w danej chwili oznaczona. Za to w Gmailu wszystko od razu widać na pierwszy rzut oka. Dodatkowo można rozwinąć listę dostępnych etykiet i &#8211; zaznaczając lub odznaczając wybrane opcje &#8211; masowo tagować korespondencję.</p>
<h3>Grupowanie rozmów w wątki</h3>
<p>To drugi najważniejszy argument przemawiający za Gmailem. O ile rozmówcy używają opcji &#8222;Odpowiedz&#8230;&#8221;, to wszystko będzie pięknie się grupowało, a przeglądanie rozmowy będzie przypominało czytanie archiwum komunikatora. W kliencie pocztowym (bawiłem się co nieco tym wbudowanym w <em>Operę</em> oraz <em>KMail</em>&#8216;em) wygląda to z grubsza podobnie, ale mimo wszystko nie zawsze mogę się połapać co i jak. Po prostu w Gmailu jest bardziej przejrzyste. </p>
<h3>Gmail przez www</h3>
<p>Wydaje mi się, że optymalnym rozwiązaniem jest dla mnie obecna sytuacja &#8211; Gmail pobiera pocztę ze pozostałych moich kont, jednocześnie filtrując ją i przydzielając odpowiednie etykiety. Skonfigurowałem też wysyłanie &#8211; po prostu z listy wybieram sobie adres, który ma być nadawcą wiadomości. Dzięki temu webmail od Google z powodzeniem pełni funkcję klienta poczty, do którego mam dostęp z dowolnego komputera.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/06/25/webmail-vs-klient-pocztowy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Konfiguracja vHost dla Apache</title>
		<link>http://blog.lachowski.info/2010/06/13/konfiguracja-vhost-dla-apache/</link>
		<comments>http://blog.lachowski.info/2010/06/13/konfiguracja-vhost-dla-apache/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 15:45:20 +0000</pubDate>
		<dc:creator>Michał Lachowski</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[konfiguracja]]></category>
		<category><![CDATA[vHost]]></category>

		<guid isPermaLink="false">http://blog.lachowski.info/?p=21</guid>
		<description><![CDATA[O VirtualHost i konfiguracji tego mechanizmu powstało już wiele artykułów i blogowych wpisów. Mimo wszystko postanowiłem poruszyć ten temat i opisać, jak można je uruchomić w ArchLinux. Do czego może nam się przydać vHost? Przede wszystkim to możliwość lokalnego symulowania sytuacji na docelowym serwerze. Czasem zachodzi konieczność uruchomienia skryptu tak, jakby był podpięty bezpośrednio pod [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>O VirtualHost i konfiguracji tego mechanizmu powstało już wiele artykułów i blogowych wpisów. Mimo wszystko postanowiłem poruszyć ten temat i opisać, jak można je uruchomić w ArchLinux. </p>
<p>Do czego może nam się przydać <acronym lang="en" title="VirtualHost">vHost</acronym>? Przede wszystkim to możliwość lokalnego symulowania sytuacji na docelowym serwerze. Czasem zachodzi konieczność uruchomienia skryptu tak, jakby był podpięty bezpośrednio pod jakąś domenę, a nie zakopany głęboko w drzewie katalogów (a tak to zazwyczaj wygląda na lokalnym serwerze). Z tego też powodu przeniesienie projektu z <em>localhosta</em> na zewnętrzną maszynę może wymagać od nas zmian w strukturze folderów lub przebudowania fragmentów kodu. vHost pomaga uniknąć takich problemów, poprzez tworzenie wirtualnych domen widocznych tylko na lokalnym komputerze. Dzięki nim od razu możemy pisać tak, jakby wszystko działało na &#8222;prawdziwym&#8221; serwerze.<br />
<span id="more-21"></span><br />
We wpisie posłużę się przykładem skryptu phpMyAdmin, zainstalowanym w katalogu <em>/srv/http/phpmyadmin</em>. Początkowo jest on dostępny poprzez adres <strong>http://localhost/phpmyadmin/</strong>.</p>
<p>Aby utworzyć vHost, wystarczy edycja trzech plików: </p>
<ul>
<li>/etc/hosts</li>
<li>/etc/httpd/conf/extra/httpd-vhosts.conf</li>
<li>/etc/httpd/conf/httpd.conf</li>
</ul>
<h3>/etc/hosts</h3>
<p>Pierwszy z nich początkowo wyglądał u mnie tak:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">127.0.0.1       notebook
127.0.0.1       localhost</pre></div></div>

<p>gdzie <em>notebook</em> to nazwa komputera &#8211; ta sama, którą ustawialiśmy podczas instalacji w pliku <em>/etc/rc.conf</em>. Ewentualnie możemy ją sprawdzić, wklepując w konsolę</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$HOSTNAME</span></pre></div></div>

<p>Teraz wystarczy dopisać kolejną linijkę, definiującą nową nazwę domenową:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">127.0.0.1       pma.local</pre></div></div>

<p>W ten sposób określamy, na jaki adres IP skierować użytkownika po wpisaniu w oknie przeglądarki <em>http://pma.local/</em>.</p>
<h3>httpd.conf</h3>
<p>Kolejnym krokiem jest edycja pliku <em>/etc/httpd/conf/httpd.conf</em>. Trzeba znaleźć linijkę</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #adadad; font-style: italic;">#Include conf/extra/httpd-vhosts.conf</span></pre></div></div>

<p> i ją odkomentować. To jedyna zmiana w tym pliku &#8211; aby nie robić sobie bałaganu w głównej konfiguracji, wszystkie wirtualne hosty będziemy definiować w specjalnie przeznaczonym do tego pliku.</p>
<h3>httpd-vhosts.conf</h3>
<p>Właśnie zabieramy się za jego edycję &#8211; dodajemy wpisy konfigurujące wirtualnego hosta:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">NameVirtualHost</span> *:<span style="color: #ff0000;">80</span>
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *:<span style="color: #ff0000;">80</span>&gt;
    <span style="color: #00007f;">DocumentRoot</span> /srv/http
    <span style="color: #00007f;">ServerName</span> localhost
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *:<span style="color: #ff0000;">80</span>&gt;
    <span style="color: #00007f;">DocumentRoot</span> /srv/http/phpmyadmin
    <span style="color: #00007f;">ServerName</span> pma.local
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;</pre></td></tr></table></div>

<p>Pierwsza linia odpowiada za nasłuch portów. Bez niej (prawdopodobnie) działał będzie tylko pierwszy zdefiniowany host. Trzeba ją znaleźć (w httpd.conf lub httpd-vhosts.conf) i odkomentować.<br />
Zastanawiacie się pewnie, po co właściwie potrzebne są linijki 3-6? Po wprowadzeniu zmian w pliku <em>httpd.conf</em> adres <strong>http://localhost/</strong> przestał działać &#8211; wpisanie go powoduje przekierowanie na pierwszy utworzony vHost. Ta krótka wstawka przywraca go z powrotem do użytku. Oczywiście jeśli tworzymy kilka vHostów, to fragment opisujący <em>localhost</em> dodajemy tylko raz. </p>
<p>Kilka słów o definiowanych wartościach:</p>
<ul>
<li><em>DocumentRoot</em> &#8211; określa bezwzględną ścieżkę do głównego katalogu skryptu lub projektu</li>
<li><em>ServerName</em> &#8211; domenowa nazwa, którą utworzyliśmy w pliku <em>/etc/hosts</em></li>
</ul>
<p>Dostępne są jeszcze dodatkowe opcje &#8211; ich opis można zobaczyć na stronach projektu <a href="http://httpd.apache.org/docs/2.0/vhosts/">Apache</a>.</p>
<h3>Zakończenie</h3>
<p>Teraz pozostaje tylko restart serwera:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>httpd restart</pre></div></div>

<p>i po wpisaniu w oknie przeglądarki adresu <strong>http://pma.local/</strong> powinniśmy zobaczyć to samo, co pod adresem <strong>http://localhost/phpmyadmin/</strong>.</p>
<p>W ten sposób możemy tworzyć wpisy, które oprócz symulowania adresu domenowego będą po prostu krótsze, a przez to łatwiejsze do zapamiętania.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://blog.lachowski.info/2010/06/13/konfiguracja-vhost-dla-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

