<?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>BEERHEAD &#187; linux</title>
	<atom:link href="http://www.beerhead.ru/blog/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.beerhead.ru/blog</link>
	<description></description>
	<lastBuildDate>Thu, 09 Sep 2010 07:03:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Софтово-железячное</title>
		<link>http://www.beerhead.ru/blog/2010/03/31/software-n-hardware/</link>
		<comments>http://www.beerhead.ru/blog/2010/03/31/software-n-hardware/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 20:11:23 +0000</pubDate>
		<dc:creator>antipod</dc:creator>
				<category><![CDATA[Красноглазие]]></category>
		<category><![CDATA[chieftec]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[панорама]]></category>

		<guid isPermaLink="false">http://www.beerhead.ru/blog/?p=1112</guid>
		<description><![CDATA[1. После 2.5 лет бесперебойной работы (говоря бесперебойная, подразумевая 24/7) сгорел 450 Вт блок питания Chieftec. Причину поломки пока не выяснил, но есть мнение, что остановился кулер, БП перегрелся да и здох. Вместо него поставил БП от этого же производителя но на 400 Вт, 10 дней &#8211; полет нормальный. 2. В конец устав от тормозов [...]]]></description>
			<content:encoded><![CDATA[<p>1. После 2.5 лет бесперебойной работы (говоря бесперебойная, подразумевая 24/7) сгорел 450 Вт блок питания Chieftec. Причину поломки пока не выяснил, но есть мнение, что остановился кулер, БП перегрелся да и здох. Вместо него поставил БП от этого же производителя но на 400 Вт, 10 дней &#8211; полет нормальный.</p>
<p>2. В конец устав от тормозов при одновременной работе в Lightroom и Photoshop, решил добавить в рабочую машинку еще 2 гига оперативы к уже имеющимся двум. Из закромов были извлечены два модуля Corsair XMS2-6400C4, для которых производителем заявлена возможность работать на таймингах 4-4-4-12. Два аналогичных модуля успешно крутятся в машине не первый год, а эта пара с завидным постоянством рушила систему в BSOD. В сервисе, в свое время, менять модули по гарантии отказались, мотивировав тем, что тест памяти ошибок не выявил. При таймингах 5-5-5-18 система работает стабильно, да черт бы с ней, что неуловимо медленней <img src='http://www.beerhead.ru/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>3. В сервант под Fedora 12 воткнул два старых IDE винта, некогда работавших в софтовом зеркальном рейде. Долго не мог понять почему один из винтов не форматируется. Выяснилось, что умная линуха без спросу создала рейд-массив. Очевидно злую шутку сыграло наличие служебной информации о RAID на этих винтах.</p>
<p>Пришлось ручками удалять метки.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">dmraid <span style="color: #660033;">-r</span> <span style="color: #660033;">-E</span></pre></div></div>

<p>В системе быстренько были опознаны бывшие рейдовые винты и предложено удалить с них метки принадлежности к рейду.<br />
После перезагрузки появились /dev/sdb1 и /dev/sdd1, соответственно.</p>
<p>4. В свое время, размещал в этом блоге панораму Будапешта с помощью плагина WP-PhotoNav. Очень не понравилось, что перемещение картинки происходит при Mouse Over. Намного удобнее, имхо, перемещние при нажатой левой кнопке мыши. Вот эта мысль наряду с некоторыми другими была доведена до автора плагина. В новой версии этот функционал реализован. Страница плагина: <a href="http://fabianmoser.at/wp-photonav">http://fabianmoser.at/wp-photonav</a></p>
<p>5. Photoshop конечно всем хорош, но собирать большие панорамы в нем &#8211; адово занятие, особенно если использовать Auto-Align Layers и Auto-Blend Layers. Катастрофически не хватает оперативы. В настоящий момент собираю панорамы с помощью Autopano Giga. Функционально, быстро, с умеренным расходом памяти и хорошим результатом.</p>
<p><strong>UPD</strong></p>
<p>6. А еще вспомнил про неприятный баг, с которым столкнулся при переносе почтовых ящиков пользователей с локальных машин на сервер. По плану подразумевалось, что доступ к ящикам будет открыт с помощью виндовых шар. Уж не знаю, проблема ли в The Bat!, или в шарах, или и в том и другом сразу, но в определенные моменты содержимое папки &laquo;Входящие&raquo; бесследно пропадало, файлы messages.tbb и messages.tbn оказывались перезаписаны и пусты. Содержимое вложенных в Inbox папок оставалось неповрежденным.</p>
<p>Условия, при которых происходил сей коллапс установить не удалось, но отключение сжатия папок проблему решило. Причем отключать сжатие нужно как в настройках всего ящика, так и для папки &laquo;Входящие&raquo;.</p>
<p><a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/livejournal?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="LiveJournal" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/livejournal.png" width="16" height="16" alt="LiveJournal"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2010%2F03%2F31%2Fsoftware-n-hardware%2F&amp;linkname=%D0%A1%D0%BE%D1%84%D1%82%D0%BE%D0%B2%D0%BE-%D0%B6%D0%B5%D0%BB%D0%B5%D0%B7%D1%8F%D1%87%D0%BD%D0%BE%D0%B5"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.beerhead.ru/blog/2010/03/31/software-n-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Файлопомойка. Часть 3. WebUI</title>
		<link>http://www.beerhead.ru/blog/2009/12/19/fileserver-at-home-part-3-webui/</link>
		<comments>http://www.beerhead.ru/blog/2009/12/19/fileserver-at-home-part-3-webui/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 00:19:18 +0000</pubDate>
		<dc:creator>antipod</dc:creator>
				<category><![CDATA[Красноглазие]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[файл-сервер]]></category>

		<guid isPermaLink="false">http://www.beerhead.ru/blog/?p=869</guid>
		<description><![CDATA[Да, вот здесь начинается самая веселуха, ибо над развертыванием этого проклятого ГУЯ бился я, ну наверное, сутки. В итоге все конечно разрешилось, причем самым презабавным образом и за пару минут, однако не буду более забегать вперед, все будет последовательно. Как я уже писал во второй части цикла &#171;Файлопомойка&#187;, в качестве торрент-клиента я выбрал rTorrent, соответственно [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="grandma-linux" src="http://randomerror.files.wordpress.com/2009/01/43_kreatiff_ziza_151430.jpg" alt="" width="393" height="314" />Да, вот здесь начинается самая веселуха, ибо над развертыванием этого проклятого ГУЯ бился я, ну наверное, сутки. В итоге все конечно разрешилось, причем самым презабавным образом и за пару минут, однако не буду более забегать вперед, все будет последовательно.</p>
<p>Как я уже писал во второй части цикла &laquo;Файлопомойка&raquo;, в качестве торрент-клиента я выбрал rTorrent, соответственно и WebUI выбирался для него. Скоренький поиск в Гугле показал, что самым обсуждаемым, читай востребованным, является wTorrent. Когда я только только начинал читать ман по установке, я и не знал, подо что подписался.</p>
<p><span id="more-869"></span></p>
<p>Для развертывания wTorrent&#8217;a требуется HTTP-сервер. Маны на выбор предлагали lighttpd и Apache. Хотя апач и присутствовал в моем образе федоры, для чистоты эксперимента и азарта для, решил поставить lighttpd и обрести счастье с ним.</p>
<p><em><strong>Пляски с lighttpd</strong></em></p>
<p>Помимо http-серванта нужно ставить php, php-xmlrpc, php-pdo и sqlite. Опять же из-за лени не стал собирать все это барахло ручками, а ограничился устанвкой из репозитория.</p>
<pre>yum install lighttpd php php-xmlrpc php-pd0 sqlite</pre>
<p>Настройку lighttpd я здесь рассматривать не буду ибо все начинает крутиться после установки и почти никакого дополнительного вмешательства не требует. За тонкой настройкой под себя можно опять же обратиться к Гуглу.</p>
<p>Мне потребовалось внести в lighttpd.conf следующие изменения:</p>
<p>mcedit /etc/lighttpd.conf</p>
<p>Добавить строку в секцию server.modules:</p>
<pre>"mod_scgi",</pre>
<p>И нижеприведенный код в конец файла:</p>
<pre>scgi.server = (
 "/RPC2" =&gt; # RT_DIR
  ( "127.0.0.1" =&gt;
   (
    "host" =&gt; "127.0.0.1", # к какому хосту коннектится
    "port" =&gt; 5000, # К какому порту подключаться. Порт прописан в файле .rtorrent.rc
    "check-local" =&gt; "disable"
   )
  )
 )</pre>
<p>Во второй части я писал о том, что в конфиг rTorrent&#8217;а нужно добавить строку</p>
<pre>scgi_port = 127.0.0.1:5000</pre>
<p>вот теперь то она и заработает.</p>
<p>Плюс я изменил порт на котором слушает lighttpd c 80 на 81, раскомментировав строку:</p>
<pre>server.port = 81 # RT_PORT</pre>
<p>Отдельно хочу обратить внимание на SELinux (Security Enhanced Linux). Установленные по умолчанию политики безопасности могут препятсовать исполнения php-скриптов (с чем я в дальнейшем столкнулся, но уже с апачем), либо иным образом препятсовать нормальной работе связки lighttpd + rtorrent + wtorrent. Поэтому в тестовых целях я изменял политику SELinux с Enforced на Permissive и внимательным образом изучал сообщения системы, коли таковые появлялись.</p>
<p>Однако&#8230; (всегда есть однако). Здесь я опущу камлания с wtorrent&#8217;ом, который, кстати сказать мне не удалось завести под lighttpd из-за банальной причины, &#8211; не выполнялись php скрипты. Уж не знаю в чем была причина, курение манов, чтение форумов и прочего результата не дали, но я переключился на апач, под которым в конечном итоге все заработало.</p>
<p><em><strong>Гармония с Apache</strong></em></p>
<p>Так, для начала прикручиваем mod_scgi к Апачу (Сайт проекта SCGI: <a href="http://python.ca/scgi/" target="_blank">http://python.ca/scgi/</a>):</p>
<pre><span>wget http://python.ca/scgi/releases/scgi-1.14.tar.gz</span><span>
</span><span>tar xvfz scgi-1.14.tar.gz</span><span>
</span><span>cd scgi-1.14</span><span>
</span><span>cd apache2</span><span>
</span><span>apxs -i -c mod_scgi.c</span></pre>
<p>Далее быстренько правим конфиг Апача:</p>
<pre><span>mcedit /etc/httpd/httpd.conf</span></pre>
<p>В конец файла прописываем следующие строки:</p>
<pre><span>LoadModule</span><span> scgi_module </span><span>/</span><span>usr</span><span>/</span><span>lib</span><span>/</span><span>httpd</span><span>/</span><span>modules</span><span>/</span><span>mod_scgi</span><span>.</span><span>so
</span><span>SCGIMount</span><span> </span><span>/</span><span>RPC2 </span><span>127.0</span><span>.</span><span>0.1</span><span>:</span><span>5000</span></pre>
<p>Все Апач настроен, можно ребутить демон.</p>
<p>На данном этапе все подготовительные работы выполнены и можно смело раскатывать wtorrent.</p>
<p><em><strong>Камлания с wTorrent</strong></em></p>
<p>Вот здесь я вынужден сделать небольшое отступление от темы и сразу предостеречь возможного потенциального читателя от тех граблей, на которые наступил.</p>
<p>Во-первых, не стоит скачивать архив, формируемый автоматически из раздела c этой страницы: <a href="http://www.wtorrent-project.org/trac/browser/trunk/wtorrent" target="_blank">http://www.wtorrent-project.org/trac/browser/trunk/wtorrent</a> По какой-то причине в него не был упакован пустой каталог tpl_c, чего я не заметил, а потом долго пытался понять, почему же у меня не открывается даже install.php. Лучше всего утягивать wtorrent через svn:</p>
<pre>svn co svn://wtorrent-project.org/repos/trunk/wtorrent/ wtorrent</pre>
<p>Во-вторых, права доступа к папкам. В английском мане почему-то смело советуют делать chmod 777 на все содержимое папки wtorrent, что безусловно является большим злом. На самом деле достаточно сделать:</p>
<pre>chmod 777 -R torrents/ db/ tpl_c/ conf/</pre>
<p>В конечном итоге после всех этих манипуляций мне удалось завести install.php. На что следует обратить внимание там? Несмотря на то, что порт scgi во всех конфигах был указан как 5000. В графе &laquo;rTorrent scgi port&raquo; должно стоять 80 (то есть нужно оставить как есть). Графы &laquo;Folder to save uploaded torrents&raquo; и &laquo;Default folder to save torrent data&raquo; можно заполнить по своему усмотрению, главное не забыть дать права на запись.</p>
<p>В тестовых целях я оставил все как есть, радостно жмахнул на &laquo;Test config&raquo; и получил по всей роже вот этим:</p>
<p><img class="alignleft size-full wp-image-870" title="wtorrent_install_sux" src="http://www.beerhead.ru/blog/wp-content/uploads/2009/12/wtorrent_install_sux.jpg" alt="wtorrent_install_sux" width="472" height="78" /></p>
<p>Вот с этого момента пошли сутки. Я пересобирал rtorrent с разными ключами, предположив, что по какой-то причине XMLRPC не был включен в установке, которую я взял из репозитория, пересобирал libtorrent, утягивал более старые версии и собирал их, ничего не помогало. Плясал с настройками, проверял и еще раз перепроверял конфиги, читал логи, форумы, ЧАВО и прочее. В какой-то момент я же было отчаялся завести rTorrent в связке с wTorrent&#8217;ом и пошел искать альтернативы, коих оказалось предостаточно, но&#8230; все они и рядом не стояли с wTorrent&#8217;ом по удобству и функциональности интерфейса, а кроме того wTorrent подкупал возможностью создания нескольких учетных записей. Единственный WebUI, который мне понравился и который я был готов оставить и использовать &#8211; ruTorrent. Интерфейс практически один в один как в uTorrent WebUI, плюс приятным бонусом обновление скоростей и данных о закачках в реальном времени и возможность назначать торрентам метки. Последний фичи я не встречал ни в одном из протестированных WebUI.</p>
<p>Как выяснилось сутками позднее, на некоторых машинах последняя ревизии wTorrent&#8217;a и правда не работала. Проблема решалась банально путем выкачивания предыдущей:</p>
<pre>svn co -r99 svn://wtorrent-project.org/repos/trunk/wtorrent/ wtorrent99</pre>
<p>На данном этапе можно смело копировать свежескаченый wtorrent на веб-сервер, назначать права доступа и инсталлить его. После чего с радостными воплями и гиканьем пользоваться всеми плюшками прекрасного WebUI.</p>
<p><img title="wtorrent_rox" src="http://www.beerhead.ru/blog/wp-content/uploads/2009/12/wtorrent_rox.jpg" alt="wtorrent_rox" width="633" height="266" /></p>
<p>P.S. А еще, когда я выбирал себе WebUI и смотрел скриншоты, меня очень подкупила надпись &laquo;Feeds&raquo;. Уж не RSS ли это загрузчик, подумалось мне. К большому сожалению оказалось, что нет. Если б он имелся, то связку rTorrent+wTorrent можно было бы считать однозначно лучшей.</p>
<p>P.S.S. По завершении всех этих мытарств, я а натолкнулся на другой проект &#8211; torrentflux-b4rt, с которым провозился еще энное количество человеко часов, о чем расскажу в следующий раз. Плюс недавно вычитал про еще пару линуксовых качалок: kTorrent и Deluge. Так что эпопея с выбором торрент-качалки для файл-сервера продолжается.</p>
<p><a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/livejournal?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="LiveJournal" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/livejournal.png" width="16" height="16" alt="LiveJournal"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F19%2Ffileserver-at-home-part-3-webui%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%203.%20WebUI"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.beerhead.ru/blog/2009/12/19/fileserver-at-home-part-3-webui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Файлопомойка. Часть 2.</title>
		<link>http://www.beerhead.ru/blog/2009/12/16/file-server-at-home-part-2/</link>
		<comments>http://www.beerhead.ru/blog/2009/12/16/file-server-at-home-part-2/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 23:18:43 +0000</pubDate>
		<dc:creator>antipod</dc:creator>
				<category><![CDATA[Красноглазие]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[файл-сервер]]></category>

		<guid isPermaLink="false">http://www.beerhead.ru/blog/?p=824</guid>
		<description><![CDATA[Продолжаю собирать нечто похожее на файловый сервер. Очередь дошла до торрент-качалки. Среди всего разнообразия остановился на rTorrent, хотя до него посматривал в сторону Transmission. Не посленюю роль сыграло то, что рторрентом можно вполне себе вменяемо управлять через консоль, есть некое подобие интерефейса, плюс богатый выбор всяческих веб-интерфейсов, которые, к слову сказать, по функциональности сильно превосходят [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-859" title="rtorrent" src="http://www.beerhead.ru/blog/wp-content/uploads/2009/12/rtorrent.JPG" alt="rtorrent" width="349" height="293" />Продолжаю собирать нечто похожее на файловый сервер. Очередь дошла до торрент-качалки. Среди всего разнообразия остановился на rTorrent, хотя до него посматривал в сторону Transmission. Не посленюю роль сыграло то, что рторрентом можно вполне себе вменяемо управлять через консоль, есть некое подобие интерефейса, плюс богатый выбор всяческих веб-интерфейсов, которые, к слову сказать, по функциональности сильно превосходят используемый в трансмиссии.</p>
<p>К делу&#8230;</p>
<p><span id="more-824"></span></p>
<p>Сразу отмечу, что в процессе установки могут потребоваться дополнительные библиотеки, установка которых в данном мане не описана. Так что как не крути, а Google &#8211; лучший друг и наставник.</p>
<p><em><strong>Установка и настройка rTorrent</strong></em></p>
<p>Сайт разработчика библиотеки libtorrent и rtorrent&#8217;a: <a href="http://libtorrent.rakshasa.no/" target="_blank">http://libtorrent.rakshasa.no/</a></p>
<p>Дя начала скачиваем последнии версии libtorrent&#8217;a b rtorrent&#8217;a (на момент написания заметки последними были 0.12.6 и 0.8.6, соответственно). Лежат здесь: <a href="http://libtorrent.rakshasa.no/downloads/" target="_blank">http://libtorrent.rakshasa.no/downloads/</a></p>
<p>Либо дедовским методом, т.е. ручками:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>libtorrent.rakshasa.no<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>libtorrent-0.12.6.tar.gz
<span style="color: #c20cb9; font-weight: bold;">wget</span>  http:<span style="color: #000000; font-weight: bold;">//</span>libtorrent.rakshasa.no<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>rtorrent-0.8.6.tar.gz</pre></div></div>

<p>В первую очередь разворачиваем libtorrent:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> zxvf  libtorrent-0.12.6.tar.gz
<span style="color: #7a0874; font-weight: bold;">cd</span> libtorrent-0.12.6.tar.gz
.<span style="color: #000000; font-weight: bold;">/</span>autogen.sh
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Во имя грядущего счастья нужно еще прикрутить XMLRPC-C (Сайт проекта: <a href="http://xmlrpc-c.sourceforge.net/" target="_blank">http://xmlrpc-c.sourceforge.net/</a>)</p>
<p>Утягиваем новенькие сорцы:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># исходники упадут в папочку xmlrpc-c</span>
<span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span>  http:<span style="color: #000000; font-weight: bold;">//</span>xmlrpc-c.svn.sourceforge.net<span style="color: #000000; font-weight: bold;">/</span>svnroot<span style="color: #000000; font-weight: bold;">/</span>xmlrpc-c<span style="color: #000000; font-weight: bold;">/</span>advanced xmlrpc-c</pre></div></div>

<p>Ну или можно просто скачать tarball <img src='http://www.beerhead.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://xmlrpc-c.svn.sourceforge.net/viewvc/xmlrpc-c/advanced.tar.gz?view=tar" target="_blank">http://xmlrpc-c.svn.sourceforge.net/viewvc/xmlrpc-c/advanced.tar.gz?view=tar</a></p>
<p>Процесс сборки и установки ничем принципиально не отличается</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr
<span style="color: #666666; font-style: italic;"># чтоб библиотечка упала куда надо, а то впоследствии конфиг rTorrent</span>
<span style="color: #666666; font-style: italic;">#ее не увидит я об этом ключе не знал, поэтому потом долго не мог понять,</span>
<span style="color: #666666; font-style: italic;"># почему конфигуратор rTorrent ее не видит пофиксилось в итоге просто</span>
<span style="color: #666666; font-style: italic;"># сначала whereis xmlrpc-c ,а потом</span>
<span style="color: #666666; font-style: italic;"># export PKG_CONFIG_PATH=/path/to/your/xmlrpc/lib</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Теперь очередь rTorrent&#8217;a:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>autogen.sh
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--with-xmlrpc-c</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>&#8211;with-xmlrpc-c &#8211; чертовски важный ключ, без него rTorrent не откроет порт прослушки для взаимодействия с WebUI.</p>
<p>Далее в каталоге юзера нужно создать файл конфигурации .rtorrent.rc</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&lt;&lt;</span>EOF <span style="color: #000000; font-weight: bold;">&gt;&gt;</span>~<span style="color: #000000; font-weight: bold;">/</span>.rtorrent.rc
port_range = <span style="color: #000000;">10000</span>-<span style="color: #000000;">10005</span>
check_hash = <span style="color: #c20cb9; font-weight: bold;">yes</span>
directory = <span style="color: #000000; font-weight: bold;">/</span>where<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>save<span style="color: #000000; font-weight: bold;">/</span>torrent<span style="color: #000000; font-weight: bold;">/</span>data
session = <span style="color: #000000; font-weight: bold;">/</span>where<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>save<span style="color: #000000; font-weight: bold;">/</span>session<span style="color: #000000; font-weight: bold;">/</span>data
<span style="color: #666666; font-style: italic;"># очень полезная опция. rtorrent ,будет мониторить папку на предмет</span>
<span style="color: #666666; font-style: italic;"># появления в ней новых торрент-файлов и автоматически ставить их</span>
<span style="color: #666666; font-style: italic;"># на закачку. Особую актуальность приобретет, когда будем</span>
<span style="color: #666666; font-style: italic;"># настраивать загрузку торрентов через RSS</span>
schedule = watch_directory,<span style="color: #000000;">5</span>,<span style="color: #000000;">5</span>,<span style="color: #007800;">load_start</span>=~<span style="color: #000000; font-weight: bold;">/</span>torrent<span style="color: #000000; font-weight: bold;">/*</span>.torrent
tos = default
upload_rate = <span style="color: #000000;">0</span>
download_rate = <span style="color: #000000;">0</span>
EOF</pre></div></div>

<p>Вот <a href="http://www.volmed.org.ru/wiki/index.php/%D0%9D%D0%B5%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9_%D1%85%D0%B5%D0%BB%D0%BF_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E_rtorrent_-_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82_torrent_%D1%81%D0%B5%D1%82%D0%B8" target="_blank">здесь</a> лежит отличный ман по конфигу на русском языку с подробными комментариями какой ключ за что отвечает. Ну и дополнительно по опциям можно подсмотреть <a href="http://ru.wikibooks.org/wiki/RTorrent" target="_blank">тут</a>.</p>
<p>Плюс нужно обязательно добавить строку:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># понадобится позже для WebUI</span>
scgi_port = 127.0.0.1:<span style="color: #000000;">5000</span></pre></div></div>

<p>Кроме того, логично предположить, что на файл-сервере не всегда будет запущена сессия юзера или подключен терминальчик по ssh. Так что процесс должен висеть в фоне и тихо, но грамотно делать свое дело и, плюс, запускаться при старте системы.</p>
<p>Для этих целей сначала установим <strong>screen</strong>. Тут я поленился собирать его из исходников, поэтому просто:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">yum <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">screen</span></pre></div></div>

<p>А дальше делаем вот такой скрипт, который гнусно скопипастен отсюда: <a href="http://www.fedoramd.org/wiki/Rtorrent">http://www.fedoramd.org/wiki/Rtorrent</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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</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: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Starting rtorrent in a screen session as daemon</span>
<span style="color: #666666; font-style: italic;"># Author: Vasile Vsx</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># chkconfig: 2345 50 01</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># description: start rtorrent detached</span>
<span style="color: #666666; font-style: italic;"># processname: rtorrent</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># source function library</span>
. <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>init.d<span style="color: #000000; font-weight: bold;">/</span>functions
&nbsp;
<span style="color: #666666; font-style: italic;"># Source networking configuration.</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> . <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network
&nbsp;
<span style="color: #666666; font-style: italic;"># Check that networking is up.</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>{NETWORKING}&quot;</span> = <span style="color: #ff0000;">&quot;no&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;">exit</span> <span style="color: #000000;">0</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>rtorrent <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        . <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>rtorrent
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> \<span style="color: #007800;">$RTORRENT_USER</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;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #007800;">RETVAL</span>=<span style="color: #000000;">0</span>
&nbsp;
start<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;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Starting rtorrent: &quot;</span>
        daemon <span style="color: #660033;">--user</span> \<span style="color: #007800;">$RTORRENT_USER</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">screen</span> <span style="color: #660033;">-dmS</span> rtorrent <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>rtorrent \<span style="color: #007800;">$OPTIONS</span>
        <span style="color: #007800;">RETVAL</span>=\<span style="color: #007800;">$?</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
stop<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;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;Stopping rtorrent: &quot;</span>
        killproc rtorrent <span style="color: #660033;">-INT</span>
        <span style="color: #007800;">RETVAL</span>=\<span style="color: #007800;">$?</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
restart<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>
        stop
        start
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\$</span>1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
  start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
  stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        <span style="color: #000000; font-weight: bold;">;;</span>
  restart<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        restart
        <span style="color: #000000; font-weight: bold;">;;</span>
  status<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        status rtorrent
        <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: <span style="color: #000099; font-weight: bold;">\$</span>0 {start|stop|status|restart}&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #007800;">$RETVAL</span></pre></td></tr></table></div>

<p><strong>Отдельно обращаю внимание на символ &#8216;\&#8217;</strong>. <strong>В конечном скрипте его уже не должно быть, поэтому копипаст в текстовый файл подразумевает удаление &#8216;\&#8217; ручками.</strong></p>
<p>Выше исходник, а ниже, соответственно куда его сохранять и что с этим файлом потом делать.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">touch</span> <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>init.d<span style="color: #000000; font-weight: bold;">/</span>rtorrent
<span style="color: #7a0874; font-weight: bold;">cd</span> <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>init.d<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x rtorrent
chkconfig <span style="color: #660033;">--add</span> rtorrent</pre></div></div>

<p><strong></strong>Плюс определяем юзера из под которого будез запускаться rTorrent. Никто конечно не запрещает указать root&#8217;a, но это не изящно. А вот на что нужно обратить внимание, так это на то, чтоб у этого юзера были права на чтение\запись, указанных в конфиге rTorrent&#8217;a папок. И еще, rTorrent будет искать конфиг в домашней паки юзера из под которого он запущен, поэтому целесообразно запускать его от того пользователя в чьей папке лежит конфиг.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&lt;&lt;</span>EOF <span style="color: #000000; font-weight: bold;">&gt;&gt;/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>rtorrent
<span style="color: #007800;">RTORRENT_USER</span>=username
EOF</pre></div></div>

<p>Запуск остановка rTorrent&#8217;a осуществляется командами:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>service rtorrent start
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>service rtorrent stop</pre></div></div>

<p>Для подключения к сессии rTorrent&#8217;a: <strong>screen -r</strong></p>
<p>Выход из сессии осуществляется комбинацией клавиш СTRL+A D.</p>
<p>На данном этапе установку rTorrent&#8217;a можно считать завершенной. Софтина будет весело перекидываться пакетами с другими пирами, при этом не нагружая систему. Лепота.</p>
<p><em><strong>RSS Downloader</strong></em></p>
<p>Наличие действующего rTorrent&#8217;a &#8211; это конечно хорошо, но немного автоматизации не помешает. Избалованный RSS загрузчиком uTorrent, захотел что-то подобное и здесь. На выбор были предложены разные скрипты в хомяке автора rTorrrent&#8217;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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># This is released under the GPL</span>
<span style="color: #666666; font-style: italic;"># A tvrss script by chochem, a reworking of ughknight's (http://ubuntuforums.org/showthread.php?t=292386&amp;amp;amp;page=2)</span>
<span style="color: #666666; font-style: italic;"># Functions much like ughknights, except that it checks the feed against a list</span>
<span style="color: #666666; font-style: italic;"># of already downloaded torrent files, then gets all the new ones.</span>
<span style="color: #666666; font-style: italic;"># Also added functions are error checking and removing old unused torrent files</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># REQUIRES:</span>
<span style="color: #666666; font-style: italic;"># Text files containing a single feed url from tvrss.net (keep these in the 'tvrssdir' folder)</span>
<span style="color: #666666; font-style: italic;"># &quot;Xmlstarlet&quot; to parse the feed (to get it, enter: &quot;sudo apt-get install xmlstarlet&quot;)</span>
<span style="color: #666666; font-style: italic;"># A torrent client that lets you use a &quot;watch&quot; folder (torrent files in said folder are automatically loaded)</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Please set the two directory variables and the waiting period under 'SETTINGS' to reflect your setup.</span>
<span style="color: #666666; font-style: italic;"># The script will make the directories if they do not already exist.</span>
<span style="color: #666666; font-style: italic;"># Though care has been taken to protect filenames and locations containing spaces, they should</span>
<span style="color: #666666; font-style: italic;"># still be avoided in the directory and feed file names if at all possible.</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SETTINGS - CUSTOMIZE ACCORDING TO YOUR SETUP</span>
<span style="color: #666666; font-style: italic;"># tvrssdir is the directory in which you put the files containing feed urls (and tvrss keeps its log and temp files)</span>
<span style="color: #007800;">tvrssdir</span>=~<span style="color: #000000; font-weight: bold;">/</span>tvrss
<span style="color: #666666; font-style: italic;"># watchdir is the directory your torrent client checks for new torrents to load automatically</span>
<span style="color: #007800;">watchdir</span>=~<span style="color: #000000; font-weight: bold;">/</span>rtorrentwatch
<span style="color: #666666; font-style: italic;"># waitingperiod is the time in hours between checks for new torrents (accepts decimals, e.g. 0.25 for 15 minutes)</span>
<span style="color: #007800;">waitingperiod</span>=<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;"># maxage is used in a routine that deletes old torrent files from a show subscription. Torrents more than this number of months old gets deleted.</span>
<span style="color: #007800;">maxage</span>=<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;"># END OF SETTINGS</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">do</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tvrssdir</span>&quot;</span> <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;">mkdir</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tvrssdir</span>&quot;</span>; <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$watchdir</span>&quot;</span> <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;">mkdir</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$watchdir</span>&quot;</span>; <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># For-each-tvshow-subscription-do loop starts here</span>
<span style="color: #000000; font-weight: bold;">for</span> tvshow <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${tvrssdir}</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">do</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Setting temporary files and variables</span>
<span style="color: #007800;">newtorrentscount</span>=<span style="color: #000000;">0</span>
<span style="color: #007800;">feedurl</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${tvrssdir}</span>/<span style="color: #007800;">${tvshow}</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">tmpxml</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${tvrssdir}</span>/.tmpxml&quot;</span>
<span style="color: #007800;">oldurllist</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${tvrssdir}</span>/.<span style="color: #007800;">${tvshow}</span>-oldurllist&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Get the rss feed</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Working on the show <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$tvshow</span><span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Getting the rss feed...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-O</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$feedurl</span>&quot;</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">&amp;</span>amp;amp;<span style="color: #000000; font-weight: bold;">&amp;</span>amp;amp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Feed file downloaded. Parsing file for new torrents...&quot;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;The feed <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$tvshow</span><span style="color: #000099; font-weight: bold;">\&quot;</span> at <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$feedurl</span><span style="color: #000099; font-weight: bold;">\&quot;</span> could not be downloaded.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>\033[7mCheck the address and/or your connection.\033[0m&quot;</span>; <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># On condition that wget got hold of a file...</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: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Parse the feed file for torrent links</span>
<span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$oldurllist</span>&quot;</span>
<span style="color: #007800;">oldurlstring</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$oldurllist</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">currenturlstring</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>xmlstarlet sel <span style="color: #660033;">-t</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;/rss/channel/item/link&quot;</span> <span style="color: #660033;">-v</span> <span style="color: #ff0000;">&quot;concat(.,' ')&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Check for no results (this covers an empty feed as well as a parsing error)</span>
<span style="color: #000000; font-weight: bold;">if</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;">$currenturlstring</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;">echo</span>  <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>\033[7mA file has been downloaded but parsing it resulted in no URLs.\033[0m&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Either the address in the <span style="color: #007800;">${tvrssdir}</span>/<span style="color: #007800;">${tvshow}</span> file does not refer to a tvrss.net feed or the feed is empty.&quot;</span>; <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #666666; font-style: italic;"># Check for URLs not in the log (the show's oldurllist), get new ones, add the entry to the log and inform user</span>
<span style="color: #000000; font-weight: bold;">for</span> url <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$currenturlstring</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">do</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: #000000; font-weight: bold;">!</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$oldurlstring</span>&quot;</span> =~ <span style="color: #ff0000;">&quot;<span style="color: #007800;">$url</span>&quot;</span> <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: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$url</span> is new. Getting torrent file...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-O</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${watchdir}</span>/<span style="color: #007800;">${tvshow}</span>_<span style="color: #007800;">$(date +%y%m%e)</span>_<span style="color: #007800;">$(date +%H%M%S%N)</span>.torrent&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$url</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$url</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$oldurllist</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">let</span> <span style="color: #ff0000;">&quot;newtorrentscount++&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Evaluate / user output</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;">$newtorrentscount</span>&quot;</span> <span style="color: #660033;">-gt</span> <span style="color: #000000;">0</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;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>\033[7mFound <span style="color: #007800;">${newtorrentscount}</span> new torrent(s) for <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$tvshow</span><span style="color: #000099; font-weight: bold;">\&quot;</span>\033[0m&quot;</span>; <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>\033[7mNo new torrents for <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$tvshow</span><span style="color: #000099; font-weight: bold;">\&quot;</span>\033[0m&quot;</span>; <span style="color: #7a0874; font-weight: bold;">echo</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># No results condition ends...</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Cleaning up (remove tmpxml)</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># wget condition ends...</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Check for old torrent files for this show and remove any older than two months</span>
<span style="color: #007800;">now</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>s<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">for</span> filename <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #800000;">${watchdir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${tvshow}</span>_<span style="color: #000000; font-weight: bold;">*</span>.torrent <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #007800;">birthday</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>s <span style="color: #660033;">-r</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${filename}</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">agesecs</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$now</span>-<span style="color: #007800;">$birthday</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">agemonths</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$agesecs</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2629743</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$agemonths</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$maxage</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;">echo</span> <span style="color: #ff0000;">&quot;Cleaning up old torrent file for <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">$tvshow</span><span style="color: #000099; font-weight: bold;">\&quot;</span>...&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$filename</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># For-each-tvshow-subscription-do loop ends...</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #666666; font-style: italic;">########ANTIPOD EDIT#######</span>
<span style="color: #666666; font-style: italic;">#Added this line too to work proper with real Cron.</span>
<span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #666666; font-style: italic;"># Fake cron is the below 2 commands</span>
<span style="color: #666666; font-style: italic;"># I've commented the next 2 strings to make this script run only once,</span>
<span style="color: #666666; font-style: italic;"># because i'm going to use a real cron job and i don't need this loop.</span>
<span style="color: #666666; font-style: italic;"># echo &quot;Sleeping for ${waitingperiod} hour(s)...&quot;</span>
<span style="color: #666666; font-style: italic;"># sleep ${waitingperiod}h</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Neverending loop ends...</span>
<span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></td></tr></table></div>

<p>Чтобы все это творчество заработало нужен XML-парсер XMLStarlet, ему в свою очередь для жизнедеятельности требуются libxml2, libxslt и libiconv. Ленимся и ставим все это барахло из репозитория</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">yum <span style="color: #c20cb9; font-weight: bold;">install</span> libxml2 libxslt libiconv xmlstarlet</pre></div></div>

<p>В мане по развертыванию скрипта было сказано, что строку 59:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> <span style="color: #007800;">currenturlstring</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>xmlstarlet sel <span style="color: #660033;">-t</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;/rss/channel/item/link&quot;</span> <span style="color: #660033;">-v</span> <span style="color: #ff0000;">&quot;concat(.,' ')&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Нужно заменить на:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">currenturlstring</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>xml sel <span style="color: #660033;">-t</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;/rss/channel/item/link&quot;</span> <span style="color: #660033;">-v</span> <span style="color: #ff0000;">&quot;concat(.,' ')&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$tmpxml</span>&quot;</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Собственно говоря, разница исключительно в команде, которая этот старлет запускает, у автора мана она почему-то была xml, у меня так и была xmlstarlet. Так что нужно тупо тыркнуться в консоль и выяснить на какую кличку этот парсер отзывается.</p>
<p>Что до настройки самого скрипта, то с ним все предельно ясно. Есть четыре переменные, их и редактируем.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># здесть лежат файлы со ссылками на rss-фиды</span>
<span style="color: #007800;">tvrssdir</span>=~<span style="color: #000000; font-weight: bold;">/</span>tvrss
<span style="color: #666666; font-style: italic;"># папка, которая мониторится rtorrent'ом, т.е. туда будут падать новые торренты</span>
<span style="color: #007800;">watchdir</span>=~<span style="color: #000000; font-weight: bold;">/</span>rtorrentwatch
<span style="color: #666666; font-style: italic;"># интервал проверки фидов (можно использовать десятые доли,</span>
<span style="color: #666666; font-style: italic;"># например 0.25 - 15 минут)</span>
<span style="color: #007800;">waitingperiod</span>=<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;"># удаление торрентов старше определенного числа месяцев</span>
<span style="color: #007800;">maxage</span>=<span style="color: #000000;">1</span></pre></div></div>

<p>Плюс в папке <strong>tvrss </strong>текстовые файлы со ссылкой на rss-фид:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># cd /your/tvrss/dir</span>
<span style="color: #666666; font-style: italic;"># echo &quot;url-of-your-feed&quot; &amp;gt; NameOfTheShow</span></pre></div></div>

<p>Сам скрипт я сохранил в <strong>/usr/sbin</strong> и сделал <strong>chmod a+x  /usr/sbin/rss_downloader</strong></p>
<p>Последний штрих &#8211; создание сценария cron, чтоб вся эта ерунда запускалась каждые 10 минут.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&lt;&lt;</span>EOF <span style="color: #000000; font-weight: bold;">&gt;&gt;/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>rss_downloader_cron
<span style="color: #007800;">SHELL</span>=<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span>
<span style="color: #007800;">MAILTO</span>=username
<span style="color: #000000; font-weight: bold;">*/</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; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>rss_downloader
EOF</pre></div></div>

<p>Подсовываю этот сценарий cron&#8217;y:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">crontab <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>rss_downloader_cron</pre></div></div>

<p>Казалось бы, что все хорошо, но есть одна проблема, скрипт парсит фид и выдирает оттуда абсолютно все торренты, то есть никакой фильтрацией и не пахнет. Это конечно не есть хорошо. В очередной раз пойдя на поводу у лени для обработки исходных фидов с трэкеров воспользовался сервисом <a href="http://pipes.yahoo.com" target="_blank">Yahoo Pipes</a>.</p>
<p>Про установку и настройку WebUI напишу в третьей части. Поспать бы&#8230;</p>
<p><a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Blogger Post" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/livejournal?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="LiveJournal" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/livejournal.png" width="16" height="16" alt="LiveJournal"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Twitter" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Reddit" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202." title="Delicious" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F16%2Ffile-server-at-home-part-2%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%202."><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.beerhead.ru/blog/2009/12/16/file-server-at-home-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Файлопомойка. Часть 1.</title>
		<link>http://www.beerhead.ru/blog/2009/12/14/%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b9%d0%ba%d0%b0-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/</link>
		<comments>http://www.beerhead.ru/blog/2009/12/14/%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b9%d0%ba%d0%b0-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 06:00:24 +0000</pubDate>
		<dc:creator>antipod</dc:creator>
				<category><![CDATA[Красноглазие]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[файл-сервер]]></category>

		<guid isPermaLink="false">http://www.beerhead.ru/blog/?p=818</guid>
		<description><![CDATA[Решил собрать себе небольшой файл-сервер. В качестве операционки остановился на Fedora 12 (никаких веских аргументов в пользу нее у меня нет, просто под руку попался образ для VMWare). Хотелось конечно обойтись малой кровью и установить FreeNAS, но после чтения манов и ЧАВО было установлено, что NTFS она понимает в режиме &#8216;только для чтения&#8217;, что меня [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="chieftec-case" src="http://www.bytesizedreviews.com/arnie/quiet/chieftec.jpg" alt="" width="199" height="295" />Решил собрать себе небольшой файл-сервер. В качестве операционки остановился на Fedora 12 (никаких веских аргументов в пользу нее у меня нет, просто под руку попался образ для VMWare). Хотелось конечно обойтись малой кровью и установить FreeNAS, но после чтения манов и ЧАВО было установлено, что NTFS она понимает в режиме &#8216;только для чтения&#8217;, что меня никак не устраивает, т.к. в наличии уже имеется железный рейд на 2ТБ в системе NTFS и никакого желания конвертировать его в другую файловую систему у меня нет.<br />
Для себя определил следующие требования к будущему файл-серверу:</p>
<ul>
<li>работа с виндовыми шарами</li>
<li>торрент-качалка с WebUI и RSS</li>
<li>фтп-сервер</li>
<li><em>загорелся идеей сделать еще потоковое вещание через VLC<br />
</em></li>
</ul>
<p><span id="more-818"></span></p>
<p>С виндовыми шарами все понятно, никаких альтернатив нет. Нужно ставить Samba. Собирать из исходников не стал, поставил пакет непосредственно из репозитория (<em>yum install samba</em>).</p>
<p><strong>Крик души: &laquo;Будь они прокляты эти виндовые шары!!&raquo; </strong></p>
<p>Вообще с радостью обошелся бы и без них. Они и под виндой то не всегда нормально работают, еще не хватало наживать себе проблемы под линуксом. Единственный аргумент в пользу &#8211; доступ к фильмам, музыке и прочему контенту с основной машины из сети, без необходимости скачивать барахло по фтп.<br />
По предварительным прикидкам много шар мне совсем не нужно, достаточно одной с полным доступом на чтение, запись для гостя. В любом случае сервант будет находиться за роутером и никакого доступа к портам netbios предусмотрено не будет.<br />
Для удобства конфигурирования Samba можно поставить админский веб интерфейс SWAT (<em>yum install samba-swat)</em>.</p>
<p>В итоге после воскуривания манов получился следующий конфиг:</p>
<blockquote><p>[global]<br />
workgroup = ANTIWORLD<br />
server string = Fileserver<br />
bind interfaces only = yes<br />
interfaces = eth0 127.0.0.1 192.168.0.<br />
hosts deny = ALL<br />
hosts allow = 127.0.0.1 192.168.0.<br />
security = SHARE<br />
encrypt passwords = yes<br />
smb passwd file = /etc/samba/smbpasswd<br />
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192<br />
local master = yes<br />
preferred master = yes<br />
domain master = no<br />
wins support = no<br />
dns proxy = no<br />
guest ok = yes<br />
guest account = nobody<br />
unix charset = utf8<br />
dos charset = cp1251<br />
display charset = cp1251</p>
<p>log file = /var/log/samba/log.smbd<br />
max log size = 100<br />
debug level = 5</p>
<p>[Public]<br />
comment = Public Folder<br />
path = /var/ftp<br />
writable = yes<br />
guest ok = yes<br />
create mask = 0666<br />
directory mask = 0777<br />
read only = no</p></blockquote>
<p>На 100% правильность он, возможно не претендует, но со своей задачей вполне справляется. Samba крутится, шара доступна.<br />
При поднятии Samba столкнулся с единственной проблемой. Сервант пинговался, но доступа к шаре не было, net view сервак не видел. Оказалось, что встроенный фаервол прибивал все пакеты на eth0 кроме пингов. Настроил фаер так, чтобы пропускать все соединения на eth0 и все заиграло. Понятно, что это не секьюрно, но, как уже говорил, помойка будет стоять за роутером.</p>
<p><em>(Продолжение следует&#8230;)</em></p>
<p><a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Blogger Post" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/livejournal?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="LiveJournal" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/livejournal.png" width="16" height="16" alt="LiveJournal"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Twitter" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Reddit" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201." title="Delicious" rel="nofollow" target="_blank"><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.beerhead.ru%2Fblog%2F2009%2F12%2F14%2F%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d0%25b9%25d0%25ba%25d0%25b0-%25d1%2587%25d0%25b0%25d1%2581%25d1%2582%25d1%258c-1%2F&amp;linkname=%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%BF%D0%BE%D0%BC%D0%BE%D0%B9%D0%BA%D0%B0.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201."><img src="http://www.beerhead.ru/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.beerhead.ru/blog/2009/12/14/%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b9%d0%ba%d0%b0-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
