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

<channel>
	<title>Unix pin &#187; Programming &#8211; Shell</title>
	<atom:link href="http://www.unixpin.com/wordpress/category/shell/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unixpin.com/wordpress</link>
	<description>unix: советы, примеры, решения</description>
	<lastBuildDate>Mon, 06 Sep 2010 10:56:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Solaris (x86) format: быстро пролейблить диски</title>
		<link>http://www.unixpin.com/wordpress/2010/09/06/solaris-x86-format-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%bf%d1%80%d0%be%d0%bb%d0%b5%d0%b9%d0%b1%d0%bb%d0%b8%d1%82%d1%8c-%d0%b4%d0%b8%d1%81%d0%ba%d0%b8/</link>
		<comments>http://www.unixpin.com/wordpress/2010/09/06/solaris-x86-format-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%bf%d1%80%d0%be%d0%bb%d0%b5%d0%b9%d0%b1%d0%bb%d0%b8%d1%82%d1%8c-%d0%b4%d0%b8%d1%81%d0%ba%d0%b8/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 10:56:00 +0000</pubDate>
		<dc:creator>ait</dc:creator>
				<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Sun - Software]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Шпаргалки]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=740</guid>
		<description><![CDATA[В продолжение этой заметки &#8211; та же задача, для x86-й версии соляриса. Идеология немного другая &#8211; вначале создаём MBR-раздел на сыром диске,  и уже в нём нарезаем привычные слайсы. 1. Создаём раздел с помощью fdisk. Raw-устройство в формате cxtxdxpx: fdisk -B /dev/rdsk/c0t0d0p0 2. Создаём слайс(ы) с помощью format, либо копируем их посредством fmthard. В качестве [...]]]></description>
			<content:encoded><![CDATA[<p>В продолжение <a href="http://www.unixpin.com/wordpress/2010/06/15/solaris-format-label-disks/">этой заметки </a> &#8211; та же задача, для x86-й версии соляриса.</p>
<p>Идеология немного другая &#8211; вначале создаём MBR-раздел на сыром диске,  и уже в нём нарезаем привычные слайсы.</p>
<p>1. Создаём раздел с помощью <em>fdisk</em>. Raw-устройство в формате <strong>c</strong>x<strong>t</strong>x<strong>d</strong>x<strong>p</strong>x:</p>
<pre>fdisk -B /dev/rdsk/c0t0d0<strong>p0</strong></pre>
<p>2. Создаём слайс(ы) с помощью <em>format</em>, либо копируем их посредством <em>fmthard</em>. В качестве аргументов нужно уже использовать формат <strong>c</strong>x<strong>t</strong>x<strong>d</strong>x<strong>s</strong>x:</p>
<pre><code>echo label | format /dev/rdsk/c0t0d0<strong>s2</strong></code>
</pre>
<pre><strong></strong>prtvtoc /dev/rdsk/c0t0d0<strong>s4</strong> | fmthard -s - /dev/rdsk/c1t0d0<strong>s4</strong></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2010/09/06/solaris-x86-format-%d0%b1%d1%8b%d1%81%d1%82%d1%80%d0%be-%d0%bf%d1%80%d0%be%d0%bb%d0%b5%d0%b9%d0%b1%d0%bb%d0%b8%d1%82%d1%8c-%d0%b4%d0%b8%d1%81%d0%ba%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7zip в Solaris</title>
		<link>http://www.unixpin.com/wordpress/2010/08/20/7zip-solaris/</link>
		<comments>http://www.unixpin.com/wordpress/2010/08/20/7zip-solaris/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 12:06:04 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Sun - Software]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[7-zip]]></category>
		<category><![CDATA[7z]]></category>
		<category><![CDATA[7za]]></category>
		<category><![CDATA[7zip]]></category>
		<category><![CDATA[7zr]]></category>
		<category><![CDATA[archiver]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[p7zip]]></category>
		<category><![CDATA[solaris 10]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=726</guid>
		<description><![CDATA[Оказывается, что помимо стандартных compress, zip, gzip ,bzip2 в Solaris 10 входит еще и 7zip, что не может не радовать.  Chapter 4 What&#8217;s New in the Solaris 10 5/08 Release # 7z -? 7-Zip 4.55 beta Copyright (c) 1999-2007 Igor Pavlov 2007-09-05 p7zip Version 4.55 (locale=C,Utf16=off,HugeFiles=on,256 CPUs) Usage: 7z [...] [...] [&#60;@listfiles...&#62;] ... # which 7z [...]]]></description>
			<content:encoded><![CDATA[<p>Оказывается, что помимо стандартных compress, zip, gzip ,bzip2 в Solaris 10 входит еще и <a href="http://7-zip.org/" target="_blank">7zip</a>, что не может не радовать.  <a href="http://docs.sun.com/app/docs/doc/817-0547/gghpo?a=view" target="_blank">Chapter 4 What&#8217;s New in the Solaris 10 5/08 Release</a></p>
<p><code> # 7z -?</code></p>
<p><code>7-Zip 4.55 beta  Copyright (c) 1999-2007 Igor Pavlov  2007-09-05<br />
p7zip Version 4.55 (locale=C,Utf16=off,HugeFiles=on,256 CPUs)</code></p>
<p><code> </code><br />
<span id="more-726"></span><br />
<code>Usage: 7z  [...]  [...]<br />
[&lt;@listfiles...&gt;]<br />
...<br />
# which 7z<br />
/usr/bin/7z<br />
# grep /usr/bin/7z /var/sadm/install/contents<br />
/usr/bin/7z f none 0555 root bin 410828 28364 1203706028 SUNWbzip<br />
/usr/bin/7za f none 0555 root bin 1320752 30201 1203706028 SUNWbzip<br />
/usr/bin/7zr f none 0555 root bin 793776 31270 1203706028 SUNWbzip<br />
</code><br />
Что характерно, находится в том же пакадже, что и bzip2 (кстати, может паковать в любой из далее перечисленных архивов : 7z, zip, gzip, bzip2, tar)</p>
<p><del datetime="2010-08-23T05:43:13+00:00">К сожалению, пакует только в один поток, во всяком случае в манах не описано как запустить многопоточность, а то процессоров навалом &#8211; нужно их нагружать, обидно</del>. Бинарники под Solaris идут под версию 4.5 (на sunfreeware &#8211; 4.6),  а <a href="http://sourceforge.net/projects/p7zip/files/" target="_blank">сырцы уже версии 9</a><del datetime="2010-08-23T05:43:13+00:00">, может там многопоточность реализована</del>.</p>
<p><strong>UPDATE: 20100823</strong><br />
Волшебные ключики для multithreading :  <code>-mmt=16  -m0=bzip2</code> ( работает только для bzip2 и lzma алгоритмов )<br />
Результат экспериментов  на 8-ми процессорном SunFire 880:<br />
<code># rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=off -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m12.160s</strong><br />
user    0m11.949s<br />
sys     0m0.118s<br />
# rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=2 -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m6.866s</strong><br />
user    0m12.163s<br />
sys     0m0.136s<br />
# rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=4 -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m3.978s</strong><br />
user    0m12.005s<br />
sys     0m0.159s<br />
# rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=8 -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m2.944s</strong><br />
user    0m12.192s<br />
sys     0m0.223s<br />
# rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=16 -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m2.912s</strong><br />
user    0m13.039s<br />
sys     0m0.357s<br />
# rm /tmp/test.7z ;time 7z a  -t7z -m0=bzip2 -mmt=32 -bd /tmp/test /var/sadm/patch/  &gt;/dev/null<br />
<strong>real    0m3.014s</strong><br />
user    0m12.889s<br />
sys     0m0.574s</code><br />
Оптимальное число потоков для этого сервера &#8211; 16 ( проверка еще на нескольких серверах &#8211; показывает, что параметр <strong>-mmt=16</strong> будет лучшим выбором )</p>
<p>Интересное замечание в манах:<br />
<code>Backup and limitations<br />
DO NOT USE the 7-zip format for backup purpose on Linux/Unix<br />
because :<br />
- 7-zip does not store the owner/group of the file.</code></p>
<p><code> </code></p>
<p><code> On Linux/Unix, in order to backup directories you  must  use<br />
tar :<br />
- to backup a directory  : tar cf - directory | 7za  a  -si  directory.tar.7z<br />
- to restore your backup : 7za x -so directory.tar.7z | tar  xf -</code></p>
<p>Ссылки в тему:<br />
<a href="http://docs.sun.com/app/docs/doc/817-0547/gghpo?a=view" target="_blank">Chapter 4 What&#8217;s New in the Solaris 10 5/08 Release</a><br />
<a href="http://7-zip.org/" target="_blank">7zip</a><br />
<a href="http://sourceforge.net/projects/p7zip/files/" target="_blank">Source of p7zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2010/08/20/7zip-solaris/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solaris format: быстро пролейблить диски</title>
		<link>http://www.unixpin.com/wordpress/2010/06/15/solaris-format-label-disks/</link>
		<comments>http://www.unixpin.com/wordpress/2010/06/15/solaris-format-label-disks/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 10:58:25 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Hardware - Sun]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[add]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[Hardware->Sun]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[lable]]></category>
		<category><![CDATA[lun]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[san]]></category>
		<category><![CDATA[Unix->Solaris]]></category>
		<category><![CDATA[диск]]></category>
		<category><![CDATA[лэйбл]]></category>
		<category><![CDATA[новый]]></category>
		<category><![CDATA[формат]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=682</guid>
		<description><![CDATA[После добавления новых дисков в Solaris их нужно пролейблить (пример). Обычно это делают руками в команде format, но если дисков много, то это первращается в гемор. Итак, быстрый метод: # devfsadm # echo label &#62; /tmp/cmd.txt # echo quit &#62;&#62; /tmp/cmd.txt # for i in /dev/rdsk/*s2; do format -f /tmp/cmd.txt $i; done UPDATE 20100728 Самый [...]]]></description>
			<content:encoded><![CDATA[<p>После добавления новых дисков в Solaris их нужно пролейблить (<a href="http://www.unixpin.com/wordpress/2008/08/25/add-lun-in-solaris-with-jni-hba/">пример</a>). Обычно это делают руками в команде format, но если дисков много, то это первращается в гемор. Итак, быстрый метод:</p>
<p><code><br />
# devfsadm<br />
# echo label &gt; /tmp/cmd.txt<br />
# echo quit &gt;&gt; /tmp/cmd.txt<br />
# for i in /dev/rdsk/*s2; do format -f /tmp/cmd.txt $i; done</code></p>
<p>UPDATE 20100728<br />
Самый простой и быстрый способ:<br />
<code>for i in /dev/rdsk/*s2 ;do echo label | format $i ;done</code></p>
<p>Ссылки<br />
Первоисточник: <a href="http://www.akamit.com/blog/2010/03/labeling-large-number-of-luns-in-solaris" target="_blank">Labeling large number of LUNs in Solaris</a><br />
<a href="http://docs.sun.com/app/docs/doc/816-5166/format-1m?l=en&amp;a=view" target="_blank">man format</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2010/06/15/solaris-format-label-disks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Прибил файл, а место не освобождается?</title>
		<link>http://www.unixpin.com/wordpress/2010/01/21/removed-file-space/</link>
		<comments>http://www.unixpin.com/wordpress/2010/01/21/removed-file-space/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 13:30:55 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[deleted]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[removed]]></category>
		<category><![CDATA[space]]></category>
		<category><![CDATA[ufs]]></category>
		<category><![CDATA[Unix->Linux]]></category>
		<category><![CDATA[Unix->Solaris]]></category>
		<category><![CDATA[место]]></category>
		<category><![CDATA[освободить]]></category>
		<category><![CDATA[удален]]></category>
		<category><![CDATA[файл]]></category>
		<category><![CDATA[файловая система]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=604</guid>
		<description><![CDATA[Обычно, когда заканчивается место на файловой системе &#8211; ищем растущие файлы (обычно это логи всякие) и удаляем их. Итак, как правильно удалять файлы? ;) Проверяем, что этот файл не открыт каким-нибудь процессом: fuser /dir/filename Если файл занят, что прибиваем процесс (или делаем корректные действия, чтобы процесс отпустил файл), после этого удаляем. А что делать, если [...]]]></description>
			<content:encoded><![CDATA[<p>Обычно, когда заканчивается место на файловой системе &#8211; <a href="http://www.unixpin.com/wordpress/2008/05/30/overload-filesystem/" target="_blank">ищем растущие файлы</a> (обычно это логи всякие) и удаляем их.<br />
Итак, как правильно удалять файлы? ;)<br />
Проверяем, что этот файл не открыт каким-нибудь процессом:<br />
<code>fuser /dir/filename</code></p>
<p>Если файл занят, что прибиваем процесс (или делаем корректные действия, чтобы процесс отпустил файл), после этого удаляем.</p>
<p>А что делать, если никто ничего не проверял, файлик грохнули, а вот место не освободилось?<br />
<span id="more-604"></span><br />
Ищем процессы с открытыми файлами, у которых количество ссылок равно 0.<br />
<code># find /proc/*/fd/* -type f -links 0<br />
bash: /usr/bin/find: Arg list too long</code></p>
<p>Вот блин, слишком много процессов для find. Ок, пойдем другим путем:</p>
<p><code> # for i in `ls -1 /proc`;do find /proc/$i/fd -type f -links 0 -ls -exec file {} \; ;done<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/22973/fd/11<br />
/proc/22973/fd/11:      empty file<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/23095/fd/11<br />
/proc/23095/fd/11:      empty file<br />
find: stat() error /proc/23165/fd: No such file or directory<br />
find: stat() error /proc/23168/fd: No such file or directory<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/23289/fd/11<br />
/proc/23289/fd/11:      empty file<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/23291/fd/11<br />
/proc/23291/fd/11:      empty file<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/23293/fd/11<br />
/proc/23293/fd/11:      empty file<br />
2403    0 -rw-rw----   0 oracle   dba             0 Dec  1 00:17 /proc/23298/fd/11<br />
/proc/23298/fd/11:      empty file<br />
702090358  8 -rw-------   <strong>0</strong> root     root        20489865 Nov 30 16:48 /proc/<strong>912</strong>/fd/6<br />
/proc/912/fd/6:   <strong>data</strong><br />
</code></p>
<p>Ну вот, похоже процесс, который держит файлик &#8211; 912.<br />
Ну и дальше<br />
<code># ps -f -p 912<br />
UID   PID  PPID   C    STIME TTY         TIME CMD<br />
root     912     1   0   Nov 30 ?           5:45 /my-process.pl<br />
# kill -9 912</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2010/01/21/removed-file-space/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Сколько же памяти занимает ядро?</title>
		<link>http://www.unixpin.com/wordpress/2009/09/28/kernel-memory/</link>
		<comments>http://www.unixpin.com/wordpress/2009/09/28/kernel-memory/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 11:42:43 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Hardware - Sun]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[ipcs]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kstat]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[one-liner]]></category>
		<category><![CDATA[oneliner]]></category>
		<category><![CDATA[shared]]></category>
		<category><![CDATA[size]]></category>
		<category><![CDATA[Unix->Solaris]]></category>
		<category><![CDATA[what]]></category>
		<category><![CDATA[используется]]></category>
		<category><![CDATA[определить]]></category>
		<category><![CDATA[памяти]]></category>
		<category><![CDATA[память]]></category>
		<category><![CDATA[разделяемая]]></category>
		<category><![CDATA[размер]]></category>
		<category><![CDATA[сколько]]></category>
		<category><![CDATA[статистика]]></category>
		<category><![CDATA[физическая]]></category>
		<category><![CDATA[физической]]></category>
		<category><![CDATA[ядро]]></category>
		<category><![CDATA[ядром]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=522</guid>
		<description><![CDATA[Несколько скриптов-однострочников для быстрого взгляда на то, как используется память в Solaris: Физическая память: kstat -n system_pages &#124; nawk 'BEGIN{ "/usr/bin/pagesize" &#124; getline pgsize ; } /physmem/ { print "Physical memory = " $2 * pgsize/1073741824 "Gb"}' Память ядра: kstat -n system_pages &#124; nawk 'BEGIN{ "/usr/bin/pagesize" &#124; getline pgsize ; } /pp_kernel/ { print "Kernel [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько скриптов-однострочников  для быстрого взгляда на то, как используется память в Solaris:</p>
<p>Физическая память:<br />
<code>kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /physmem/ { print "Physical memory = " $2 * pgsize/1073741824 "Gb"}'</code></p>
<p>Память ядра:<br />
<code>kstat -n system_pages | nawk 'BEGIN{  "/usr/bin/pagesize" | getline pgsize ; } /pp_kernel/ { print "Kernel memory = " $2 * pgsize/1073741824 "Gb"}'</code></p>
<p>Разделяемая (shared) память:<br />
<code>ipcs -mb | awk '/^m/ {sm=sm+$7}END{ print "Shared memory " sm/1073741824 "Gb"}'</code></p>
<p>Свободная память:<br />
<code>kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /freemem/ { print "Free memory = " $2 * pgsize/1073741824 "Gb"}'</code></p>
<p>И еще, если присмотреться, то  можно увидеть, как в awk можно выполнить команду shell и прочитать ее вывод ;)</p>
<p>Updated: 29.09.2009/Добавлен однострочник для свободной памяти. Вообщем-то получился не плохой скриптик &#8211; все однострочники в одном файле:<br />
<a href='http://www.unixpin.com/wordpress/wp-content/uploads/2009/09/solarismem.sh'>solarismem</a><br />
Пример вывода:<br />
<code># ./solarismem.sh<br />
Physical memory = 31.2031Gb<br />
Kernel memory = 3.29826Gb<br />
Shared memory 12.9697Gb<br />
Free memory = 13.5944Gb</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/09/28/kernel-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>И снова grep</title>
		<link>http://www.unixpin.com/wordpress/2009/08/05/egrep/</link>
		<comments>http://www.unixpin.com/wordpress/2009/08/05/egrep/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 14:04:54 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - HPUX]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[egrep]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[regular expression]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=497</guid>
		<description><![CDATA[Иногда есть данные и шаблоны, и чтобы выбрать данные &#8211; обычно используют цикл, в котором грепают по шаблону. Но тут недавно внимательно перечитал man grep и нашел интересный момент ;) Можно в одну команду вывести список строк, которые попадают (или не попадают) под шаблон cat data.txt 111 222 333 112 122 233 444 cat template.txt [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда есть данные и шаблоны, и чтобы выбрать данные &#8211; обычно используют цикл, в котором грепают по шаблону. Но тут недавно внимательно перечитал man grep и нашел интересный момент ;) Можно в одну команду вывести список строк, которые попадают (или не попадают) под шаблон </p>
<p><code>cat data.txt<br />
111<br />
222<br />
333<br />
112<br />
122<br />
233<br />
444</code></p>
<p><code>cat template.txt<br />
2<br />
1</code></p>
<p><code>/usr/xpg4/bin/grep -f template.txt data.txt<br />
111<br />
222<br />
112<br />
122<br />
233</code></p>
<p>Или не попадают<br />
<code>/usr/xpg4/bin/grep  -v -f template.txt data.txt<br />
333<br />
444</code></p>
<p>Для чего это можно использовать? Ну например, список новых томов в VxVM, список новых файлов в каталоге &#8211; <strong>удобно  динамически формировать список и сравнивать его со старым списком</strong>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/08/05/egrep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Резервная копия файловой системы с помошью ufsdump</title>
		<link>http://www.unixpin.com/wordpress/2009/06/01/backup_using_ufsdump/</link>
		<comments>http://www.unixpin.com/wordpress/2009/06/01/backup_using_ufsdump/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 11:57:16 +0000</pubDate>
		<dc:creator>jsn</dc:creator>
				<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[fssnap]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[snapshot]]></category>
		<category><![CDATA[ufsdump]]></category>
		<category><![CDATA[бэкап]]></category>
		<category><![CDATA[резервное копирование]]></category>
		<category><![CDATA[снимок]]></category>
		<category><![CDATA[сохранить]]></category>
		<category><![CDATA[файловая система]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=430</guid>
		<description><![CDATA[Старый дедовский способ достаточно быстро забакапить файловую систему ufs. Способ поднятый из манов ;) Решил запостить, чтобы легче было искать. Но и вдруг кому пригодится? ;) Смысл в том, что создается снапшот и на него натравливается ufsdump #!/usr/bin/sh #written by jsn #Copyright unixpin.com #uncomment following 3 lines to use script with cli attributes #ARCHIVE=$1 #SNAPSHOT=$2 [...]]]></description>
			<content:encoded><![CDATA[<p>Старый дедовский способ достаточно быстро забакапить файловую систему ufs.</p>
<p>Способ поднятый из манов ;) Решил запостить, чтобы легче было искать.</p>
<p>Но и вдруг кому пригодится? ;)</p>
<p><span id="more-430"></span></p>
<p>Смысл в том, что создается снапшот и на него натравливается ufsdump</p>
<p>#!/usr/bin/sh</p>
<p>#written by jsn<br />
#Copyright unixpin.com</p>
<p>#uncomment following 3 lines to use script with cli attributes<br />
#ARCHIVE=$1<br />
#SNAPSHOT=$2<br />
#TOBACKUP=$3</p>
<p># and comment these 3 ;)<br />
ARCHIVE=/fsrv/bakups/dump`date &#8216;+%Y%m%d%H%M&#8217;`<br />
SNAPSHOT=/tmp/snap<br />
TOBACKUP=/export/data</p>
<p>LOG=/var/tmp/dump_create.log</p>
<p>#error raising routine<br />
raise_err()<br />
{<br />
echo &laquo;Error: $1&#8243; &gt;&gt;$LOG<br />
echo &laquo;Unable to continue&raquo; &gt;&gt;$LOG<br />
exit 1<br />
}</p>
<p>echo &laquo;Begin dumping at `date &#8216;+%d/%m/%y %H:%M:%S&#8217;`&raquo; &gt;&gt;$LOG</p>
<p>#make snapshot and ufsdump it.</p>
<p>ufsdump 0uf $ARCHIVE `fssnap -F ufs -o raw,bs=$SNAPSHOT $TOBACKUP` &gt;&gt;$LOG 2&gt;&amp;1 || raise_err &laquo;cannot dump&raquo;</p>
<p>#wait to ufsdump end job<br />
while true; do<br />
ps -ef |grep &laquo;ufsdump&raquo; &gt;/dev/null || break<br />
sleep 180<br />
done</p>
<p>#delete snapshot<br />
fssnap -F ufs -d  $TOBACKUP  &gt;&gt;$LOG 2&gt;&amp;1 || raise_err &laquo;cannot kill snapshot&raquo;</p>
<p>echo &laquo;End dumping at `date &#8216;+%d/%m/%y %H:%M:%S&#8217;`&raquo; &gt;&gt;$LOG</p>
<p>Качать [<a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/06/dmpfssh1.txt">dmpfssh1</a>]</p>
<p>Также очень интересная статья про бакапы есть на нашем сайте [<a href="http://www.unixpin.com/wordpress/2008/05/21/remote-backup/">читать</a>].</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/06/01/backup_using_ufsdump/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Создание клона загрузочного диска в VxVM</title>
		<link>http://www.unixpin.com/wordpress/2009/05/06/make-boot-clone-disk-vxvm/</link>
		<comments>http://www.unixpin.com/wordpress/2009/05/06/make-boot-clone-disk-vxvm/#comments</comments>
		<pubDate>Wed, 06 May 2009 09:35:34 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Hardware - Sun]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Veritas - Storage foundation]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[Hardware->Sun]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[storage foundation]]></category>
		<category><![CDATA[symantec]]></category>
		<category><![CDATA[Unix->Solaris]]></category>
		<category><![CDATA[veritas]]></category>
		<category><![CDATA[veritas volume manager command]]></category>
		<category><![CDATA[Veritas->Storage foundation]]></category>
		<category><![CDATA[веритас]]></category>
		<category><![CDATA[загрузочный диск]]></category>
		<category><![CDATA[клон]]></category>
		<category><![CDATA[клонирование]]></category>
		<category><![CDATA[надежность]]></category>
		<category><![CDATA[настройка]]></category>
		<category><![CDATA[скрипт]]></category>
		<category><![CDATA[установить]]></category>
		<category><![CDATA[установка]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=398</guid>
		<description><![CDATA[Ну и в продолжении предыдущей статьи добавляю сюда еще и скрипт для создания клона загрузочного диска в VxVM. Таким образом, если загрузочные диски под веритасом, можно пользоваться этим скриптом. В основе скрипта лежит блюпринт сановский Toward a Reference Configuration for VxVM Managed Boot Disks. Но скрипт творчески переработан в части выбора томов для зеркалирования. Для [...]]]></description>
			<content:encoded><![CDATA[<p>Ну и в продолжении <a href="http://www.unixpin.com/wordpress/2009/04/24/make_clone_root_solaris_volume_manager_svm_script/" target="_blank">предыдущей статьи</a> добавляю сюда еще и скрипт для создания клона загрузочного диска в VxVM. Таким образом, если загрузочные диски под веритасом, можно пользоваться этим скриптом. В основе скрипта лежит блюпринт сановский <a href="http://www.sun.com/blueprints/0800/vxvmref.pdf" target="_blank">Toward a Reference Configuration for VxVM Managed Boot Disks</a>. Но скрипт творчески переработан в части выбора томов для зеркалирования.<br />
Для инициализации нужно в VxVM инициализировать диск, и назвать его <strong>clone</strong>.<br />
Ну например, так:</p>
<p><code>vxdisksetup -i c6t0d0s2<br />
vxdg -g rootdg adddisk clone=c6t0d0s2</code></p>
<p>Для выбора томов, для зеркалирования на клон-диск, следует поправить в скрипте секцию<br />
<code>VOLUMES="rootvol:0:clone-rootvol:0x01:0x00 \<br />
swapvol:1:clone-swapvol:0x03:0x01 \<br />
var:5:clone-var:0x07:0x00 \<br />
coredump:6:clone-coredump:0x00:0x00" </code></p>
<p><a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/05/vxclonedisk.sh">Качаем скрипт vxclonedisk</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/05/06/make-boot-clone-disk-vxvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание клона загрузочного диска в SVM</title>
		<link>http://www.unixpin.com/wordpress/2009/04/24/make_clone_root_solaris_volume_manager_svm_script/</link>
		<comments>http://www.unixpin.com/wordpress/2009/04/24/make_clone_root_solaris_volume_manager_svm_script/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 19:34:49 +0000</pubDate>
		<dc:creator>jsn</dc:creator>
				<category><![CDATA[Hardware - Sun]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Sun - Software]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sds]]></category>
		<category><![CDATA[Solaris Volume Manager]]></category>
		<category><![CDATA[soltice disk suite]]></category>
		<category><![CDATA[svm]]></category>
		<category><![CDATA[загрузить]]></category>
		<category><![CDATA[загрузочный]]></category>
		<category><![CDATA[клон]]></category>
		<category><![CDATA[клонировать]]></category>
		<category><![CDATA[настройка]]></category>
		<category><![CDATA[том]]></category>
		<category><![CDATA[установить]]></category>
		<category><![CDATA[установка]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=390</guid>
		<description><![CDATA[О необходимости живого и загружабельного клона root-диска, надеюсь, никому объяснять не надо. Помогает он очень часто, после неудачных патчей, после пользовательских факапов и прочих некайфов, которые могут произойти как по ошибке, так и в процессе плановых работ. Компания Sun Microsystems (Ныне принадлежащая Oracle) настойчиво рекомендует использовать Solaris Volume Manager для загрузочных устройств. Он достаточно прост [...]]]></description>
			<content:encoded><![CDATA[<p>О необходимости живого и загружабельного клона root-диска, надеюсь, никому объяснять не надо.</p>
<p>Помогает он очень часто, после неудачных патчей, после пользовательских факапов и прочих некайфов, которые могут произойти как по ошибке, так и в процессе плановых работ.</p>
<p>Компания Sun Microsystems (Ныне принадлежащая Oracle) настойчиво рекомендует использовать Solaris Volume Manager для загрузочных устройств. Он достаточно прост в управлении и стоит ноль рублей ноль копеек.</p>
<p>Автором сайта, с моей подачи, был разработан шелл-скрипт, который создает клон рутового диска без особых усилий, нужно только выставить правильные настройки в самом начале скрипта.  Скрипт размечает диск, последовательно копирует разделы, чекает их fsck, правит vsftab,  пишет деятельность в лог.</p>
<p>Скрипт проверен лично мной на живой системе и отдан в продуктив.<br />
<a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/05/makeclonesvm.sh">Качаем скрипт makeclonesvm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/04/24/make_clone_root_solaris_volume_manager_svm_script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Сравнить содержимое файлов в каталогах</title>
		<link>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/</link>
		<comments>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 13:20:59 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - HPUX]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[compare]]></category>
		<category><![CDATA[comparedirs]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[folder]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[бесплатно]]></category>
		<category><![CDATA[дерево]]></category>
		<category><![CDATA[измененное]]></category>
		<category><![CDATA[как]]></category>
		<category><![CDATA[каталог]]></category>
		<category><![CDATA[нахаляву]]></category>
		<category><![CDATA[проверить]]></category>
		<category><![CDATA[скрипт]]></category>
		<category><![CDATA[содержимое]]></category>
		<category><![CDATA[сравнить]]></category>
		<category><![CDATA[файла]]></category>
		<category><![CDATA[файлов]]></category>
		<category><![CDATA[халява]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=359</guid>
		<description><![CDATA[На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот&#8230; сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который находит файлы, [...]]]></description>
			<content:encoded><![CDATA[<p>На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот&#8230; сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который</p>
<ul> находит файлы, отсутствующие во втором каталоге<br />
находит файлы, отличающиеся по дате модификации и размеру<br />
находит файлы, отличающиеся по содержанию</ul>
<p>Так как написан на perl, то под Windows требует установленного perl (<a href="http://downloads.activestate.com/">ActivePerl</a>, например) или можно скачать <a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/03/comparedirs.zip">скомпилированный бинарник</a>.</p>
<p><span id="more-359"></span><br />
В STDERR выводит сообщения о наличии и отсутствии файлов.</p>
<p>В STDOUT выводит список различий в контенте файлов.</p>
<p>Пример использования:<br />
C:&gt; comparedirs.pl -content<br />
-d1=c:/explorer.8eeeeee.e25k-2008.05.28.17.56<br />
-d2=c:/explorer.8eeeeee.e25k-2009.01.20.11.24  &gt; c:/tmp/diff.log 2&gt; c:/tmp/messages.log</p>
<p>C:\TEMP&gt;perl comparedirs.pl -d1=c:/temp/2 -d2=c:\temp\1<br />
File C:\temp\1\ndd\udp\aaa do not exist!</p>
<p>C:\TEMP&gt;perl comparedirs.pl -content -d1=c:/temp/2/ndd/ce.6 -d2=c:\temp\1\ndd\ce.6<br />
Files C:\temp\2\ndd\ce.6\accept_jumbo.out and C:\temp\1\ndd\ce.6\accept_jumbo.out have different con<br />
tent<br />
*** C:\temp\2\ndd\ce.6\accept_jumbo.out Wed Feb 18 03:51:32 2009<br />
&#8212; C:\temp\1\ndd\ce.6\accept_jumbo.out Wed May 28 21:06:31 2008<br />
***************<br />
*** 1 ****<br />
! 0<br />
&#8212; 1 &#8212;-<br />
! 1</p>
<p><a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/02/comparedirspl.txt"><strong>Загрузить скрипт (исходный код)/Download source comparedirs</strong></a></p>
<p><a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/03/comparedirs.zip"><strong>Загрузить исполняемый файл под Win32/ Download binary for Win32</strong></a></p>
<p>PS аналог на shell примерно такой:<br />
cd /dir1;<br />
for p in `find . -print`; do<br />
if -f /dir1/$p &amp;&amp; -f /dir2/$p; then<br />
diff /dir1/$p /dir2/$p<br />
fi<br />
done</p>
<p>PSPS 02.03.2009 &#8211; Добавил бинарник под windows</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.534 seconds -->
