<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>OpenSource в заметках</title>
	
	<link>http://www.ashep.org</link>
	<description>Путь к пониманию</description>
	<lastBuildDate>Fri, 09 Mar 2012 07:05:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ashep/NotesAboutOSS" /><feedburner:info uri="ashep/notesaboutoss" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ashep/NotesAboutOSS</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Графические Git-клиенты</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/2X1-YoQeoEA/</link>
		<comments>http://www.ashep.org/2012/graficheskie-git-klienty/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 06:40:17 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[giggle]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[git-cola]]></category>
		<category><![CDATA[git-gui]]></category>
		<category><![CDATA[gitg]]></category>
		<category><![CDATA[gitk]]></category>
		<category><![CDATA[qgit]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2802</guid>
		<description><![CDATA[В сегодняшней заметке небольшая подборка графических фронтэндов для Git. Никаких подробных мануалов. Только ссылки, краткие описания и немножко скриншотов. git-gui Одна из двух официально-поставляемых вместе с Git графических утилит, созданных с использованием Tcl/Tk. Позволяет управлять коммитами, ветками и удалёнными репозиториями. gitk Вторая часть официального графического инструментария Git. Позволяет подробно просматривать историю репозитория, включая графическую визуализацию [...]]]></description>
			<content:encoded><![CDATA[<p>В сегодняшней заметке небольшая подборка графических фронтэндов для <a href="http://www.ashep.org/tag/git">Git</a>. Никаких подробных мануалов. Только ссылки, краткие описания и немножко скриншотов.</p>
<p><img class="aligncenter size-full wp-image-2803" title="Git" src="http://www.ashep.org/wp-content/uploads/2012/03/Git-Gitweb-Repo.jpg" alt="" width="250" height="213" /><br />
<span id="more-2802"></span>
</p>
<h3>git-gui</h3>
<p>Одна из двух официально-поставляемых вместе с Git графических утилит, созданных с использованием Tcl/Tk. Позволяет управлять коммитами, ветками и удалёнными репозиториями.</p>
<p><img class="aligncenter size-full wp-image-2806" title="git-gui" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-01.png" alt="" width="600" height="312" /></p>
<h3>gitk</h3>
<p>Вторая часть официального графического инструментария Git. Позволяет подробно просматривать историю репозитория, включая графическую визуализацию ветвления.</p>
<h3><a href="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-02.png"><img class="aligncenter size-thumbnail wp-image-2808" title="gitk" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-02-600x512.png" alt="" width="600" height="512" /></a>Giggle</h3>
<p><a href="https://live.gnome.org/giggle">Giggle</a> функционально схож с <strong>gitk</strong>, имея при этом более симпатичный GUI. Позволяет просматривать историю изменения каждого файла, графически визуализирует ветвление.</p>
<p><a href="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-03.png"><img class="aligncenter size-thumbnail wp-image-2809" title="Giggle" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-03-600x450.png" alt="" width="600" height="450" /></a></p>
<h3>Git Cola</h3>
<p><a href="http://git-cola.github.com">Git Cola</a> предлагает функциональность схожую с <strong>git-gui</strong>.</p>
<p><a href="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-04.png"><img class="aligncenter size-thumbnail wp-image-2810" title="Git Cola" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-04-600x436.png" alt="" width="600" height="436" /></a></p>
<h3>gitg</h3>
<p><a href="http://git.gnome.org/browse/gitg/">gitg</a> предоставляет возможность как просмотра истории репозитория, так и управления коммитами. Просмотр истории реализован похожим на <strong>gitk</strong> и <strong>giggle</strong> образом. Дополнительно предлагает графическое представление количества сделанных изменений. Управление коммитами похоже на то, как это реализовано в <strong>git-gui</strong>, за исключением некоторых функций.</p>
<p><a href="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-05.png"><img class="aligncenter size-thumbnail wp-image-2812" title="gitg" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-05-600x489.png" alt="" width="600" height="489" /></a></p>
<p>QGit</p>
<p><a href="http://sourceforge.net/projects/qgit/">QGit</a> предлагает функциональность gitk, используя интерфейс построенный на базе QT.</p>
<p><a href="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-06.png"><img class="aligncenter size-thumbnail wp-image-2813" title="QGit" src="http://www.ashep.org/wp-content/uploads/2012/03/git-gui-06-600x465.png" alt="" width="600" height="465" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/graficheskie-git-klienty/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/graficheskie-git-klienty/</feedburner:origLink></item>
		<item>
		<title>Работа с архивами rdiff-backup</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/nIKCQYNQ4Dg/</link>
		<comments>http://www.ashep.org/2012/rabota-s-arxivami-rdiff-backup/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 23:45:43 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Система]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[rdiff-backup]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2793</guid>
		<description><![CDATA[В предыдущей статье мы рассмотрели основные моменты использования утилиты rdiff-backup для резервного копирования данных. Сегодня предлагаю познакомиться с возможностями, который утилита предлагает для восстановления данных из резервных копий, а также получения информации о них. Поиск файлов Прежде, чем вы приступите к восстановлению данных, вы, как правило, знаете имена нужных файлов или хотя бы их части. [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://www.ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/">предыдущей статье</a> мы рассмотрели основные моменты использования утилиты <strong>rdiff-backup</strong> для резервного копирования данных. Сегодня предлагаю познакомиться с возможностями, который утилита предлагает для восстановления данных из резервных копий, а также получения информации о них.</p>
<p><img class="aligncenter size-full wp-image-2799" title="Backup_center_icon" src="http://www.ashep.org/wp-content/uploads/2012/03/Backup_center_icon.png" alt="" width="256" height="256" /><br />
<span id="more-2793"></span>
</p>
<h3>Поиск файлов</h3>
<p>Прежде, чем вы приступите к восстановлению данных, вы, как правило, знаете имена нужных файлов или хотя бы их части. rdiff-backup в своих архивах хранит файлы, не изменяя их имён, поэтому для того, чтобы определить наличие/отсутствие файла в архиве, вы можете использовать традиционные UNIX-утилиты, например <a href="http://www.ashep.org/tag/find">find</a>. Например:</p>
<pre>$ find /media/backups/var/log -iname 'messages*'
/media/backups/var/log/messages.2.gz
/media/backups/var/log/messages.1
/media/backups/var/log/messages.3.gz
/media/backups/var/log/messages
/media/backups/var/log/messages.4.gz
/media/backups/var/log/rdiff-backup-data/increments/messages.2012-03-07T00:02:17Z.diff.gz
/media/backups/var/log/rdiff-backup-data/increments/messages.2012-03-06T02:42:01Z.diff.gz</pre>
<h3>Обзор инкрементов</h3>
<p>Поскольку rdiff-backup выполняет инкрементное копирование, при регулярном архивировании часто изменявшиеся в прошлом файлы будут иметь несколько версий. Чтобы получить информацию об имеющихся в архиве инкрементах файлов/каталогов, воспользуйтесь ключом <strong>--list-increments</strong>:</p>
<pre>$ rdiff-backup --list-increments /media/backups/var/log
Found 2 increments:
    increments.2012-03-06T02:42:01Z.dir   Tue Mar  6 02:42:01 2012
    increments.2012-03-07T00:02:17Z.dir   Wed Mar  7 00:02:17 2012
Current mirror: Wed Mar  7 20:17:18 2012</pre>
<p>Как видим на примере, каталог /media/backups/var/log имеет две предыдущие версии версии (2 increments) и одну текущую (current mirror).</p>
<h3>Форматы времени</h3>
<p>Прежде, чем рассматривать дальнейшие функции rdiff-backup, необходимо понимать, как утилита понимает штампы времени. Здесь всё достаточно просто. Определять время в rdiff-backup можно следующими способами:</p>
<ul>
<li>при помощи слова <strong>&laquo;now&raquo;</strong>, которое является синонимом текущего времени;</li>
<li>используя целое число, определяющее время в формате <a href="http://ru.wikipedia.org/wiki/UNIX-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F">UNIX time</a>;</li>
<li>при помощи строки в формате, предложенном в <a href="http://www.w3.org/TR/NOTE-datetime">W3 Date and Time Formats</a>, например &laquo;2012-01-25T07:00:00+02:00&raquo;;</li>
<li>используя временные интервалы и суффиксы  <strong>s, m, h, D, W, M</strong> и <strong>Y</strong>, соответствующие секундам, минутам, часам, дням, неделям, месяцам и годам. В этом случае значение времени вычисляется путём вычитания указанного интервала из текущего времени. Также, вы можете комбинировать интервалы, например: &laquo;1h25m&raquo; или &laquo;5W3D&raquo;. Только не забывайте, что при использовании этого формата rdiff-backup &laquo;думает&raquo;, что в любом месяце ровно 30 дней, а в любом году ровно 365 дней;</li>
<li>при помощи даты в формате <strong>YYYY/MM/DD</strong>, <strong>YYYY-MM-DD</strong>,<strong> MM/DD/YYYY</strong>, или <strong>MM-DD-YYYY</strong> определяющей  полночь указанной даты относительно текущего часового пояса;</li>
<li>используя целое число с суффиксом <strong>&laquo;B&raquo;</strong>, которое определяет количество &laquo;сессий назад&raquo; rdiff-backup. Например, &laquo;0B&raquo; означает время создания последнего архива, а &laquo;5B&raquo; означает 5й по счёту архив относительно последнего.</li>
</ul>
<h3>Получение списка изменявшихся файлов</h3>
<p>Часто бывает необходимо получить список файлов, которые модифицировались за определённый промежуток времени. Например, следующая команда выведет список файлов, которые менялись за последние два дня:</p>
<pre>$ rdiff-backup --list-changed-since 2D /media/backups/etc</pre>
<h3>Получение списка файлов на определённый момент времени</h3>
<p>Следующая команда выводит список всех файлов в архиве, которые в нём содержались 3 версии назад, включая также файлы, которые были удалены в последующих версиях:</p>
<pre>$ rdiff-backup --list-at-time 3B /media/backups/etc</pre>
<h3>Сравнение архива и текущего состояния файлов</h3>
<p>Следующая команда выведет все файлы, которые были изменены в каталоге /etc с момента его последней архивации в каталог /media/backups/etc:</p>
<pre>$ rdiff-backup --compare /etc /media/backups/etc</pre>
<p>То же самое, но с указанием версии архива:</p>
<pre>$ rdiff-backup --compare-at-time 3B /etc /media/backups/etc</pre>
<h3>Получение статистической информации об архиве</h3>
<p>После завершения сессий архивации rdiff-backup создаёт в каталоге архива специальный файл <strong>rdiff-backup-data/session_statistics*</strong>, содержащий разнообразную статистическую информацию о результатах сессии. Утилита предлагает специальную опцию <strong>--calculate-average</strong>, при помощи которой вы можете получить общее представление об архиве, например:</p>
<pre>$ rdiff-backup --calculate-average /media/backups/etc/rdiff-backup-data/session_statistics*
--------------[ Average of 4 stat files ]--------------
ElapsedTime 7.49 (7.49 seconds)
SourceFiles 2177.0
SourceFileSize 21157087.25 (20.2 MB)
MirrorFiles 1633.0
MirrorFileSize 15826670.75 (15.1 MB)
NewFiles 544.0
NewFileSize 5264292.0 (5.02 MB)
DeletedFiles 0.0
DeletedFileSize 0.0 (0 bytes)
ChangedFiles 36.5
ChangedSourceSize 10237590.5 (9.76 MB)
ChangedMirrorSize 10171466.0 (9.70 MB)
IncrementFiles 36.25
IncrementFileSize 6761.75 (6.60 KB)
TotalDestinationSizeChange 5337178.25 (5.09 MB)
Errors 0
-------------------------------------------------------</pre>
<h3>Восстановление данных их архива</h3>
<p>Поскольку rdiff-backup хранит файлы &laquo;как есть&raquo;, то в случае нечаянного удаления нужного каталога/файла вы можете просто скопировать его обратно из архива обычной командой <strong>cp</strong>:</p>
<pre>$ cp -a /media/backups/etc/nginx /etc/nginx</pre>
<p>В более сложных ситуациях вам уже понадобится утилита rdiff-backup. Следующая команда выполняет восстановление данных из из последней версии архива, расположенного на удалённой системе:</p>
<pre>$ rdiff-backup --restore-as-of now backup@my-server.com::/var/backups/etc /etc</pre>
<p>Или то же самое, с короткой версией опции:</p>
<pre>$ rdiff-backup -r now backup@my-server.com::/var/backups/etc /etc</pre>
<p>Естественно, если вам нужна версия архива постарше, вам необходимо это указать:</p>
<pre>$ rdiff-backup -r 2012-03-06T02:37:21 backup@my-server.com::/var/backups/etc /etc</pre>
<p>или</p>
<pre>$ rdiff-backup -r 3B backup@my-server.com::/var/backups/etc /etc</pre>
<p>Если же вам нужно восстановить отдельный файл, то укажите нужную версию из каталога increments:</p>
<pre>$ rdiff-backup /media/backups/var/log/rdiff-backup-data/increments/messages.2012-03-06T02:42:01Z.diff.gz ~/restored/messages</pre>
<h3>Удаление старых версий</h3>
<p>При всей своей экономичности, утилита rdiff-backup не может бесконечно долго хранить инкрементные версии архивов хотя бы потому, что место на диске не бесконечно. Да и, как правило, иногда нет особого смысла хранить все изменения за последние 20 лет. На этот случай у rdiff-backup имеется специальная опция <strong>--remove-older-than</strong>, которая указывает программе вычищать устаревшие данные, которые старше определённого времени. Например, мне вполне достаточно хранить изменения за последний месяц:</p>
<pre>$ rdiff-backup --remove-older-than 1M /media/backups/etc/</pre>
<p>Кому-то может показаться удобным хранить данные лишь последних N сессий:</p>
<pre>$ rdiff-backup --remove-older-than 20B /media/backups/etc/</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/rabota-s-arxivami-rdiff-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/rabota-s-arxivami-rdiff-backup/</feedburner:origLink></item>
		<item>
		<title>Резервное копирование при помощи rdiff-backup</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/GjKiUJnJTtw/</link>
		<comments>http://www.ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 04:22:58 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Система]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[rdiff]]></category>
		<category><![CDATA[rdiff-backup]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2782</guid>
		<description><![CDATA[Способов резервного копирования файлов несчётное количество, как, впрочем. и инструментов для его осуществления. Сегодняшней заметкой я хочу обратить ваше внимание на довольно популярную утилиту инкрементного копирования под названием rdiff-backup. rdiff-backup&#160;&#8212; приложение написанное на Python, обладает большой гибкостью и довольно простое в обращении. Может работать как локально, так и поверх rsync/ssh, предоставляя возможность оптимально использовать каналы [...]]]></description>
			<content:encoded><![CDATA[<p>Способов <a href="http://www.ashep.org/tag/backup">резервного копирования</a> файлов несчётное количество, как, впрочем. и инструментов для его осуществления. Сегодняшней заметкой я хочу обратить ваше внимание на довольно популярную утилиту инкрементного копирования под названием <strong>rdiff-backup</strong>.</p>
<p><img class="aligncenter size-full wp-image-2789" title="Backup" src="http://www.ashep.org/wp-content/uploads/2012/03/Drive-Backup-icon.png" alt="" width="256" height="256" /><br />
<span id="more-2782"></span>
<p><a href="http://www.nongnu.org/rdiff-backup">rdiff-backup</a>&nbsp;&mdash; приложение написанное на Python, обладает большой гибкостью и довольно простое в обращении. Может работать как локально, так и поверх <a href="http://www.ashep.org/tag/rsync">rsync</a>/<a href="http://www.ashep.org/tag/ssh">ssh</a>, предоставляя возможность оптимально использовать каналы передачи данных в случае удалённых бекапов. Среди основных плюшек rdiff-backup можно выделить следующие возможности.</p>
<ul>
<li><strong>Инкрементное копирование</strong>, позволяющее восстановить любой файл, удалённый до последней операции бэкапа. То есть, вы можете восстановить файл, который был удалён хоть год назад, при том что резервное копирование у вас выполняется, скажем, два раза в день.</li>
<li><strong>Сохранение всей информации о файлах</strong>. Восстанавливая файл из архива rdiff-backup, вы получите его в таком виде, в каком он был на момент занесения в архив, включая таймштампы, права доступа, владельцев и т. п. Помимо всего прочего, rdiff-backup корректно управляется с жёсткими и символическими ссылками, файлами устройств и FIFO. При этом утилита корректно будет вести себя в различных операционных системах, использующих разные типы файловых систем.</li>
<li><strong>Эффективное использование дискового пространства.</strong> Используя алгоритм rsync, утилита rdiff-backup сохраняет только изменения файлов, а не все файлы целиком. То есть, ваша БД весом в пару десятков гигабайт не будет каждый раз копироваться целиком, съедая пространство на диске. Будут копироваться только изменения.</li>
<li><strong>Эффективное использование каналов передачи данных</strong> в случае сетевых бэкапов само-собой вытекает из предыдущего пункта.</li>
<li><strong>&laquo;Прозрачное&raquo;</strong> хранение данных. rdiff-backup хранит бэкапы в точно таком же виде, в каком файлы находились на диске, не прибегая ни к каким хитроумным форматам. То есть, например, если вам понадобиться восстановить последний бэкап, не используя при этом rdiff-backup, вы сможете просто скопировать нужные файлы обратно на место.</li>
<li><strong>Автоматическое определение типов файловых систем</strong> позволяет утилите избавить вас от полного понимания всех тонкостей её настройки в зависимости от типа используемых ФС и ОС.</li>
</ul>
<h3>Установка</h3>
<p>В современных Linux-дистрибутивах rdiff-backup имеется в репозиториях, так что с её установкой у вас не должно возникнуть проблем. В случае же, если вы используете что-то другое, <a href="http://www.nongnu.org/rdiff-backup/index.html">посетите</a> главную страницу проекта, с которой можно скачать исходные коды.</p>
<h3>Локальное резервное копирование</h3>
<p>Под &laquo;локальным&raquo; или &laquo;удалённым&raquo; здесь и далее понимается получатель резервной копии. Сперва давайте рассмотрим самый простой способ запуска утилиты:</p>
<pre>$ rdiff-backup &lt;источник&gt; &lt;получатель&gt;</pre>
<p>Эта команда, как понятно из описания, выполнит резервное копирование из <strong>&lt;источник&gt;</strong> в <strong>&lt;получатель&gt;</strong>.  Обратите внимание, что в качестве получателя необходимо указывать либо пустой, либо несуществующий каталог, иначе rdiff-backup вежливо вам откажет, что правильно.</p>
<p>В режиме по умолчанию rdiff-backup довольно молчалива, и не надоедает диагностическими сообщениями до тех пор, пока не столкнётся с ошибкой. Регулировать разговорчивость утилиты можно при помощи короткой опции <strong>&#39;-v&#39;</strong> или её длинного аналога <strong>&#39;--verbosity&#39;</strong>. Значение опции может принимать значения от 0 до 9 (по умолчанию оно равно 3). Например, уровень 4 перед началом процедуры копирования выведет вам сводку опций работы утилиты:</p>
<pre>$ rdiff-backup -v 4 /var/log ~/log.backup
Using rdiff-backup version 1.2.8
Unable to import win32security module. Windows ACLs
not supported by filesystem at /var/log
escape_dos_devices not required by filesystem at /var/log
-----------------------------------------------------------------
Detected abilities for source (read only) file system:
  Access control lists                         On
  Extended attributes                          On
  Windows access control lists                 Off
  Case sensitivity                             On
  Escape DOS devices                           Off
  Escape trailing spaces                       Off
  Mac OS X style resource forks                Off
  Mac OS X Finder information                  Off
-----------------------------------------------------------------
Unable to import win32security module. Windows ACLs
not supported by filesystem at log.backup/rdiff-backup-data/rdiff-backup.tmp.0
escape_dos_devices not required by filesystem at log.backup/rdiff-backup-data/rdiff-backup.tmp.0
-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
  Ownership changing                           On
  Hard linking                                 On
  fsync() directories                          On
  Directory inc permissions                    On
  High-bit permissions                         On
  Symlink permissions                          Off
  Extended filenames                           On
  Windows reserved filenames                   Off
  Access control lists                         On
  Extended attributes                          On
  Windows access control lists                 Off
  Case sensitivity                             On
  Escape DOS devices                           Off
  Escape trailing spaces                       Off
  Mac OS X style resource forks                Off
  Mac OS X Finder information                  Off
-----------------------------------------------------------------
Backup: must_escape_dos_devices = 0
Starting mirror /var/log to log.backup</pre>
<p>В то время как девятый уровень будет сообщать о каждом шаге:</p>
<pre>$ rdiff-backup -v 9 /var/log ~/log.backup
...
Tue Mar  6 04:50:07 2012  Processing changed file wtmp.1
Tue Mar  6 04:50:07 2012  Regular copying ('wtmp.1',) to log.backup/rdiff-backup.tmp.121
Tue Mar  6 04:50:07 2012  Writing file object to log.backup/rdiff-backup.tmp.121
Tue Mar  6 04:50:07 2012  Copying attributes from ('wtmp.1',) to log.backup/rdiff-backup.tmp.121
Tue Mar  6 04:50:07 2012  Setting time of log.backup/rdiff-backup.tmp.121 to 1330553626
Tue Mar  6 04:50:07 2012  Renaming log.backup/rdiff-backup.tmp.121 to log.backup/wtmp.1
Tue Mar  6 04:50:07 2012  Copying attributes from () to log.backup
Tue Mar  6 04:50:07 2012  Setting time of log.backup to 1330980760
Tue Mar  6 04:50:07 2012  Touching log.backup/rdiff-backup-data/extended_attributes.2012-03-06T04:50:07+02:00.snapshot
Tue Mar  6 04:50:07 2012  Touching log.backup/rdiff-backup-data/access_control_lists.2012-03-06T04:50:07+02:00.snapshot
Tue Mar  6 04:50:08 2012  Writing mirror marker log.backup/rdiff-backup-data/current_mirror.2012-03-06T04:50:07+02:00.data
Tue Mar  6 04:50:08 2012  Cleaning up
Tue Mar  6 04:50:08 2012  Touching log.backup/rdiff-backup-data/error_log.2012-03-06T04:50:07+02:00.data
...</pre>
<h3>Удалённое резервное копирование</h3>
<p>Этот тип копирования выполнить настолько же просто, как и локальное. Всё, что меняется&nbsp;&mdash; это формат указания источника/получателя. Также на удалённой системе должна быть установлена rdiff-backup и работать SSH-сервер. Например следующая команда:</p>
<pre>$ rdiff-backup -v 5 /var/log backup@my-server.com::/var/backups/log.host123</pre>
<ol>
<li>установит соединение с сервером my-server.com при помощи SSH;</li>
<li>запустит на сервере rdiff-backup в режиме <strong>--server</strong>;</li>
<li>выполнит передачу файлов с локальной системы серверу my-server.com в каталог /var/backups/log.host123</li>
</ol>
<p>То же самое будет работать и в обратном направлении, т. е., если вам необходимо выполнить копирование удалённых файлов в локальную систему, просто поменяйте местами источник с получателем в опциях утилиты:</p>
<pre>$ rdiff-backup -v 5 backup@my-server.com::/var/log /var/backups/logs-my-server.com</pre>
<h3>Получение информации о результатах копирования</h3>
<p>Обычно многословный вывод команд требуется в период отладки и написания сценариев, не более. Для ежедневного мониторинга результатов работы утилиты желательно иметь лишь краткую сводку. Для этого rdiff-backup предлагает отдельную опцию &#39;--print-statistics&#39;:</p>
<pre>$ rdiff-backup --print-statistics /var/log ~/log.backup
Warning: Access Control List file not found
--------------[ Session statistics ]--------------
StartTime 1331003360.00 (Tue Mar  6 05:09:20 2012)
EndTime 1331003385.71 (Tue Mar  6 05:09:45 2012)
ElapsedTime 25.71 (25.71 seconds)
SourceFiles 139
SourceFileSize 7006201 (6.68 MB)
MirrorFiles 339
MirrorFileSize 16991862 (16.2 MB)
NewFiles 65
NewFileSize 1504824 (1.44 MB)
DeletedFiles 265
DeletedFileSize 12116918 (11.6 MB)
ChangedFiles 74
ChangedSourceSize 5501377 (5.25 MB)
ChangedMirrorSize 4874944 (4.65 MB)
IncrementFiles 404
IncrementFileSize 2136990 (2.04 MB)
TotalDestinationSizeChange -7848671 (-7.49 MB)
Errors 0
--------------------------------------------------</pre>
<h3>Включение исключение файлов</h3>
<p>&laquo;Не все йогурты одинаково полезны&raquo;&nbsp;&mdash; гласит народная пословица. Это же касается и файлов при резервном копировании. Часто-густо в копируемых каталогах попадаются файлы, размер которых весьма немаленький, а смысла включать их в бэкап нет. Здесь у rdiff-backup (как, впрочем и у всех остальных утилит подобного рода) предусмотрены свои возможности. Используя опцию <strong>&#39;--exlude&#39;</strong>, вы можете исключать отдельные файлы и каталоги:</p>
<pre>$ rdiff-backup --exclude /proc / backup@my-server.com::/var/backups</pre>
<p>Эту опцию можно использовать сколько угодно раз:</p>
<pre>$ rdiff-backup --exclude /proc --exclude /mnt --exclude /tmp / backup@my-server.com::/var/backups</pre>
<p>Иногда проще указать то, что нужно скопировать, вместо того, что НЕ нужно. Следующая команда скопирует, например, <strong>/usr/local/bin</strong>, пропустив при этом <strong>/usr/bin</strong>:</p>
<pre>$ rdiff-backup --include /usr/local --exclude /usr / backup@my-server.com::/var/backups</pre>
<p>Обратите внимание, что при множественном использовании опций &#39;--include&#39; / &#39;--exclude&#39; их приоритет зависит от порядка появления в команде.</p>
<p>rdiff-backup позволяет использовать шаблоны подобные тем, которые используются в rsync:<strong> &#39;**&#39;</strong> эквивалентны любому пути, а <strong>&#39;*&#39;</strong>&nbsp;&mdash; любому пути без завершающего слеша. Так, например, следующая команда скопирует <strong>/usr/local</strong> и <strong>/var</strong>, но пропустит всё остальное:</p>
<pre>$ rdiff-backup --include /usr/local --include /var --exclude '**' / /backup</pre>
<p>Обратите внимание на кавычки. Они нужны, поскольку большинство оболочек обрабатывают звёздочки как спецсимволы, превращая их в маски.</p>
<p>Пример чуть посложнее:</p>
<pre>$ rdiff-backup --include '**txt' --exclude /usr/local/games --include /usr/local --exclude /usr --exclude /backup --exclude /proc / /backup</pre>
<p>Эта команда скопирует все файлы, имена которых заканчиваются суффиксом &#39;txt&#39;. Обратите внимание: будут скопированы также все txt-файлы также из каталогов, /usr/local и /backup, поскольку первый --include имеет более высокий приоритет.</p>
<p>Вообще, утилита rdif--backup предлагает довольно богатый набор опция для фильтрации файлов, перечислять который в полном объёме нет смысла, поскольку всё &laquo;уже украдено до нас&raquo; в <a href="http://www.nongnu.org/rdiff-backup/rdiff-backup.1.html">man-странице</a> приложения. Тем, кто ещё туда не заглядывал, скажу что вы можете фильтровать файлы на основе регулярных выражений, типе самих файлов (символически/жесткие ссылки, сокеты, устройства, FIFO и т. п.), а также на основе файловых списков включений/исключений, при чём сами файловые списки можно передавать через stdin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/</feedburner:origLink></item>
		<item>
		<title>Как получить информацию об оперативной памяти в Linux</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/4KYRNBIzr_c/</link>
		<comments>http://www.ashep.org/2012/kak-poluchit-informaciyu-ob-operativnoj-pamyati-v-linux/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 09:41:20 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Железо]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[dmidecode]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[htop]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[ОЗУ]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2771</guid>
		<description><![CDATA[Продолжая линию предыдущей заметки, сегодня вашему вниманию предлагаю консольный способ получения информации об ОЗУ в Linux. Получение информации об использовании памяти Думаю, всем известна программа free, но на всякий случай, для тех, кто ещё не в курсе. При помощи команды free можно получить информацию об используемой/свободной памяти в вашей системе, в том числе и swap: [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжая линию <a href="http://www.ashep.org/2012/kak-poluchit-informaciyu-o-zhyostkix-diskax-v-linux/">предыдущей заметки</a>, сегодня вашему вниманию предлагаю консольный способ получения информации об ОЗУ в Linux.</p>
<p><img class="aligncenter size-full wp-image-2773" title="RAM" src="http://www.ashep.org/wp-content/uploads/2012/03/RAM.png" alt="" width="256" height="180" /><br />
<span id="more-2771"></span>
</p>
<h3>Получение информации об использовании памяти</h3>
<p>Думаю, всем известна программа <a href="http://linux.die.net/man/1/free">free</a>, но на всякий случай, для тех, кто ещё не в курсе. При помощи команды <strong>free</strong> можно получить информацию об используемой/свободной памяти в вашей системе, в том числе и swap:</p>
<pre>$ free
             total       used       free     shared    buffers     cached
Mem:       2062064    1493344     568720          0      82672     526624
-/+ buffers/cache:     884048    1178016
Swap:      1951740      59396    1892344</pre>
<p>Или же более человечный вариант вывода:</p>
<pre>$ free -m
             total       used       free     shared    buffers     cached
Mem:          2013       1669        343          0         86        624
-/+ buffers/cache:        959       1053
Swap:         1905         58       1847</pre>
<p>Ну и конечно же, стоит упомянуть традиционные <a href="http://linux.die.net/man/1/top">top</a> и <a href="http://htop.sourceforge.net/">htop</a>:</p>
<p><img class="aligncenter size-thumbnail wp-image-2774" title="top" src="http://www.ashep.org/wp-content/uploads/2012/03/top-600x252.png" alt="" width="600" height="252" /></p>
<p><img class="aligncenter size-thumbnail wp-image-2775" title="htop" src="http://www.ashep.org/wp-content/uploads/2012/03/htop-600x252.png" alt="" width="600" height="252" /></p>
<h3>Получение информации об аппаратной части</h3>
<p>Если вам необходимо получить информацию об установленных платах, не открывая корпус компьютера, можно воспользоваться утилитой <a href="http://www.nongnu.org/dmidecode/">dmidecode</a>, предназначенной для извлечения различного рода данных об установленном железе. Чтобы получить данные об установленной памяти, необходимо попросить <strong>dmidecode</strong> вывести информацию только 17 типа DMI:</p>
<pre># dmidecode --type 17
dmidecode 2.9
SMBIOS 2.5 present.

Handle 0x002D, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x002B
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 72 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM0
    Bank Locator: BANK0
    Type: DDR2
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer0
    Serial Number: SerNum0
    Asset Tag: AssetTagNum0
    Part Number: PartNum0
Handle 0x002F, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x002B
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 72 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM1
    Bank Locator: BANK1
    Type: DDR2
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer1
    Serial Number: SerNum1
    Asset Tag: AssetTagNum1
    Part Number: PartNum1
...</pre>
<p>Информацию о контроллере памяти можно получить, указав типы DMI 5 и 6:</p>
<pre># dmidecode --type 5,6
dmidecode 2.9
SMBIOS 2.5 present.

Handle 0x0008, DMI type 5, 24 bytes
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        None
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 1024 MB
    Maximum Total Memory Size: 4096 MB
    Supported Speeds:
        70 ns
        60 ns
        50 ns
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 4
        0x0009
        0x000A
        0x000B
        0x000C
    Enabled Error Correcting Capabilities:
        None

Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM0
    Bank Connections: 0 5
    Current Speed: 160 ns
    Type: ECC DIMM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK
Handle 0x000A, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM1
    Bank Connections: 0 5
    Current Speed: 162 ns
    Type: ECC DIMM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK
...</pre>
<p>А указав тип DMI 16, можно получить краткую информацию о пределах возможностей подсистемы управления памятью, установленной на материнской плате:</p>
<pre># dmidecode --type 16
dmidecode 2.9
SMBIOS 2.5 present.
Handle 0x002B, DMI type 16, 15 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 8 GB
    Error Information Handle: Not Provided
    Number Of Devices: 4</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/kak-poluchit-informaciyu-ob-operativnoj-pamyati-v-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/kak-poluchit-informaciyu-ob-operativnoj-pamyati-v-linux/</feedburner:origLink></item>
		<item>
		<title>Как получить информацию о жёстких дисках в Linux</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/BchFXSjv3S0/</link>
		<comments>http://www.ashep.org/2012/kak-poluchit-informaciyu-o-zhyostkix-diskax-v-linux/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 11:26:02 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Железо]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[hdparm]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[lshw]]></category>
		<category><![CDATA[SMART]]></category>
		<category><![CDATA[smartctl]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2762</guid>
		<description><![CDATA[Возникала ли у вас хоть раз необходимость получить информацию о жёстких дисках, установленных в системе, не проникая внутрь  корпуса компьютера? Тем, кто сталкивался с такой необходимостью, но так и не нашёл решения, а также тем, кому в будущем это может пригодиться, посвящается сегодняшняя заметка. Для Linux существует несколько утилит, при помощи которых можно получить интересующую [...]]]></description>
			<content:encoded><![CDATA[<p>Возникала ли у вас хоть раз необходимость получить информацию о жёстких дисках, установленных в системе, не проникая внутрь  корпуса компьютера? Тем, кто сталкивался с такой необходимостью, но так и не нашёл решения, а также тем, кому в будущем это может пригодиться, посвящается сегодняшняя заметка.</p>
<p><img class="aligncenter size-full wp-image-2766" title="Диск" src="http://www.ashep.org/wp-content/uploads/2012/02/Toshiba-MKxx61GSYG-self-erasing-hard-drive.jpg" alt="" width="410" height="294" /><br />
<span id="more-2762"></span>
<p>Для Linux существует несколько утилит, при помощи которых можно получить интересующую вас информацию о жёстких дисках, установленных в системе. В первую очередь я рекомендую вам  <strong>hdparm</strong>, утилиту с интерфейсом командной строки, умеющую среди всего прочего извлекать огромное количество разнообразной информацию из  подсистемы драйверов дисков Linux.</p>
<h3>hdparm</h3>
<p>Эта утилита устанавливается по умолчанию в большинстве современных Linux-дистрибутивов и требует root-привилегий для работы. Чтобы получить информацию об устройстве, откройте терминал и запустите <strong>hdparm</strong> с ключом <strong>-I</strong>, передав путь к интересующему вас устройству:</p>
<pre># hdparm -I /dev/sda
ATA device, with non-removable media
	Model Number:       SAMSUNG HD321KJ
	Serial Number:      S0MQJ9DQ103691
	Firmware Revision:  CP100-12
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
Standards:
	Used: ATA-8-ACS revision 3b
	Supported: 8 7 6 5
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:   16514064
	LBA    user addressable sectors:  268435455
	LBA48  user addressable sectors:  625142448
	Logical/Physical Sector size:           512 bytes
	device size with M = 1024*1024:      305245 MBytes
	device size with M = 1000*1000:      320072 MBytes (320 GB)
	cache/buffer size  = 16384 KBytes (type=DualPortCache)
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by Standard, no device specific minimum
	R/W multiple sector transfer: Max = 16	Current = 16
	Recommended acoustic management value: 254, current value: 0
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 udma7
	     Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	    	SMART feature set
	    	Security Mode feature set
	   *	Power Management feature set
	   *	Write cache
	   *	Look-ahead
	   *	Host Protected Area feature set
	   *	WRITE_BUFFER command
	   *	READ_BUFFER command
	   *	NOP cmd
	   *	DOWNLOAD_MICROCODE
	    	SET_MAX security extension
	    	Automatic Acoustic Management feature set
	   *	48-bit Address feature set
	   *	Device Configuration Overlay feature set
	   *	Mandatory FLUSH_CACHE
	   *	FLUSH_CACHE_EXT
	   *	SMART error logging
	   *	SMART self-test
	   *	General Purpose Logging feature set
	   *	64-bit World wide name
	   *	WRITE_UNCORRECTABLE_EXT command
	   *	Segmented DOWNLOAD_MICROCODE
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Native Command Queueing (NCQ)
	   *	Host-initiated interface power management
	   *	Phy event counters
	    	DMA Setup Auto-Activate optimization
	    	Device-initiated interface power management
	   *	Software settings preservation
	   *	SMART Command Transport (SCT) feature set
	   *	SCT Long Sector Access (AC1)
	   *	SCT LBA Segment Access (AC2)
	   *	SCT Error Recovery Control (AC3)
	   *	SCT Features Control (AC4)
	   *	SCT Data Tables (AC5)
Security:
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
		frozen
	not	expired: security count
		supported: enhanced erase
	112min for SECURITY ERASE UNIT. 112min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50000f009b103691
	NAA		: 5
	IEEE OUI	: 0000f0
	Unique ID	: 09b103691
Checksum: correct</pre>
<h3>lshw</h3>
<p>Утилита <strong>lshw</strong> предназначена для получения информации об оборудовании (не только дисковом), установленном в системе, и умеет выводить полученные данные в приятном глазу TXT-формате, HTML или XML. В современных Linux-дистрибутивах программа по умолчанию не всегда устанавливается, так что перед её использованием установите её, используя штатный менеджер пакетов.</p>
<p>Чтобы при помощи <strong>lshw</strong> получить информацию о дисковых устройствах, выполните следующую команду:</p>
<pre># lshw -class disk -class storage
  *-storage               
       description: SATA controller
       product: MCP65 AHCI Controller
       vendor: nVidia Corporation
       physical id: a
       bus info: pci@0000:00:0a.0
       logical name: scsi0
       logical name: scsi1
       version: a3
       width: 32 bits
       clock: 66MHz
       capabilities: storage pm msi ht ahci_1.0 bus_master cap_list emulated
       configuration: driver=ahci latency=0 maxlatency=1 mingnt=3
       resources: irq:44 ioport:c080(size=8) ioport:c000(size=4) ioport:bc00(size=8) ioport:b880(size=4) ioport:b800(size=16) memory:f9efc000-f9efdfff
     *-disk
          description: ATA Disk
          product: SAMSUNG HD321KJ
          physical id: 0
          bus info: scsi@0:0.0.0
          logical name: /dev/sda
          version: CP10
          serial: S0MQJ9DQ103691
          size: 298GiB (320GB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 signature=ea89ea89
     *-cdrom
          description: DVD-RAM writer
          product: DVD RW AD-7200S
          vendor: Optiarc
          physical id: 1
          bus info: scsi@1:0.0.0
          logical name: /dev/cdrom
          logical name: /dev/cdrw
          logical name: /dev/dvd
          logical name: /dev/dvdrw
          logical name: /dev/scd0
          logical name: /dev/sr0
          version: 1.04
          serial: [
          capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
          configuration: ansiversion=5 status=ready
        *-medium
             physical id: 0
             logical name: /dev/cdrom</pre>
<p>Если вас интересует лишь информация об установленных дисках в системе, вы можете воспользоваться следующей командой:</p>
<pre># lshw -short -C disk
H/W path    Device      Class       Description
===============================================
/0/a/0      /dev/sda    disk        320GB SAMSUNG HD321KJ
/0/a/1      /dev/cdrom  disk        DVD RW AD-7200S</pre>
<h3> GNOME Disk Utility</h3>
<p>Пользователи GNOME могут обратиться за помощью к специализированной GUI-утилите, позволяющей кроме получения информации об установленных устройствах, оперировать дисковыми разделами и выполнять ряд тестов устройств. Запустить утилиту можно из меню GNOME или из командной строки:</p>
<pre>$ palimpsest</pre>
<p>Пример информации о диске:</p>
<p style="text-align: center;"><a href="http://www.ashep.org/wp-content/uploads/2012/02/linux_disk_utility-full.png"><img class="aligncenter size-thumbnail wp-image-2764" title="GNOME Disk Utility" src="http://www.ashep.org/wp-content/uploads/2012/02/linux_disk_utility-full-600x336.png" alt="" width="600" height="336" /></a></p>
<p>Пример вывода информации SMART:</p>
<h3><a href="http://www.ashep.org/wp-content/uploads/2012/02/smart-disk-data.png"><img class="aligncenter size-full wp-image-2765" title="GNOME Disk Utility" src="http://www.ashep.org/wp-content/uploads/2012/02/smart-disk-data.png" alt="" width="598" height="933" /></a>smartctl</h3>
<p>При помощи утилиты <a href="http://www.ashep.org/tag/smartctl">smartctl</a> вы можете получить подробную информацию о состоянии здоровья ваших устройств, поддерживающих SMART. Пример вывода информации о SATA-устройстве:</p>
<pre># smartctl -d ata -a -i /dev/sda
smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MK5061GSYF
Serial Number:    71XXXYYZ
Firmware Version: MF000D
User Capacity:    500,107,862,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Feb 24 05:27:29 2012 IST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (  36)	The self-test routine was interrupted
					by the host with a hard or soft reset.
Total time to complete Offline
data collection: 		 ( 120) seconds.
Offline data collection
capabilities: 			 (0x5b) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 ( 136) minutes.
SCT capabilities: 	       (0x003d)	SCT Status supported.
					SCT Error Recovery Control supported.
					SCT Feature Control supported.
					SCT Data Table supported.
SMART Attributes Data Structure revision number: 128
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1650
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       34237
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       120
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       42
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       23
193 Load_Cycle_Count        0x0032   099   099   000    Old_age   Always       -       13971
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       39 (Lifetime Min/Max 21/48)
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       3536073
200 Multi_Zone_Error_Rate   0x0032   100   100   000    Old_age   Always       -       9143982
240 Head_Flying_Hours       0x0032   099   099   000    Old_age   Always       -       28415
241 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       741418060
242 Total_LBAs_Read         0x0032   100   100   000    Old_age   Always       -       450708673
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Interrupted (host reset)      40%       343         -
# 2  Short offline       Completed without error       00%       186         -
# 3  Short offline       Completed without error       00%        71         -
# 4  Short offline       Completed without error       00%         0         -
# 5  Short offline       Completed without error       00%         0         -
SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.</pre>
<p style="text-align: right;">Источник: <a href="http://www.cyberciti.biz/faq/find-hard-disk-hardware-specs-on-linux/">CyberCiti.Biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/kak-poluchit-informaciyu-o-zhyostkix-diskax-v-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/kak-poluchit-informaciyu-o-zhyostkix-diskax-v-linux/</feedburner:origLink></item>
		<item>
		<title>Git-хостинг при помощи Gitosis</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/6qoiMKUbU1Y/</link>
		<comments>http://www.ashep.org/2012/git-xosting-pri-pomoshhi-gitosis/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 13:06:16 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[gitosis]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2749</guid>
		<description><![CDATA[При организации совместной работы над проектами довольно существенную помощь оказывает Git. Выделяете отдельный хост для хранения репозиториев и&#160;&#8212; вуаля, никаких проблем связанных централизованным управлением версионностью файлов и отслеживанием изменений. Среди неудобств, с которым сталкиваются начинающие пользователи Git&#160;&#8212; это неудобство управления доступом к репозиториям. О том, как облегчить решение этой задачи, в сегодняшней заметке. Gitosis предназначен [...]]]></description>
			<content:encoded><![CDATA[<p>При организации совместной работы над проектами довольно существенную помощь оказывает <a href="http://www.ashep.org/tag/git">Git</a>. Выделяете отдельный хост для хранения репозиториев и&nbsp;&mdash; вуаля, никаких проблем связанных централизованным управлением версионностью файлов и отслеживанием изменений. Среди неудобств, с которым сталкиваются начинающие пользователи Git&nbsp;&mdash; это неудобство управления доступом к репозиториям. О том, как облегчить решение этой задачи, в сегодняшней заметке.</p>
<p><a href="https://github.com/res0nat0r/gitosis">Gitosis</a> предназначен для организации хостинга нескольких репозиториев под одной системной учётной записью, предоставляя возможность гибко управлять режимом доступа к каждому репозиторию. Аутентификация пользователей выполняется в Gitosis при помощи SSH-ключей пользователей.</p>
<p><img class="aligncenter" title="Git Logo" src="http://www.ashep.org/wp-content/uploads/2011/04/git-logo.png" alt="" width="136" height="160" /><br />
<span id="more-2749"></span>
</p>
<h3>Принцип работы</h3>
<p>Принцип организации взаимодействия Gitosis с пользователями достаточно прост. Когда пользователь при помощи Git инициирует взаимодействие со своей стороны по протоколу SSH, на стороне сервера происходит обычная аутентификация пользователя на основе открытого ключа (не пугайтесь, механизм добавления новых ключей на стороне сервера очень прост и приятен). После того, как пользователь аутентифицирован средствами SSH-сервера, в игру вступает сервер Gitosis, который выполняет дальнейшие процедуры авторизации подключившегося и организует его работу с Git-репозиториями. Весь фокус такой схемы заключается в том, что работы Gitosis требуется один-единственный системный пользователь, который, в силу использования ключей для аутентификации, может не иметь пароля (т. е., не иметь возможности подключиться к системе терминально), а также для сессии которого не можно не выделять PTY-устройство. Всё это в сумме даёт значительное повышение безопасности вашей хост-системы.</p>
<h3>Установка</h3>
<p>Установить Gitosis можно как из пакетов (как минимум в актуальных Ubuntu и Debian он есть) или же &laquo;вручную&raquo; с Github. И в том, и в другом случаях вам сперва понадобится системная учётная запись, от имени которой будет работать Gitosis. Я обычно выбираю что-нибудь короткое и понятное для имени учётной записи:</p>
<pre>$ sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git</pre>
<p>Обратите внимание на опцию <strong>--disabled-password</strong>, которая не даст этой учётной записи возможности аутентифицироваться в системе, используя пароль. Аутентификация будет возможно только при помощи ключа или программы <strong>su</strong>. Теперь вам необходимо скопировать отрытый ключ пользователя, который будет администрировать будущий Gitosis-сервер и скопировать его в домашний каталог (или куда-нибудь, откуда вышесозданный пользователь сможет его достать, файл с ключом понадобится лишь временно) только созданного пользователя. Я, например, обычно использую свой RSA-ключ, которым пользуюсь для аутентификации на всех серверах, чтобы не запутаться. Сначала копируем файл открытого ключа с <strong>локальной системы</strong> на сервер в какой-нибудь каталог:</p>
<pre>$ scp ~/.ssh/id_rsa.pub ashep@myserver.com:/home/ashep/tmp</pre>
<p>после чего, уже <strong>на сервере</strong>, делаем его доступным пользователю git:</p>
<pre>$ sudo mkdir /home/git/tmp
$ sudo mv /home/ashep/tmp/id_rsa.pub /home/git/tmp/
$ sudo chown git:git /home/git/tmp/id_rsa.pub</pre>
<p>Теперь можно приступать к установке. Если необходимо установить Gitosis из пакета, всё просто:</p>
<pre>$ sudo apt-get install gitosis</pre>
<p>&laquo;Ручная&raquo; установка также особых сложностей не вызывает (обратите внимание, у вас в системе должен быть установлен пакет <strong>python-setuptools</strong>):</p>
<pre>$ git clone git://eagain.net/gitosis
$ cd gitosis
$ sudo python setup.py install</pre>
<p>После того, как Gitosis установлен, необходимо инициализировать окружение, в котором он будет работать. Входим в систему под пользователем git, которого создали ранее:</p>
<pre>$ sudo -i -u git</pre>
<p>И, оказавшись в домашнем каталоге пользователя git, выполняем инициализацию:</p>
<pre>$ gitosis-init &lt; ~/tmp/id_rsa.pub
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/</pre>
<p>Обратите внимание на путь к открытому ключу, который мы скопировали ранее. Теперь его можно удалить, чтоб не путался под ногами:</p>
<pre>$ rm ~/tmp/id_rsa.pub</pre>
<p>Последним шагом убедитесь, что файл  <strong>repositories/gitosis-admin.git/hooks/post-updatе</strong> является исполняемым, иначе Gitosis не сможет обновлять конфигурацию:</p>
<pre>$ chmod 0755 ~/repositories/gitosis-admin.git/hooks/post-update</pre>
<p>Вот и всё. Ваш Gitosis-хост готов принимать посетителей.</p>
<h3>Управление Gitosis</h3>
<p>Всё конфигурирование Gitosis базируется на работе с git-репозиторием, содержащим конфигурацию и ключи пользователей. Звучит слегка неожиданно, но давайте посмотрим, что это значит на практике. Находясь на вашем локальном хосте, под учётной записью, открытый ключ которой вы скопировали ранее, клонируйте следующий репозиторий с вашего Gitosis-сервера:</p>
<pre>$ git clone git@myserver.com:gitosis-admin.git
Cloning into gitosis-admin...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.</pre>
<p>Обратите внимание на имя учётной записи, от которой мы подключаемся к серверу. Перейдите в каталог с репозиторием и откройте в текстовом редакторе файл <strong>gitosis.conf</strong>:</p>
<pre>[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = ashep</pre>
<p>Файл имеет традиционную ini-структуру и используется для конфигурирования Gitosis на сервере. Не забывайте о том, что выполнять конфигурацию Gitosis вы должны только таим способом!</p>
<p>Итак, представим, что вам необходимо создать новый репозиторий, который будет называться <strong>myproj</strong>, и предоставить к нему доступ на чтение/запись пользователям <strong>mike</strong> и <strong>bob</strong>. Добавьте ещё одну секцию в файл gitosis.conf:</p>
<pre>[group myteam]
writable = myproj
members = mike bob</pre>
<p>Здесь в начале секции объявляется группа с именем <strong>myteam</strong>, в которую входят пользователи перечисленные в значении параметра <strong>members</strong> и имеющие доступ на запись в репозиторий <strong>myproj</strong>. Интересующиеся могут увидеть пример возможных опций конфигурационного файла Gitosis <a href="https://github.com/res0nat0r/gitosis/blob/master/example.conf">здесь</a>.</p>
<p>Далее, поместите открытые ключи новых пользователей в каталог <strong>keydir</strong> админ-репозитория. Обратите внимание на имена файлов ключей: они должны состоять из имён пользователей, которых вы перечислили в значении параметра <strong>members</strong>, плюс суффикс <strong>&laquo;.pub&raquo;</strong>.</p>
<pre>$ cp ~/tmp/mike.pub ~/tmp/bob.pub ./keydir</pre>
<p>Добавьте файлы ключей, а также файл конфигурации в индекс:</p>
<pre>$ git add ./keydir/* ./gitosis.conf</pre>
<p>И сделайте коммит:</p>
<pre>$ git commit -m 'Новый проект myproj, который делают mike и bob'</pre>
<p>Теперь осталось лишь обновить конфигурацию на сервере:</p>
<pre>$ git push</pre>
<h3>Создание репозитория</h3>
<p>Теперь указанные пользователи могут работать с репозиторием. Представим, что mike оказался первым, кому выпала честь инициализировать репозиторий на сервере. Ему необходимо перейти в каталог с локальным репозиторием, добавить новый remote-сервер:</p>
<pre>$ cd myproj
$ git remote add origin git@myserver.com:myproj.git</pre>
<p>после чего выполнить push репозитория:</p>
<pre>$ git push origin master</pre>
<p>Если всё настроено корректно, mike получит сообщение об успешной синхронизации нового репозитория.</p>
<h3>Клонирование репозитория</h3>
<p>Здесь тоже всё традиционно:</p>
<pre>$ git clone git@myserver.com:myproj.git</pre>
<h3>Ссылки</h3>
<ul>
<li><a href="https://wiki.archlinux.org/index.php/Gitosis">Gitosis на ArchWiki</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/git-xosting-pri-pomoshhi-gitosis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/git-xosting-pri-pomoshhi-gitosis/</feedburner:origLink></item>
		<item>
		<title>Отключение F10 в Ubuntu Unity</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/dgVegCf45Zc/</link>
		<comments>http://www.ashep.org/2012/otklyuchenie-f10-v-ubuntu-unity/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 09:25:50 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[gnome-terminal]]></category>
		<category><![CDATA[mc]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2735</guid>
		<description><![CDATA[В целом, тенденции развития Unity и движения в этом направлении Ubuntu очень и очень радуют. Лично мне все последние новшества Canonical пришлись по душе, и причины войн на форумах, посвящённых данной теме, не совсем непонятны. Ну да, как говорится, на вкус и цвет все фломастеры не могут быть одинаковыми, и сегодняшняя заметка для тех, кто [...]]]></description>
			<content:encoded><![CDATA[<p>В целом, тенденции развития <a href="http://www.ashep.org/tag/unity">Unity</a> и движения в этом направлении <a href="http://www.ashep.org/tag/ubuntu">Ubuntu</a> очень и очень радуют. Лично мне все последние новшества <strong>Canonical</strong> пришлись по душе, и причины войн на форумах, посвящённых данной теме, не совсем непонятны. Ну да, как говорится, на вкус и цвет все фломастеры не могут быть одинаковыми, и сегодняшняя заметка для тех, кто решился таки на переползание в Unity, сделав его основным рабочим окружением. Конечно же, гладко полностью ничего никогда не происходит, и переход на Unity&nbsp;&mdash; не исключение. Одной из первых вещей, которая меня удивила своей нелогичностью&nbsp;&mdash; это задействование клавиши F10 в качестве глобального активатора меню приложений. Блин, ну неужели другой клавиши не нашлось, учитывая то, что ряд приложений рассчитывает на эту клавишу? Хотя, если учесть, что тот же <a href="http://www.ashep.org/tag/mc">Midnight Commander</a> не входит в main-репозитарий Ubuntu... Не знаю кто как, а без него жить не могу, и когда на нажатие F10 мне в ответ вываливается меню верхней панели, душевное состояние назвать уравновешенным довольно трудно. Итак, ниже сказ о том, как это исправить.</p>
<p><img class="aligncenter size-full wp-image-2738" title="F10" src="http://www.ashep.org/wp-content/uploads/2012/02/computer_key_F10.png" alt="" width="250" height="236" /><br />
<span id="more-2735"></span>
<p>Вообще, в классическом <strong>GNOME</strong> подобной проблемы не было. Проблема была в <a href="http://www.ashep.org/tag/gnome-terminal">gnome-terminal</a>, который перехватывал F10 в пользу своего меню. С тех пор ничего не поменялось и первым делом этот шорткат нужно отключить в терминале&nbsp;&mdash; приюте всех консольных приложений. В меню терминала выбираем <strong>&laquo;Edit&nbsp;&mdash; Keyboard Shortcuts...&raquo;</strong> и снимаем птицу <strong>&laquo;Enable the menu shortcut key (F10 by default)&raquo;</strong>:</p>
<p><img class="aligncenter size-full wp-image-2740" title="GNOME Terminal Keyboard Shortcuts" src="http://www.ashep.org/wp-content/uploads/2012/02/Keyboard-Shortcuts_001.png" alt="" width="392" height="380" /></p>
<p>Как уже говорилось, до прихода Ubuntu Unity в нашу жизнь, этого было вполне достаточно, чтобы отучить GNOME портить нам жизнь. Однако теперь в дело вмешивается ещё глобальное меню Unity, и его тоже нужно отучить от той дурной привычки. Здесь нам понадобится чудо инженерии под названием <strong>CompizConfig Settings Manager</strong>. Тем, у кого он ещё не установлен, придётся потратить минуту на установку:</p>
<pre>$ sudo apt-get install compizconfig-settings-manager</pre>
<p>После чего, можно запускать менеджер:</p>
<pre>$ ccsm</pre>
<p>Отыщите раздел <strong>Desktop</strong>, а в нём&nbsp;&mdash; <strong>Ubuntu Unity Plugin</strong>:</p>
<p><img class="aligncenter size-thumbnail wp-image-2741" title="CompizConfig Settings Manager" src="http://www.ashep.org/wp-content/uploads/2012/02/CompizConfig-Settings-Manager_002-600x201.png" alt="" width="600" height="201" /></p>
<p>И на первой же закладке <strong>Behaviour</strong> отключите или замените на что-нибудь другое шорткат <strong>&laquo;Key to open the first panel menu&raquo;</strong>:</p>
<p><img class="aligncenter size-full wp-image-2742" title="CompizConfig Settings Manager, Ubuntu Unity Plugin" src="http://www.ashep.org/wp-content/uploads/2012/02/CompizConfig-Settings-Manager_003.png" alt="" width="533" height="292" /></p>
<p>Приятной работы ;)</p>
<hr />
<p>После случайного падения ваш любимый гаджет перестал фунциклировать? Не торопитесь расстраиваться. Срочный профессиональный <a href="http://www.remontkpk.com/remont1/iphone">ремонт iPhone 4s</a> в Москве за разумные деньги и с гарантией&nbsp;&mdash; на remontkpk.com. Кстати, если лень тянуть ногу в мастерскую самому, могут прислать курьера.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/otklyuchenie-f10-v-ubuntu-unity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/otklyuchenie-f10-v-ubuntu-unity/</feedburner:origLink></item>
		<item>
		<title>Шпаргалка по Git</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/FK9qHhWOr2Y/</link>
		<comments>http://www.ashep.org/2012/shpargalka-po-git/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 00:27:39 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Общее]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[шпаргалки]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2730</guid>
		<description><![CDATA[Продолжая тему шпаргалок, хочу поделиться с вами недавно найденной шпаргалкой по Git. Такая себе, очень интересная инфографическая реализация авторства Zack Rusin. Уверен, эта работа знакома практически каждому, кто хоть чуточку интересовался Git, однако нередко бывает так, что очевидное и не замечаем. Вот она, в большом разрешении:]]></description>
			<content:encoded><![CDATA[<p>Продолжая тему <a href="http://www.ashep.org/tag/shpargalki">шпаргалок</a>, хочу поделиться с вами недавно найденной шпаргалкой по Git. Такая себе, очень интересная инфографическая реализация авторства <a href="http://zrusin.blogspot.com/">Zack Rusin</a>.<br />
<img class="aligncenter" title="Git" src="http://www.ashep.org/wp-content/uploads/2011/04/git-logo.png" alt="" width="136" height="160" /><br />
<span id="more-2730"></span>
<p>Уверен, эта работа знакома практически каждому, кто хоть чуточку интересовался Git, однако нередко бывает так, что очевидное и не замечаем. Вот она, в большом разрешении:</p>
<p><a href="http://www.ashep.org/wp-content/uploads/2012/02/git-cheat-sheet-large.png"><img class="aligncenter size-thumbnail wp-image-2731" title="Шпаргалка по Git" src="http://www.ashep.org/wp-content/uploads/2012/02/git-cheat-sheet-large-600x463.png" alt="" width="600" height="463" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/shpargalka-po-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/shpargalka-po-git/</feedburner:origLink></item>
		<item>
		<title>Клавиатурные сокращения в Unity</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/rjJOCSK7Pps/</link>
		<comments>http://www.ashep.org/2012/klaviaturnye-sokrashheniya-v-unity/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 14:08:20 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2705</guid>
		<description><![CDATA[Терпеть не могу &#171;прицеливаться&#187; указателем мыши, используя тачпад. Да, при наличии мыши под рукой, жизнь проще. Но когда полевые условия не позволяют эту самую мышь за собой таскать и/или комфортно ею пользоваться, то ничего не остаётся, кроме как елозить пальцем по поверхности тачпада и получать массу &#171;удовольствия&#187;. &#171;А как же клавиатурные сокращения?!&#187;&#160;&#8212; спросят некоторые, и [...]]]></description>
			<content:encoded><![CDATA[<p>Терпеть не могу &laquo;прицеливаться&raquo; указателем мыши, используя тачпад. Да, при наличии мыши под рукой, жизнь проще. Но когда полевые условия не позволяют эту самую мышь за собой таскать и/или комфортно ею пользоваться, то ничего не остаётся, кроме как елозить пальцем по поверхности тачпада и получать массу &laquo;удовольствия&raquo;. &laquo;А как же клавиатурные сокращения?!&raquo;&nbsp;&mdash; спросят некоторые, и будут правы. В сегодняшней заметке рассмотрим приёмы увеличения эффективности работы с <strong>Ubuntu Unity</strong>, используя клавиатуру.</p>
<p><img class="size-full wp-image-2707 aligncenter" title="Ubuntu Unity" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-01.jpg" alt="" width="250" height="260" /><br />
<span id="more-2705"></span>
</p>
<h3>Предварительные замечания</h3>
<p>В комментариях как-то проскакивал вопрос о том, что такое &laquo;клавиша <strong>&lt;Super&gt;&raquo;</strong>. Клавиша <strong>&lt;Super&gt;</strong>&nbsp;&mdash; это такая <a href="http://en.wikipedia.org/wiki/Super_key_%28keyboard_button%29">клавиша на клавиатуре</a>, на которой обычно красуется лого-флажок корпорации Майкрософт:</p>
<p><img class="size-full wp-image-2709 aligncenter" title="Клавиша &lt;Super&gt;" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-02.jpg" alt="" width="250" height="188" /></p>
<h3>Launcher</h3>
<ul>
<li>удержание клавиши <strong>&lt;Super&gt;</strong> покажет Launcher, при этом пронумерует цифрами от 1 до 0 кнопки приложений<br />
<img class="size-full wp-image-2711 aligncenter" title="Нумерация приложений" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-03.png" alt="" width="66" height="180" /></li>
<li><strong>&lt;Super + [1...0]&gt;</strong> откроет соответствующее цифре приложение из Launcher. Если к этому добавить <strong>&lt;Shift&gt;</strong>, то будет запущен новый экземпляр приложения</li>
<li><strong>&lt;Super + T&gt;</strong> откроет корзину</li>
<li><strong>&lt;Alt + F1&gt;</strong> переместит фокус на панель, после чего вы можете при помощи клавиш со стрелками перемещаться между значками приложений</li>
<li><strong>&lt;Ctrl + Alt + T&gt;</strong> запустит новый экземпляр терминала</li>
</ul>
<h3> Dash</h3>
<ul>
<li>однократное (без удерживания) нажатие <strong>&lt;Super&gt;</strong> откроет Dash</li>
<li>после того, как Dash открыт, нажатие <strong>&lt;Tab&gt;</strong> переключит его на следующую линзу, в <strong>&lt;Shift + Tab&gt;</strong>&nbsp;&mdash; на предыдущую</li>
<li><strong>&lt;Alt + F2&gt;</strong> откроет Dash в режиме ввода команды для выполнения (это когда терминал ради одной команды запускать лень):<br />
<img class="size-full wp-image-2716 aligncenter" title="Запуск команды" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-04.png" alt="" width="384" height="344" /></li>
<li><strong>&lt;Super + A&gt;</strong> открывает линзу поиска приложений</li>
<li><strong>&lt;Super + F&gt;</strong> открывает линзу поиска файлов и папок</li>
<li><strong>&lt;Super + M&gt;</strong> открывает линзу поиска музыкальных файлов</li>
</ul>
<h3>Верхняя панель</h3>
<ul>
<li><strong>&lt;F10&gt;</strong> откроет первый элемент меню активного окна, после чего вы можете перемещаться по элементам меню и панели при помощи клавиш со стрелками</li>
<li><strong>&lt;Esc&gt;</strong> прекращает работу с панелью</li>
</ul>
<h3>Управление окнами</h3>
<ul>
<li><strong>&lt;Super + W&gt;</strong> отобразит все окна со всех рабочих областей<br />
<a href="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-05.png" target="_blank"><img class="wp-image-2718 aligncenter" title="Отображение окон со всех рабочих областей в Unity" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-05-600x351.png" alt="" width="570" /></a></li>
<li><strong>&lt;Super + D&gt;</strong> сворачивает/разворачивает все окна</li>
<li><strong>&lt;Alt + Tab&gt;</strong> позволяет переключаться между окнами</li>
<li><strong>&lt;Alt + `&gt;</strong> позволяет переключаться между окнами одного приложения. Клавиша с символом<strong> &lt;`&gt;</strong>&nbsp;&mdash; это та, на которой обычно наносят кириллический символ &laquo;Ё&raquo;, находится обычно над <strong>&lt;Tab&gt;</strong></li>
</ul>
<h3>Расположение окон</h3>
<p>Обратите внимание, что ниже описанные комбинации можно применять к одному и тому же окну подряд несколько раз, влияя таким образом на размеры окна.</p>
<ul>
<li><strong>&lt;Ctrl + Alt + Numpad 7&gt;</strong> помещает окно в левый верхний угол рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 8&gt;</strong> помещает окно в верхнюю половину рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 9&gt;</strong> помещает окно в правый верхний угол рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 4&gt;</strong> помещает окно в левую половину рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 5&gt;</strong> центрирует и разворачивает окно</li>
<li><strong>&lt;Ctrl + Alt + Numpad 4&gt;</strong> помещает окно в правую половину рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 1&gt;</strong> помещает окно в левый нижний угол рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 2&gt;</strong> помещает окно в нижнюю половину рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 3&gt;</strong> помещает окно в правый нижний угол рабочей области</li>
<li><strong>&lt;Ctrl + Alt + Numpad 0&gt;</strong>разворачивает окно</li>
</ul>
<h3>Рабочие области</h3>
<ul>
<li><strong>&lt;Super + S&gt;</strong> включает режим обзора (&laquo;Expo&raquo;) рабочих областей<br />
<a href="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-06.png" target="_blank"><img class="aligncenter  wp-image-2722" title="Обзор рабочих областей в Unity" src="http://www.ashep.org/wp-content/uploads/2012/02/ubuntu-unity-shortcuts-06-600x351.png" alt="" width="570" /></a></li>
<li><strong>&lt;Shift + Alt + ↑&gt;</strong> включает Expo-режим обзора окон текущей рабочей области</li>
<li><strong>&lt;Ctrl + Alt + [← / → / ↑ / ↓]&gt;</strong>&nbsp;&mdash; переключает с одной рабочей области на другую</li>
<li><strong>&lt;Ctrl + Alt + Shift + [← / → / ↑ / ↓]&gt;</strong>&nbsp;&mdash; перемещает активное окно с одной рабочей области на другую</li>
<li><strong>&lt;Ctrl + Alt + L&gt;</strong>&nbsp;&mdash; блокирует экран</li>
</ul>
<h3>Снимки экрана</h3>
<ul>
<li><strong>&lt;Prt Sc&gt;</strong> делает снимок текущей рабочей области</li>
<li><strong>&lt;Alt + Prt Sc&gt;</strong> делает снимок текущего окна</li>
</ul>
<p style="text-align: right;">Источник: <a href="http://askubuntu.com/questions/28086/what-are-unitys-keyboard-and-mouse-shortcuts">askubuntu.com</a></p>
<hr />
<p>Укрощение Ubuntu Unity&nbsp;&mdash; дело нужное и полезное, но отдыхать тоже иногда нужно. Если вы являетесь счастливым обладателем Android-устройства и любите компьютерные игры, то обязательно посетите <a href="http://bestag.ru/">Best Android Games</a>&nbsp;&mdash; портал с с лучшими играми и приложениями для операционной системы Android от самых разных производителей мобильных игр.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/klaviaturnye-sokrashheniya-v-unity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/klaviaturnye-sokrashheniya-v-unity/</feedburner:origLink></item>
		<item>
		<title>cherrytree: структурируем заметки</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/3OLeCTeVjmc/</link>
		<comments>http://www.ashep.org/2012/cherrytree-strukturiruem-zametki/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 16:48:13 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[cherrytree]]></category>
		<category><![CDATA[Evernote]]></category>
		<category><![CDATA[GTD]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2681</guid>
		<description><![CDATA[&#171;Кто владеет информацией, тот владеет миром&#187;&#160;&#8212; гласит пословица. В эпоху, когда всё вокруг буквально &#171;пропитано&#187; информацией, самое сложное&#160;&#8212; её сохранить. Нет, не о терабайтах я сейчас говорю, и не о надёжности устройств их хранящих. Всё гораздо проще. Информация ценна лишь в определённое время, в определённом месте, и зачастую лишь в том случае, если доступ к [...]]]></description>
			<content:encoded><![CDATA[<p>&laquo;Кто владеет информацией, тот владеет миром&raquo;&nbsp;&mdash; гласит пословица. В эпоху, когда всё вокруг буквально &laquo;пропитано&raquo; информацией, самое сложное&nbsp;&mdash; её сохранить. Нет, не о терабайтах я сейчас говорю, и не о надёжности устройств их хранящих. Всё гораздо проще. Информация ценна лишь в определённое время, в определённом месте, и зачастую лишь в том случае, если доступ к ней можно получить максимально быстро. Какой толк от кучи байт, сваленных в одном месте, если вы час потратите на то, чтобы найти нужное? Упорядочивание и структурированное хранение данных&nbsp;&mdash; вот то, без чего бы человечество вряд ли достигло нынешнего уровня развития.</p>
<p><img class="size-full wp-image-2683 aligncenter" title="cherrytree logo" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-logo.jpg" alt="" width="250" height="262" /><br />
<span id="more-2681"></span>
<p>Книги в библиотеке не хранятся в одной куче, а расставлены по полкам и стеллажам. Файлы на диске хранятся в папках, а не в общем пространстве. Разработчики ПО давным давно придумали функции, объекты и классы... Список можно продолжать до бесконечности. А что вы делаете с полезной информацией, которая может пригодиться в будущем? Кто-то заносит найденное в &laquo;Избранное&raquo;, кто-то&nbsp;&mdash; в <a href="http://www.evernote.com/">Evernote</a>, кто-то&nbsp;&mdash; в текстовые файлы, а кто-то даже записывает всё в блокнот. В общем, способов&nbsp;&mdash; бесчисленное множество. Сегодня<br />
я поделюсь с вами простым и бесплатным инструментом, которым пользуюсь сам в повседневной работе. Знакомьтесь: <strong>cherrytree</strong>!</p>
<p><strong>cherrytree</strong>&nbsp;&mdash; это небольшое десктопное приложение, написанное на Python и предоставляющее вам широкие возможности для хранения и упорядочивания текстовой и графической информации. Данные в программе представляются в виде дерева&nbsp;&mdash; классического способа упорядочивания информации. Дерево состоит из т. н. <strong>нод</strong> (node), в которых и хранятся данные. Каждая нода может содержать любое количество дочерних нод, которые, в свою очередь, своих дочерних нод и так далее. Вот и весь принцип.</p>
<h3>Установка</h3>
<p>Скачать и установить приложение для своей системы можно из <a href="http://www.giuspen.com/cherrytree/#downl">соответствующего раздела</a> официального сайта программы. Разработчик предоставляет версии под Linux, Windows, а также исходные коды. Среди версий под Linux имеется deb-пакет, который можно установить во всех современных Debian-системах:</p>
<pre>$ sudo dpkg install cherrytree_0.25.3-1_all.deb</pre>
<h3>Программа</h3>
<p>После установки <strong>cherrytree</strong> можно запустить как из меню приложений Gnome/KDE, так и из командной строки:</p>
<pre>$ cherrytree &amp;</pre>
<p style="text-align: center;"><img class="size-full wp-image-2687 aligncenter" title="Главное окно cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/charrytree-mainwin.png" alt="" width="600" height="405" /></p>
<p>Вот такое незамысловатое главное окно программы, состоящее из панели инструментов, области дерева (слева), и области контента (справа).</p>
<p>Прежде, чем начать, обращаю ваше внимание: практически все операции в cherrytree можно выполнять с клавиатуры. Уверен, многие оценят это, а я, в свою очередь, при описании программы, буду использовать клавиатурные комбинации там, где это возможно.</p>
<p>Итак, начнём. Чтобы создать новую ноду, нажмите <strong>&lt;Ctrl+N&gt;</strong> и вы увидите диалоговое окошко, в котором необходимо указать параметры будущей ноды:</p>
<p><img class="size-full wp-image-2688 aligncenter" title="Создание новой ноды в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/charrytree-new-node-dialog.png" alt="" width="302" height="262" /></p>
<p>Обратите внимание на выпадающий список <strong>Automatic Syntax Hightlighting</strong>, который может оказать весьма полезным для разработчиков ПО. Также, каждую ноду можно помечать тэгами, с целью в будущем облегчить поиск нужной ноды. Кроме того, ноду можно пометить как <strong>Read Only</strong>, если вы хотите защитить её от случайного изменения (понятное дело, для новых нод ставить эту отметку особого смысла нет).</p>
<p>Если вам необходимо создать дочернюю ноду, достаточно &laquo;стать&raquo; курсором на родительскую и при помощи комбинации <strong>&lt;Ctrl+Shift+N&gt;</strong> сделать это. Вложенных нод можно создавать, сколько душе угодно:</p>
<p><img class="size-full wp-image-2691 aligncenter" title="Вложение нод в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-multilevel-nodes.png" alt="" width="281" height="405" /></p>
<p>После того, как новая нода создана, можно в ней чего-нибудь сохранить:</p>
<p><img class="size-full wp-image-2690 aligncenter" title="Содержимое ноды в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-node-content.png" alt="" width="600" height="405" /></p>
<p>Нужна картинка? Пожалуйста! Выбираем в меню <strong>Edit&nbsp;&mdash; Insert Image</strong>, указываем нужный файл и вставляем:</p>
<p><img class=" wp-image-2692 aligncenter" title="Вставка изображения в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-images-600x405.png" alt="" width="600" height="405" /></p>
<p>Работа со списками в cherrytree сплошное удовольствие. Программа поддерживает три типа списков: традиционные маркированные и нумерованные, а также т. н. ToDo-списки, очень удобные и простые в работе:</p>
<p><img class="size-full wp-image-2694 aligncenter" title="Списка в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-lists.png" alt="" width="469" height="321" /></p>
<p>Делать ссылки из содержимого ноды можно четырёх разных типов: на другую ноду, на файл, на папку и, конечно, традиционные URI-ссылки:</p>
<p><img class="size-full wp-image-2696 aligncenter" title="Вставка ссылок в cherrytree " src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-links.png" alt="" width="493" height="528" /></p>
<p>Цвет шрифта и фона выбирается стандартными GTK-диалогами:</p>
<p><img class="size-full wp-image-2697 aligncenter" title="Цвет текста в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/charrytree-text-color.png" alt="" width="544" height="485" /></p>
<p>Вообще, форматировать текст, можете как угодно. При этом набор функционала ограничен до минимума, чтобы не превращать средства для хранения заметок в текстовый процессор. Так, например, заголовков может только два уровня: первого и второго. Гарнитура шрифта в во всех нодах используется одна и та же, можно менять лишь начертание. Также есть возможность создавать таблицы (хотя здесь разработчикам ещё придётся потрудится):</p>
<p><img class="size-full wp-image-2698 aligncenter" title="Форматирование в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-formatting.png" alt="" width="508" height="422" /></p>
<p>Также, как уже говорилось в начале статьи, разработчикам может быть интересна функция подсветки синтаксиса программного кода, которую можно выбрать в свойствах ноды:</p>
<p><img class="size-full wp-image-2699 aligncenter" title="Подсветка кода в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-syntax-highlight-1.png" alt="" width="301" height="305" /></p>
<p><img class="size-full wp-image-2700 aligncenter" title="Подсветка кода в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-syntax-highlight-2.png" alt="" width="600" height="327" /></p>
<p>Поиск и замена также довольно богаты функционалом. Можно выполнять поиск в пределах текущей ноды или всего дерева:</p>
<p><img class="size-full wp-image-2701 aligncenter" title="Поиск нод в cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-search.png" alt="" width="303" height="264" /></p>
<p><img class=" wp-image-2702 aligncenter" title="Поиск и замена в charrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/charrytree-replace.png" alt="" width="303" height="305" /></p>
<p>В качестве хранилища ваших деревьев cherrytree предлагает два варианта: XML и SQLite, которые можно безопасно хранить в зашифрованном виде, закрытыми паролем:</p>
<p><img class="wp-image-2703 aligncenter" title="Сохранение дерева cherrytree" src="http://www.ashep.org/wp-content/uploads/2012/02/cherrytree-save.png" alt="" width="351" height="216" /></p>
<p>Думаю, вы уже успели оценить возможности cherrytree после увиденного. Обязательно попробуйте использовать её в повседневной работе, многим, я уверен, эта программа спасёт не один час времени! Потратьте 20 минут на изучение всех возможностей cherrytree и, возможно, ваша жизнь станет чуточку лучше, а работа&nbsp;&mdash; приятней.</p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/cherrytree-strukturiruem-zametki/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/cherrytree-strukturiruem-zametki/</feedburner:origLink></item>
		<item>
		<title>eCryptfs и шифрование домашнего каталога в Linux</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/FPUiC_MJ588/</link>
		<comments>http://www.ashep.org/2012/ecryptfs-i-shifrovanie-domashnego-kataloga-v-linux/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 09:01:14 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[eCryptFS]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[шифрование]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2666</guid>
		<description><![CDATA[Многие обращали внимание на предложение Ubuntu во время установки зашифровать домашний каталог пользователя. Я до недавних пор всегда его игнорировал из соображений &#171;хрен знает, что они там выдумали, разбираться неохота&#187;, но однажды любопытство пересилило и нашлось свободное для познания сей тайны время. Всех, кому интересно, приглашаю под кат. Лучший способ научиться чему-то&#160;&#8212; это сделать самостоятельно. [...]]]></description>
			<content:encoded><![CDATA[<p>Многие обращали внимание на предложение Ubuntu во время установки зашифровать домашний каталог пользователя. Я до недавних пор всегда его игнорировал из соображений &laquo;хрен знает, что они там выдумали, разбираться неохота&raquo;, но однажды любопытство пересилило и нашлось свободное для познания сей тайны время. Всех, кому интересно, приглашаю под кат.</p>
<p><img class="size-full wp-image-2667 aligncenter" title="Шифрование домашнего каталога в Ubuntu" src="http://www.ashep.org/wp-content/uploads/2012/02/ecryptfs-ubuntu-01.jpg" alt="" width="600" height="451" /><br />
<span id="more-2666"></span>
<p>Лучший способ научиться чему-то&nbsp;&mdash; это сделать самостоятельно. В качестве подопытного кролика было решено взять <strong>Debian 6.0.3</strong>, оказавшуюся под рукой и не шифровавшей домашние каталоги пользователей. На ней весь процесс и производился. Если у вас в качестве ОС используется нечто совсем далёкое, гарантий, что процесс настройки будет таким же&nbsp;&mdash; никаких.</p>
<h3>Как это работает</h3>
<p>Для организации защиты ваших персональных данных в Ubuntu разработчики предпочли <a href="https://launchpad.net/ecryptfs">eCryptfs</a>&nbsp;&mdash; файловую систему, работающую &laquo;поверх&raquo; любой другой обычной ФС и прозрачно шифрующую/дешифрующую содержимое файлов. Криптографические метаданные eCryptfs хранит в заголовках каждого файла, таким образом вы можете без проблем переносить любой файл между различными системами. Всё это счастье реализовано на уровне ядра Linux, обеспечивая хороший уровень производительности по сравнению с FUSE-шифрованием (например, <a href="http://www.ashep.org/tag/encfs/">EncFS</a>).</p>
<h3>Установка</h3>
<p>Всё, что нужно для работы eCryptfs, во всех современных Linux-дистрибутивах имеются по умолчанию &laquo;из коробки&raquo;. Если же ядро Linux вы собирали самостоятельно, то удостоверьтесь, что в вашей сборке присутствует необходимый модуль:</p>
<pre># modprobe ecryptfs &amp;&amp; lsmod | grep ecryptfs</pre>
<p>Далее, для работы с eCryptfs нам понадобятся userspace-инструменты, которые в Debain/Ubuntu легко устанавливаются из пакета:</p>
<pre># apt-get install ecryptfs-utils</pre>
<h3>Монтирование eCryptfs</h3>
<p>Чтобы лучше понять и увидеть на практике, как работает eCryptfs, смонтируем какой-нибудь каталог и посмотрим, что происходит в реальности. Для начала создадим пустой каталог, который будем шифровать:</p>
<pre># mkdir /mnt/ecryptfs-demo</pre>
<p>Теперь смонтируем созданный каталог используя eCryptfs:</p>
<p># mount -t ecryptfs /mnt/ecryptfs-demo/ /mnt/ecryptfs-demo/</p>
<p>Обратите внимание, что исходным и целевым каталогом команде <strong>mount</strong> указан один и тот же каталог. Это несколько &laquo;нетрадиционно&raquo; для операции монтирования, однако вполне допустимо и удобно. Если вас это запутывает, вы можете использовать разные точки с более осмысленными именами, вроде:</p>
<p># mount -t ecryptfs /mnt/plaintext/ /mnt/encrypted/</p>
<p>После ввода команды вам необходимо ввести пароль для ключа шифрования:</p>
<pre>Passphrase:</pre>
<p>Введите пароль, не забывая о том, что<strong> его утеря будет означать невозможность получения данных!</strong> После ввода пароля вам будет предложено выбрать алгоритм шифрования, с по-умолчанию выбранным <a href="http://ru.wikipedia.org/wiki/Advanced_Encryption_Standard">AES</a>:</p>
<pre>Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]:</pre>
<p>Далее вам необходимо выбрать размер ключа:</p>
<pre>Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:</pre>
<p>Значением следующей опции вы разрешаете или запрещаете доступ к файлам, которые не были зашифрованы при помощи eCrypfs:</p>
<pre>Enable plaintext passthrough (y/n) [n]:</pre>
<p>Шифровать или нет имена файлов:</p>
<pre>Enable filename encryption (y/n) [n]:</pre>
<p>Далее вы увидите сводку выбранных опций (их можно использовать в опциях монтирования в будущем):</p>
<pre>Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=8f9887d2339cafb0</pre>
<p>Если вы впервые монтируете и/или сигнатура этого монтирования не сохранена в кэше, то вас вежливо предупредят о том, что вы могли ввести пароль неверно:</p>
<pre>WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key
before. This could mean that you have typed your
passphrase wrong.</pre>
<p>Если всё ок, можно подтверждать монтирование:</p>
<pre>Would you like to proceed with the mount (yes/no)? : yes</pre>
<p>Чтобы избежать в будущем появления вышеуказанного предупреждения, вы можете добавить сигнатуру монтирования eCryptfs в файл:</p>
<pre>Would you like to append sig [8f9887d2339cafb0] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? : yes</pre>
<p>Если всё прошло успешно, вы получите соответствующее сообщение:</p>
<pre>Successfully appended new sig to user sig cache file
Mounted eCryptfs</pre>
<p>Теперь скопируем что-нибудь в смонтированный каталог:</p>
<pre># cp /etc/passwd /mnt/ecryptfs-demo/</pre>
<p>Посмотрим его содержимое и размер:</p>
<pre># cat /mnt/ecryptfs-demo/passwd
...

# file /mnt/ecryptfs-demo/passwd
/mnt/ecryptfs-demo/passwd: ASCII text
# ls -l /mnt/ecryptfs-demo/passwd
-rw-r--r-- 1 root root 911 Feb  7 01:18 /mnt/ecryptfs-demo/passwd</pre>
<p>Теперь отмонтируем eCryptfs и посмотри, как изменился наш файл:</p>
<pre># umount /mnt/ecryptfs-demo/

# file /mnt/ecryptfs-demo/passwd
/mnt/ecryptfs-demo/passwd: data
# ls -l /mnt/ecryptfs-demo/passwd
-rw-r--r-- 1 root root 12288 Feb  7 01:18 /mnt/ecryptfs-demo/passwd</pre>
<p>Заглянув же вовнутрь файла, вы увидите там лишь двоичные данные.</p>
<h3>pam_ecryptfs</h3>
<p>Ещё одной довольно интересной и полезной штукой, идущей в поставке eCryptfs, является PAM-модуль <strong>pam_ecryptfs</strong>. Вызывается этот модуль во время логина пользователя и работает следующим образом. Если в домашнем каталоге обнаруживается файл <strong>~/.ecryptfs/wrapped-passphrase</strong>, а также файл <strong>~/.ecryptfs/auto-mount</strong> то модуль pam_ecryptfs расшифровывает содержимое файла <strong>~/.ecryptfs/wrapped-passphrase</strong>, используя пароль пользователя. Далее расшифрованное содержимое используется в качестве пароля при монтировании каталога <strong>~/.Private</strong> в точку <strong>~/Private</strong>. Таким образом, пользователю не нужно дополнительно монтировать каталог с личными зашифрованными данными, всё происходит автоматически. Для того, чтобы модуль работал, он должен быть соответствующим образом объявлен в <strong>/etc/pam.d/common-auth</strong>:</p>
<pre>auth    required        pam_ecryptfs.so unwrap</pre>
<p>и в /etc/pam.d/common-session:</p>
<pre>session optional        pam_ecryptfs.so unwrap</pre>
<h3>Зашифрованный персональный каталог Private</h3>
<p>Чтобы пользователям было сухо и комфортно при самостоятельном создании Private-каталогов, разработчики включили в поставку eCryptfs специальный shell-скрипт <strong>ecryptfs-setup-private</strong>, который делает всю работу по подготовке персонального шифрованного хранилища:</p>
<ol>
<li>создаёт каталоги  <strong>~/.Private</strong> и <strong>~/Private</strong>;</li>
<li>шифрует пароль монтирования и сохраняет его в <strong>~/.ecryptfs/wrapped-passphrase</strong>;</li>
<li>позволяет настроить опции автомонтирования/размонтирования и т. п.</li>
</ol>
<p>Работает сценарий очень просто и при запуске в режиме &laquo;по умолчанию&raquo; не требует никаких дополнительных параметров:</p>
<pre>$ ecryptfs-setup-private</pre>
<p>На следующий запрос введите ваш пароль, который используете при аутентификации в системе:</p>
<pre>Enter your login passphrase:</pre>
<p>После вам будет предложено ввести пароль, который будет использоваться при монтировании. Если не заполнять это поле, то пароль будет сгенерирован автоматически:</p>
<pre>Enter your mount passphrase [leave blank to generate one]:</pre>
<p>Очередное напоминание для забывчивых:</p>
<pre>************************************************************************
YOU SHOULD RECORD YOUR MOUNT PASSPHRASE AND STORE IT IN A SAFE LOCATION.
  ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
THIS WILL BE REQUIRED IF YOU NEED TO RECOVER YOUR DATA AT A LATER TIME.
************************************************************************</pre>
<p>создание файлов, каталогов и тестирование:</p>
<pre>Done configuring.
Testing mount/write/umount/read...
Testing succeeded.</pre>
<p>И, наконец, сообщение о том, что теперь достаточно перевойти в систему, чтобы начать пользоваться благами цивилизации:</p>
<pre>Logout, and log back in to begin using your encrypted directory.</pre>
<p>Заново авторизуйтесь с системе и посмотрите, смонтировался ли каталог <strong>~/.Private</strong>:</p>
<pre>$ mount | grep Private
/home/ashep/.Private on /home/ashep/Private type ecryptfs (ecryptfs_sig=1ed127ee6eb43a05,ecryptfs_fnek_sig=2f5ceedfd83a052d,ecryptfs_cipher=aes,ecryptfs_key_bytes=16)</pre>
<p>Всё отлично, самое время проверить работоспособность нашего нового хранилища:</p>
<pre>$ echo "Hello, world" &gt; ~/Private/hello.txt
$ ls -l ~/.Private/
total 12
-rw-r--r-- 1 ashep ashep 12288 Feb  7 03:14 ECRYPTFS_FNEK_ENCRYPTED.FWYjLCvTq1c39ETk7I99JlZPttqOZToCEDxsV7hasxemXl1ISz2J-43cKk--</pre>
<p>Теперь, когда вы выйдите из системы, модуль pam_ecryptfs автоматически размонтирует точку <strong>~/Private</strong>, таким образом оставив ваши данные в зашифрованном каталоге <strong>~/.Private</strong>. Если вы не хотите, чтобы каталог <strong>~/Private</strong> монтировался и/или размонтировался автоматически, удалите соответственно файл <strong>~/.ecryptfs/auto-mount</strong> и/или <strong>~/.ecryptfs/auto-umount</strong>.</p>
<p>Также имейте ввиду, что сценарий <strong>ecryptfs-setup-private</strong> принимает ряд опций, при помощи которых вы можете управляет его поведением:</p>
<pre>$ ecryptfs-setup-private --help

Usage:

/usr/bin/ecryptfs-setup-private [-f|--force] [-w|--wrapping] [--nopwcheck] [-n|--no-fnek]
  [-u|--username USER] [-l|--loginpass LOGINPASS]
  [-m|--mountpass MOUNTPASS]

 -f, --force      Force overwriting of an existing setup
 -w, --wrapping   Use an independent wrapping passphrase,
                  different from the login passphrase
 -n, --no-fnek    Do not encrypt filenames; If this flag is
                  omitted, and the kernel supports filename
                  encryption, then filenames will be encrypted
 -u, --username   Username for encrypted private mountpoint,
                  defaults to yourself
 -l, --loginpass  Login/Wrapping passphrase for USER,
                  used to wrap MOUNTPASS
 --nopwcheck      Do not check the validity of the specified
                  login password (useful for LDAP user accounts)
 --noautomount    Setup this user such that the encrypted private
                  directory is not automatically mounted on login
 --noautoumount   Setup this user such that the encrypted private
                  directory is not automatically unmounted at
                  logout
 -m, --mountpass  Passphrase for mounting the ecryptfs directory,
                  defaults to randomly generated 16 bytes
 -b, --bootstrap  Bootstrap a new user's entire home directory
                  Generates a random mount passphrase, which
          will be wrapped when the new login passphrase
          is set. SHOULD ONLY BE CALLED FROM 'adduser'.
 --undo           Provide instructions on how to undo an
                  encrypted private setup
   Be sure to properly escape your parameters according to your
   shell's special character nuances, and also surround the
   parameters by double quotes, if necessary.</pre>
<h3>Полное шифрование домашнего каталога</h3>
<p>Идея хранения критически-важных данных в отдельном каталоге очень даже недурна собой, но не лишена очевидного недостатка. А именно: вы обязаны постоянно выбирать, что нужно шифровать, а что не нужно. Ну, или хранить вообще всё в Private-каталоге, что, мягко-говоря, не очень удобно. Вместо того, чтобы выделять отдельный каталог, не лучше ли зашифровать вообще весь домашний каталог? Именно это и предлагает вам Ubuntu при установке, и именно eCryptfs она для этого использует!</p>
<p>Если вы при установке выбрали опцию, показанную на скриншоте в начале статьи, то вы уже являетесь счастливым защищённым от врага пользователем. Если же это не так, но вам очень хочется спрятать от чужих глаз свои данные в случае чего и вы уже поняли, что eCryptfs&nbsp;&mdash; это именно то, что вам нужно для этого, то нет проблем!</p>
<p>Основная загвоздка при полном шифровании домашнего каталога состоит в том, что необходимо &laquo;вынести&raquo; каталог с зашифрованными данными за пределы точки монтирования. Разработчики Ubuntu решили проблему очень просто:</p>
<pre># ls -l /home/ashep/.Private
lrwxrwxrwx 1 ashep ashep 30 2011-12-07 04:44 /home/ashep/.Private -&gt; /home/.ecryptfs/ashep/.Private</pre>
<p>То есть, в домашнем каталоге находится лишь символическая ссылка, следуя которой, eCryptfs монтирует нужный каталог. При этом, точка монтирования переопределена в файле <strong>~/.ecryptfs/Private.mnt</strong> и указывает на домашний каталог пользователя, т. е., в данном случае, на <strong>/home/ashep</strong>. Гениально и просто!</p>
<p>Чтобы избавить вас от необходимости перемещать файлы и настраивать вручную все пути и символические ссылки, разработчики предлагают shell-сценарий <strong>ecryptfs-migrate-home</strong>, который проделает всю &laquo;грязную&raquo; работу за вас. Также разработчики предупреждают о том, что этот сценарий может сделать ваши данные недоступными, если вдруг что-то пойдёт не так, <strong>поэтому обязательно сделайте <a href="http://www.ashep.org/tag/backup/">резервную копию</a> перед тем, как будете запускать скрипт!</strong> Также перед запуском убедитесь, что в системе установлены утилиты <a href="http://www.ashep.org/tag/rsync/"><strong>rsync</strong></a> и <strong>lsof</strong>, а также в том, что на разделе, где находится <strong>/home</strong>, имеется достаточно свободного места<strong>.<br />
</strong></p>
<p>Сценарий необходимо запускать от root, передав в качестве параметра логин пользователя, который &laquo;мигрирует&raquo;. Пользователь не должен находится в системе, а также от его имени не должно быть запущено ни одного процесса.</p>
<pre># ecryptfs-migrate-home -u ashep</pre>
<pre>INFO:  Checking disk space, this may take a few moments.  Please be patient.
INFO:  Checking for open files in /home/ashep

************************************************************************
YOU SHOULD RECORD YOUR MOUNT PASSPHRASE AND STORE IT IN A SAFE LOCATION.
  ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
THIS WILL BE REQUIRED IF YOU NEED TO RECOVER YOUR DATA AT A LATER TIME.
************************************************************************

Done configuring.

INFO:  Encrypted home has been set up, encrypting files now...this may take a while.

========================================================================
Some Important Notes!

 1. The file encryption appears to have completed successfully, however,
    ashep MUST LOGIN IMMEDIATELY, _BEFORE_THE_NEXT_REBOOT_,
    TO COMPLETE THE MIGRATION!!!

 2. If ashep can log in and read and write their files, then the migration is complete,
    and you should remove /home/ashep.81yFQbNJ.
    Otherwise, restore /home/ashep.81yFQbNJ back to /home/ashep.

 3. ashep should also run 'ecryptfs-unwrap-passphrase' and record
    their randomly generated mount passphrase as soon as possible.
 4. To ensure the integrity of all encrypted data on this system, you
    should also encrypted swap space with 'ecryptfs-setup-swap'.
========================================================================</pre>
<p>Если всё пройдёт успешно, то, как требует сценарий, <strong>мигрировавший пользователь должен войти в систему до перезагрузки</strong>. Также обратите внимание, что скрипт оставляет копию незашифрованных данных в отдельном каталоге (в приведённом примере это <strong>/home/ashep.81yFQbNJ</strong>), который необходимо удалить после того, как пользователь определит, что всё прошло успешно.</p>
<p>Теперь, когда мигрировавший пользователь войдёт в систему, его домашний каталог будет смонтирован следующим образом:</p>
<pre>$ mount | grep Private
/home/ashep/.Private on /home/ashep type ecryptfs (ecryptfs_sig=d8324d90c49de223,ecryptfs_fnek_sig=c4c68e3df79abc0a,ecryptfs_cipher=aes,ecryptfs_key_bytes=16)</pre>
<p>при этом <strong>~/.Private</strong> является символической ссылкой на каталог за пределами домашней папки:</p>
<pre>$ ls -l /home/ashep/.Private
lrwxrwxrwx 1 ashep ashep 30 Feb  7 03:48 /home/ashep/.Private -&gt; /home/.ecryptfs/ashep/.Private</pre>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/ecryptfs-i-shifrovanie-domashnego-kataloga-v-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/ecryptfs-i-shifrovanie-domashnego-kataloga-v-linux/</feedburner:origLink></item>
		<item>
		<title>Grub2: запоминание последней загруженной ОС</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/T9gzPHg0UME/</link>
		<comments>http://www.ashep.org/2012/grub2-zapominanie-poslednej-zagruzhennoj-os/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 03:30:29 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Система]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[Grub2]]></category>
		<category><![CDATA[загрузка]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2648</guid>
		<description><![CDATA[У меня, как думаю, и у многих читателей, в компьютере установлено более одной ОС. Специфика моей работы такова, что какой-то период времени я чаще всего использую только одну ОС. По прошествии некоторого времени я &#171;переключаюсь&#187; на использование другой ОС, опять-таки, лишь на какой-то промежуток времени. И так далее. Основное неудобство, которое мне доставляла такая схема [...]]]></description>
			<content:encoded><![CDATA[<p>У меня, как думаю, и у многих читателей, в компьютере установлено более одной ОС. Специфика моей работы такова, что какой-то период времени я чаще всего использую только одну ОС. По прошествии некоторого времени я &laquo;переключаюсь&raquo; на использование другой ОС, опять-таки, лишь на какой-то промежуток времени. И так далее. Основное неудобство, которое мне доставляла такая схема работы, это необходимость выбирать нужную ОС в меню <strong>Grub</strong> при загрузке. Иными словами, мне было нужно, чтобы загрузчик помнил, какую ОС последней я использовал, и автоматически загружал её, если я не выберу что-либо другое в меню загрузки за отведённое время. Решение быстрое и простое.</p>
<p><img class="size-full wp-image-2662 aligncenter" title="OS choice" src="http://www.ashep.org/wp-content/uploads/2012/02/grub-savedefault.png" alt="" width="250" height="233" /><br />
<span id="more-2648"></span>
<p>Всё, что нужно для того, чтобы осуществить задуманное, это добавить переменную <strong>GRUB_SAVEDEFAULT</strong>  в файл <strong>/etc/defaul/grub</strong> и установить её значение равным <strong>true</strong>:</p>
<pre>GRUB_SAVEDEFAULT=true</pre>
<p>После чего сообщить <strong>Grub</strong> о том, что по умолчанию мы хотим загружать именно последнюю выбранную ОС:</p>
<pre>GRUB_DEFAULT="saved"</pre>
<p>и обновить конфигурацию:</p>
<pre># update-grub2</pre>
<p>Всё! Теперь в 98% случаев можно наслаждаться собственной ленью выбирать ОС для загрузки :) И да, не забудьте, что если каталог <strong>/boot</strong> вашей системы расположен на <strong>RAID</strong>, <strong>LVM</strong> или файловой системе <strong>ZFS</strong>, то <strong>Grub</strong>, <a href="http://www.gnu.org/software/grub/manual/grub.html#Environment-block">по определённым причинам</a>,  не сможет сохранять ваш последний выбор.</p>
<hr />
<p>Давно подумываете о приобретении новенького телевизора в гостиную? Тем, кто собрался <a href="http://vipmb.ru/philips_298_0">купить LED-телевизор Philips</a>, будет не лишним посетить каталог интернет-магазинов, чтобы выбрать подходящую модель по низкой цене.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/grub2-zapominanie-poslednej-zagruzhennoj-os/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/grub2-zapominanie-poslednej-zagruzhennoj-os/</feedburner:origLink></item>
		<item>
		<title>Лечение отключающегося TouchPad в Ubuntu Unity</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/UsNCL5cLP60/</link>
		<comments>http://www.ashep.org/2012/lechenie-otklyuchayushhegosya-touchpad-v-ubuntu-unity/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 21:44:50 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[TouchPad]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2650</guid>
		<description><![CDATA[Недавно в Ubuntu 11.10 мной (и, как оказалось, не только) была обнаружена неприятная особенность. При использовании Unity в качестве рабочего окружения, самопроизвольно отключался TouchPad ноутбука практически сразу после входа в систему. Тех, у кого такая же проблема, и они не знают что с ней делать, прошу под кат. Народ на форумах отчитывается о различных способах [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно в <strong>Ubuntu 11.10</strong> мной (и, как оказалось, не только) была обнаружена неприятная особенность. При использовании <strong>Unity</strong> в качестве рабочего окружения, самопроизвольно отключался TouchPad ноутбука практически сразу после входа в систему. Тех, у кого такая же проблема, и они не знают что с ней делать, прошу под кат.</p>
<p><img class="size-full wp-image-2657 aligncenter" title="broken mouse" src="http://www.ashep.org/wp-content/uploads/2012/02/broken-mouse.jpg" alt="" width="331" height="276" /><br />
<span id="more-2650"></span>
<p>Народ на форумах <a href="http://www.ashep.org/goto/http://www.google.com/search?q=ubuntu+touchpad+freezes">отчитывается</a> о различных способах решения проблемы, начиная от перезапуска <em>Unity</em>  с ключом <em>--replace</em>, до переустановки драйверов <em>Synaptics</em>. На мой взгляд, самым быстрым и практически безболезненным решением является следующее (представим, тачпад у вас уже &laquo;замёрз&raquo;).</p>
<p>При помощи комбинации <strong>&lt;Super+A&gt;</strong> открываем линзу приложений и при помощи строки поиска отыскиваем <strong>System Settings</strong>:</p>
<p><img class="wp-image-2653 aligncenter" title="System Settings" src="http://www.ashep.org/wp-content/uploads/2012/02/touchpad-freezes-01.png" alt="" width="600" height="352" /></p>
<p>С клавиатуры запускаем его и, при помощи всё той же клавиатуры, запускаем апплет <strong>Mouse and Touchpad</strong>:</p>
<p><img class="size-full wp-image-2654 aligncenter" title="Mouse and Touchpad" src="http://www.ashep.org/wp-content/uploads/2012/02/touchpad-freezes-02.png" alt="" width="600" height="450" /></p>
<p>Переходим на вкладку <strong>Touchpad</strong> и снимаем птицу <strong>Disable touchpad while typing</strong>:</p>
<p><img class="size-full wp-image-2655 aligncenter" title="Disable touchpad while typing" src="http://www.ashep.org/wp-content/uploads/2012/02/touchpad-freezes-03.png" alt="" width="600" height="432" /></p>
<p>Используя комбинацию <strong>&lt;Ctrl+Alt+Del&gt;</strong>, выходим из системы:</p>
<p><img class="size-full wp-image-2656 aligncenter" title="Logout" src="http://www.ashep.org/wp-content/uploads/2012/02/touchpad-freezes-04.png" alt="" width="600" height="431" /></p>
<p>И заходим заново. После этого внезапное отключение тачпада должно перестать вас беспокоить. Что является причиной такому поведению: глюк в Unity или драйверах Synaptics&nbsp;&mdash; я выяснять не стал, поскольку лёгкое решение проблемы заставило забыть о ней уже через минуту. Может быть, найдутся желающие (и знающие английский на нужном уровне) отправить багрепорт разработчикам?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/lechenie-otklyuchayushhegosya-touchpad-v-ubuntu-unity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/lechenie-otklyuchayushhegosya-touchpad-v-ubuntu-unity/</feedburner:origLink></item>
		<item>
		<title>Программный RAID в Linux. Расширение массива</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/nOTLzu9o97E/</link>
		<comments>http://www.ashep.org/2012/programmnyj-raid-v-linux-rasshirenie-massiva/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 21:59:39 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Система]]></category>
		<category><![CDATA[md]]></category>
		<category><![CDATA[mdadm]]></category>
		<category><![CDATA[RAID]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2639</guid>
		<description><![CDATA[Как известно, дискового пространства много не бывает и, рано или поздно, многие сталкиваются с необходимостью добавления в массив новых дисков. О том, как это делается при использовании драйвера md&#160;&#8212; в сегодняшней заметке. Расширение массива, которое можно проводить для всех уровней RAID, кроме нулевого, состоит из двух (трёх для RAID 4/5) этапов: добавления нового устройства, расширения [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно, дискового пространства много не бывает и, рано или поздно, многие сталкиваются с необходимостью добавления в массив новых дисков. О том, как это делается при использовании драйвера <strong>md</strong>&nbsp;&mdash; в сегодняшней заметке.</p>
<p><img class="size-full wp-image-2641 aligncenter" title="hdd" src="http://www.ashep.org/wp-content/uploads/2012/01/hdd.jpg" alt="" width="250" height="215" /><br />
<span id="more-2639"></span>
<p>Расширение массива, которое можно проводить для всех уровней RAID, кроме нулевого, состоит из двух (трёх для RAID 4/5) этапов: добавления нового устройства, расширения массива (и, для RAID 5/6, расширения файловой системы). Обо всём по порядку.</p>
<h3>Добавление нового устройства</h3>
<p>Допустим, у нас имеется массив RAID-5 общей ёмкостью 16GiB, состоящий из трёх устройств, ёмкостью по 8 GiB каждое:</p>
<pre>#  mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jan 31 17:23:21 2012
     Raid Level : raid5
     Array Size : 16774144 (16.00 GiB 17.18 GB)
  Used Dev Size : 8387072 (8.00 GiB 8.59 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Tue Jan 31 17:28:43 2012
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : debian-test0:0  (local to host debian-test0)
           UUID : a1f02ec1:81276abd:595fe0f9:8c9b3bd0
         Events : 48
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd</pre>
<p>и к нему понадобилось добавить новый диск, находящийся за файлом <strong>/dev/sde</strong>, ёмкостью также 8 GiB. На устройстве /dev/md0 в данный момент у нас расположена файловая система ext4, размеров 16 GiB. Целью добавления нового устройства является увеличение размера файловой системы.</p>
<p>Добавить новое устройство к массиву очень просто:</p>
<pre># mdadm --add /dev/md0 /dev/sde
mdadm: added /dev/sde</pre>
<p>Посмотрим на состояние массива:</p>
<pre># mdadm --detail /dev/md0
...
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd
       4       8       64        -      spare   /dev/sde</pre>
<p>Как видим, диск <strong>/dev/sde</strong> добавился как запасной, то есть, он зарезервирован для массива на случай выхода из строя одного из дисков, и не используется. Теперь. когда в массиве есть свободное (неактивное) устройство, можно расширить массив:</p>
<pre># mdadm --grow --raid-devices=4 --backup-file=/root/md0_growing.backup /dev/md0
mdadm: Need to backup 3072K of critical section.</pre>
<p>Обратите внимание на опцию <em>--backup-file</em>. Значением этой опции является путь к файлу, в который записываются критически-важные данные, пока массив расширяется. Содержимое этого файла пригодится вам в случае, если вдруг в момент расширения массива процесс будет внезапно прерван отключением питания сервера или чем-то подобным. Логично этот файл сохранять на диске, который не является частью расширяемого массива :)</p>
<p>Посмотрим на состояние массива теперь:</p>
<pre># mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jan 31 17:23:21 2012
     Raid Level : raid5
     Array Size : 16774144 (16.00 GiB 17.18 GB)
  Used Dev Size : 8387072 (8.00 GiB 8.59 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Tue Jan 31 17:47:10 2012
          State : clean, recovering
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

 Reshape Status : 14% complete
  Delta Devices : 1, (3-&gt;4)

           Name : debian-test0:0  (local to host debian-test0)
           UUID : a1f02ec1:81276abd:595fe0f9:8c9b3bd0
         Events : 102
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd
       4       8       64        3      active sync   /dev/sde</pre>
<p>Как видим, ёмкость массива осталась (пока) прежней, количество активных устройств увеличилось, как мы и просили, статус массива сменился на <em>recovering</em>, поскольку драйвер <strong>md</strong> занялся перестроением массива:</p>
<pre>Reshape Status : 14% complete
Delta Devices : 1, (3-&gt;4)</pre>
<p>После того, как процесс расширения будет завершён, посмотрим на размер массива:</p>
<pre>Array Size : 25161216 (24.00 GiB 25.77 GB)</pre>
<p>чего мы, собственно, и ожидали. Однако, как обстоят дела с файловой системой?</p>
<pre># mount /dev/md0 /mnt/md0
# df -h /dev/md0
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               16G  172M   15G   2% /mnt/md0</pre>
<p>Как видно, файловая система осталась прежнего размера, поскольку ей ничего неизвестно о наших операциях с массивом.</p>
<h3>Расширение файловой системы</h3>
<p>Чтобы изменить размер файловой системы ext2/&frac34;, необходимо воспользоваться утилитой <strong>resize2fs</strong>, которая умеет изменять размер ФС на лету, если у вас ядро &gt;= 2.6. Вызванная без параметров, утилита расширит файловую систему до максимально возможного размера:</p>
<pre># resize2fs /dev/md0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/md0 is mounted on /mnt/md0; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/md0 to 6290304 (4k) blocks.
The filesystem on /dev/md0 is now 6290304 blocks long.</pre>
<p>Умножив 6290304 блока на 4 KiB, получим 25162416 KiB или же 24 GiB, что соответствует размеру массива.</p>
<pre># df -h /dev/md0
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               24G  172M   23G   1% /mnt/md0</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/programmnyj-raid-v-linux-rasshirenie-massiva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/programmnyj-raid-v-linux-rasshirenie-massiva/</feedburner:origLink></item>
		<item>
		<title>Бесплатный backup DNS для ваших сайтов</title>
		<link>http://feedproxy.google.com/~r/ashep/NotesAboutOSS/~3/4AkdLT_w4Xc/</link>
		<comments>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 18:30:17 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2623</guid>
		<description><![CDATA[Думаю, многие сейчас пользуются услугами VPS-хостинга, благо провайдеров развелось множество, да и цены приятно радуют. При организации поддержки DNS доменных имён своих серверов и сайтов можно использовать как сервера регистратора, так и свои собственные. Если же вы решили самостоятельно организовать поддержку DNS своих доменов, но у вас в распоряжении всего один сервер, то тут же [...]]]></description>
			<content:encoded><![CDATA[<p>Думаю, многие сейчас пользуются услугами VPS-хостинга, благо провайдеров развелось множество, да и цены приятно радуют. При организации поддержки DNS доменных имён своих серверов и сайтов можно использовать как сервера регистратора, так и свои собственные. Если же вы решили самостоятельно организовать поддержку DNS своих доменов, но у вас в распоряжении всего один сервер, то тут же возникает вопрос: как организовать поддержку вторичного (aka &laquo;backup&raquo;) DNS? Хорошо, если ваш хостинг-провайдер предоставляет такую услугу. А если нет? На помощь придёт сервис бесплатного DNS-хостинга <a href="http://freedns.afraid.org">freedns.afraid.org</a>.</p>
<p><img class="size-full wp-image-2625 aligncenter" title="Backup DNS" src="http://www.ashep.org/wp-content/uploads/2012/01/vhost.jpg" alt="" width="250" height="188" /><br />
<span id="more-2623"></span>
</p>
<h3>Регистрация</h3>
<p>Регистрация на сервисе займёт пару минут и заключается в посещении <a href="http://freedns.afraid.org/signup/">страницы регистрации нового пользователя</a> сервиса, её заполнении (указывайте живой имейл, поскольку учётную запись нужно будет активировать, плюс восстановление пароля в случае чего&nbsp;&mdash; вещь небесполезная) и активации учётной записи.</p>
<p><img class="size-thumbnail wp-image-2626 aligncenter" title="backup-dns-01" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-01-600x470.png" alt="" width="600" height="470" /></p>
<h3>Добавление зоны</h3>
<p>После того, как вы успешно зарегистрируетесь и авторизуетесь в панели управления, можно добавлять зону. В левом меню выберите <em>Backup DNS</em>, после чего в центральной части панели&nbsp;&mdash; <em>&laquo;Add a domain&raquo;</em>:</p>
<p><img class="size-full wp-image-2627 aligncenter" title="Добавление зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-02.png" alt="" width="600" height="163" /></p>
<p>Введите имя зоны, а также имя первичного DNS-сервера и нажмите кнопку <em>&laquo;check&raquo;</em>:</p>
<p><img class="size-full wp-image-2628 aligncenter" title="Добавление зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-03.png" alt="" width="272" height="139" /></p>
<p>В случае успешной проверки вы получите сообщение об этом:</p>
<p><img class="size-thumbnail wp-image-2629 aligncenter" title="Новая зона успешно добавлена" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-04-600x17.png" alt="" width="600" height="17" /></p>
<p>Если сервис сообщит об ошибке, проверьте логи своего первичного DNS-сервера, а также конфигурацию на предмет запрета трансфера зоны потусторонним серверам. Ваш сервер должен разрешать трансфер зоны серверу <strong>ns2.afraid.org</strong>.</p>
<h3>Проверка</h3>
<p>Если ваш сервер DNS корректно настроен, то через пару минут в разделе протоколов <em>&laquo;Backup DNS&raquo;</em> вы увидите сообщение об успешной передаче зоны:</p>
<p><img class="size-thumbnail wp-image-2630 aligncenter" title="Успешная передача зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-05-600x177.png" alt="" width="600" height="177" /></p>
<h3>Обновление NS записей в БД регистратора</h3>
<p>После того, как всё проверено и зона успешно передаётся backup-серверу, осталось лишь обновить информацию о вторичном DNS-сервере у регистратора вашего домена, установив значение соответствующего поля равным <strong>ns2.afraid.org</strong>:</p>
<p><img class="size-thumbnail wp-image-2632 aligncenter" title="Обновление NS-записей у регистратора" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-06-600x300.png" alt="" width="600" height="300" /></p>
<h3>ЗЫЖ</h3>
<p>Заметка не рекламная.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/</feedburner:origLink></item>
	</channel>
</rss>

