<?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>Записки на полях &#187; bash</title>
	<atom:link href="http://snake.khd.ru/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://snake.khd.ru</link>
	<description>cat /var/log/messages</description>
	<lastBuildDate>Sun, 05 Feb 2012 11:22:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Debian Squeeze: Переезд на SSD</title>
		<link>http://snake.khd.ru/2011/06/debian-squeeze-pereezd-na-ssd/</link>
		<comments>http://snake.khd.ru/2011/06/debian-squeeze-pereezd-na-ssd/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 11:47:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fdisk]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssd]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=985</guid>
		<description><![CDATA[Поддался на провокацию заманчивые результаты тестов (желающий да погуглит) и взял себе вот такой SSD под систему: Небольшой мануал по переезду и впечатления под катом. Параметры сего девайса: Объем: 32Гб (Семерка в пролете, но линуксу за глаза и уши) Кэш: 64Мб Поддержка TRIM Время поиска: < .1ms Форм-фактор 2.5" Размеры: 99.8 x 69.63 x 9.3mm <a href='http://snake.khd.ru/2011/06/debian-squeeze-pereezd-na-ssd/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Поддался на <s>провокацию</s> заманчивые результаты тестов (желающий да погуглит) и взял себе <a href="http://www.ocztechnology.com/ocz-onyx-series-sata-ii-2-5-ssd.html">вот такой SSD</a> под систему:</p>
<p><img src="http://dns-shop.ru/up/description/125629_0.jpg" alt="" /><br />
Небольшой мануал по переезду и впечатления под катом.<br />
<span id="more-985"></span></p>
<p>Параметры сего девайса:<br />
    Объем: 32Гб (Семерка в пролете, но линуксу за глаза и уши)<br />
    Кэш: 64Мб<br />
    Поддержка TRIM<br />
    Время поиска: < .1ms<br />
    Форм-фактор 2.5"<br />
    Размеры: 99.8 x 69.63 x 9.3mm<br />
    Вес: 81g<br />
    Рабочая температура: 0°C ~ 70°C<br />
    Потребление: Idle: 375mW Active: 1000mW<br />
    Вибрация: 20G. Peak, 10 ~ 20KHz<br />
    Перегрузки до 1500G (это как? оО)<br />
    RAID Support<br />
    Совместимость Windows XP, Vista, 7, Mac OS X и <a href="http://snake.khd.ru/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  linux">Linux</a><br />
    MTBF: 1.5 миллиона часов<br />
    Гарантия: 2 года (ДНС дал три оО)</p>
<p>Имеем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># uname -a</span>
Linux snake-debian 2.6.32-<span style="color: #000000;">5</span>-<span style="color: #000000;">686</span>-bigmem <span style="color: #666666; font-style: italic;">#1 SMP Wed May 18 07:33:52 UTC 2011 i686 GNU/Linux</span></pre></div></div>

<p>В качестве файловой системы использовал ext4<br />
В системе установлено 4Гб оперативки, все они видятся системой (ядро bigmem какбэ намекает)</p>
<p>Итак, приступим. Создаем раздел (желательно один на весь диск). Я использовал гномовскую &#8220;Дисковую утилиту&#8221;, у кого нет иксов <s>или есть борода</s> можно через консоль:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># sfdisk /dev/sdb </span>
root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># mkfs.ext4 -L ONYX /dev/sdb1</span></pre></div></div>

<p>Затем устанавливаем rsync</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># aptitude install rsync</span></pre></div></div>

<p>На сервере я бы посоветовал остановить все возможные сервсиы &#8211; apache, exim, syslog и т.д. На домашней машине это не актуально.<br />
Поэтому, монтируем наш свежеотформатированный диск и копируем на него систему:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># mkdir /mnt/ssd &amp;&amp; mount /dev/sdb1 /mnt/ssd</span>
root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># rsync -avrt / /mnt/ssd/</span></pre></div></div>

<p>Устанавливаем загрузчик:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># echo &quot;(hd0) /dev/sdb&quot; | tee /mnt/ssd/boot/grub/device.map</span>
root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># grub-install --root-directory=/mnt/ssd --no-floppy /dev/sdb</span>
root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># echo &quot;(hd0) /dev/sda&quot; | tee /mnt/ssd/boot/grub/device.map</span></pre></div></div>

<p>Далее хорошо бы привычным движением отредактировать /boot/grub/menu.lst&#8230; Щаз. В Squeeze стоит по умолчанию Grub v2. Мануал по настройке можно найти вот <a href="http://ru.wikibooks.org/wiki/Grub_2">тут</a>. Полезное, к слову, чтиво. У меня получилось что-то вроде этого:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># nano /mnt/ssd/etc/grub.d/40_custom</span>
menuentry <span style="color: #ff0000;">&quot;Debian, Linux 2.6.32-5-686-bigmem SSD&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #007800;">recordfail</span>=<span style="color: #000000;">1</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-n</span> <span style="color: #800000;">${have_grubenv}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span> save_env recordfail; <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">quiet</span>=<span style="color: #000000;">1</span>
        insmod ext2
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">root</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span>hd1,<span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        search <span style="color: #660033;">--no-floppy</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sdb
        linux   <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>vmlinuz-2.6.32-<span style="color: #000000;">5</span>-<span style="color: #000000;">686</span>-bigmem <span style="color: #007800;">root</span>=<span style="color: #007800;">LABEL</span>=ROOT <span style="color: #007800;">rootflags</span>=<span style="color: #007800;">data</span>=writeback ro quiet splash
        initrd  <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>initrd.img-2.6.32-<span style="color: #000000;">5</span>-<span style="color: #000000;">686</span>-bigmem
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Обновляем загрузчик:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># update-grub</span></pre></div></div>

<p>Настраиваем перезагрузку системы через минуту в случае паники:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root<span style="color: #000000; font-weight: bold;">@</span>snake-debian:<span style="color: #000000; font-weight: bold;">/</span><span style="color: #666666; font-style: italic;"># echo &quot;kernel.panic = 60&quot; &gt;&gt; /mnt/ssd/etc/sysctl.d/panic.conf</span></pre></div></div>

<p>Крутим sysctl. Добавляем в /etc/sysctl.d/<a href="http://snake.khd.ru/tag/ssd/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ssd">ssd</a>.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># configure settings in /proc/sys/vm/*</span>
<span style="color: #666666; font-style: italic;"># агрессивность использования swap</span>
vm.swappiness = <span style="color: #000000;">0</span>
<span style="color: #666666; font-style: italic;"># как часто ядро должно находить незаписанные в ФС данные и писать их</span>
vm.dirty_writeback_centisecs = <span style="color: #000000;">6000</span>
<span style="color: #666666; font-style: italic;"># сколько времени должно пройти, чтобы ядро посчитало незаписанные в ФС данные достаточно устаревшими для их записи</span>
vm.dirty_expire_centisecs = <span style="color: #000000;">6000</span>
<span style="color: #666666; font-style: italic;"># сколько процентов памяти могут занимать незаписанные в ФС данные</span>
vm.dirty_ratio = <span style="color: #000000;">80</span>
<span style="color: #666666; font-style: italic;"># если незаписанные данные занимают меньше памяти в процентах, то их можно не записывать сейчас</span>
vm.dirty_background_ratio = <span style="color: #000000;">20</span></pre></div></div>

<p>Меняем /mnt/ssd/etc/fstab строку монтирования корневой ФС, отключаем swap и добавляем опции монтирования (опция commit=x включает режим обновления журнала каждые x секунд вместо 5 по-умолчанию):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">    ...
    <span style="color: #007800;">LABEL</span>=ROOT <span style="color: #000000; font-weight: bold;">/</span> ext3 noatime,nodiratime,<span style="color: #007800;">data</span>=writeback,<span style="color: #007800;">commit</span>=<span style="color: #000000;">50</span>,rw,suid,dev,<span style="color: #7a0874; font-weight: bold;">exec</span>,auto,nouser,async,<span style="color: #007800;">errors</span>=remount-ro <span style="color: #000000;">0</span> <span style="color: #000000;">1</span></pre></div></div>

<p>Не забываем закомментировать все остальное и убрать своп.</p>
<p>Выносим в оперативку (у нас ведь ее много, да?) весь мусор, который, по хорошему, все равно должен чиститься при каждом ребуте</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">...
tmpfs <span style="color: #000000; font-weight: bold;">/</span>tmp tmpfs defaults <span style="color: #000000;">0</span> <span style="color: #000000;">0</span>
tmpfs <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>tmp tmpfs defaults <span style="color: #000000;">0</span> <span style="color: #000000;">0</span>
tmpfs <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lock tmpfs defaults <span style="color: #000000;">0</span> <span style="color: #000000;">0</span>
tmpfs <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>postfix tmpfs defaults <span style="color: #000000;">0</span> <span style="color: #000000;">0</span></pre></div></div>

<p>Некоторые еще советуют отключить syslog. На домашней машине может еще и оправдано, но я в этом сильно сомневаюсь. Поэтому, по возможности, лучше вынести /var/log на отдельный, &#8220;нормальный&#8221; жесткий, чтобы все логи писались туда. Или воспользоваться rsyslog.</p>
<p>На этом все. Перезагружаемся, выбираем в качестве варианта загрузки вариант с SSD и смотрим. У меня система стала грузиться раза в два быстрей, офисные приложения открываются практически мгновенно, фаерфокс с парой десятков вкладок стартует за 3-5 секунд. Синтетику не делал &#8211; ибо зачем? Тестов дофига, желающие погуглят, а мне они до лампочки &#8211; я ведь ничего целыми днями не архивирую. Но скорость работы понравилась. Думалось зафигачить его сразу в ноут, но уж больно размер маловат. Так что пусть пока живет в &#8220;большой&#8221; машине =)</p>
<p>Источники: <a href="http://kasatkin.org/doku.php?id=blog:2010:1117_ssd_optimization" target=_blank>раз</a> и <a href="http://www.openkazan.info/Linux-SSD" target=_blank>два</a></p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2011/06/debian-squeeze-pereezd-na-ssd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bash: Пробелы в именах файлов</title>
		<link>http://snake.khd.ru/2011/03/bash-probely-v-imenax-fajlov/</link>
		<comments>http://snake.khd.ru/2011/03/bash-probely-v-imenax-fajlov/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 01:35:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=726</guid>
		<description><![CDATA[При использовании скрипта для asterisk, вылезла одна проблема &#8211; если в имени файла есть пробелы или другие спецсимволы (типа двоеточия), файл не обрабатывался. Краткий гуглеж привел к следующему #!/bin/bash #20110330 - Author: Gregg Hansen. Modified by Snake #version 0.8 #http://snake.khd.ru #Make sure to install Lame and copy mlame to your .wav dir #If you specify <a href='http://snake.khd.ru/2011/03/bash-probely-v-imenax-fajlov/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>При использовании <a href="http://snake.khd.ru/2010/06/skript-dlya-obrabotki-zapisej-asterisk/">скрипта для asterisk</a>, вылезла одна проблема &#8211; если в имени файла есть пробелы или другие спецсимволы (типа двоеточия), файл не обрабатывался. Краткий гуглеж привел к следующему<br />
<span id="more-726"></span></p>
<pre lang = "bash">
#!/bin/<a href="http://snake.khd.ru/tag/bash/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  bash">bash</a>
#20110330 - Author: Gregg Hansen. Modified by Snake
#version 0.8
#http://snake.khd.ru
#Make sure to install Lame and copy mlame to your .wav dir
#If you specify your own filenames, use NO spaces.
recorddir="/var/spool/<a href="http://snake.khd.ru/tag/asterisk/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  asterisk">asterisk</a>/monitor"
find ${recorddir} -name '*.wav' | grep in -v | grep out -v | while read i; do
month=`ls -l --time-style +'%b %d' "$i" | awk '{print $6}'`
day=`ls -l --time-style +'%b %d' "$i" | awk '{print $7}'`
mp3=`echo "$i" | cut -d "_" -f 2- | sed 's/.wav/.mp3/g' | sed 's/ /_/g' | sed 's/:/_/g'`
echo $mp3
lame -d -h -m j -b 128 "${i}" ${recorddir}/$mp3
if [ -d "${recorddir}/${month}" ];
    then
        if [ -d "${recorddir}/${month}/${day}" ];
            then
                mv ${recorddir}/${mp3} ${recorddir}/${month}/${day}
            else
                mkdir ${recorddir}/${month}/${day}
                mv ${recorddir}/${mp3} ${recorddir}/${month}/${day}
        fi
    else
        mkdir ${recorddir}/${month}
        mkdir ${recorddir}/${month}/${day}
        mv ${recorddir}/${mp3} ${recorddir}/${month}/${day}
fi
#mv ${recorddir}/${mp3} ${recorddir}/${month}/${day}
#Uncomment the below line if you want your .wavs moved to a different directory.
#This way you can review the timestamps and mp3 files before deleting the .wav
#mkdir ${recorddir}/wav_recordings
rm -f $i
done
</pre>
<p>Теперь все ок <img src='http://snake.khd.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://posix.ru/shell/bash_and_sed" target=_blank>пруф</a></p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2011/03/bash-probely-v-imenax-fajlov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрипт для обработки записей asterisk</title>
		<link>http://snake.khd.ru/2010/06/skript-dlya-obrabotki-zapisej-asterisk/</link>
		<comments>http://snake.khd.ru/2010/06/skript-dlya-obrabotki-zapisej-asterisk/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 03:52:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=404</guid>
		<description><![CDATA[Немного поправил сам скрипт, теперь файлы раскидываются в папки вида &#8220;имя_месяца/число&#8221; независимо от того, под каким пользователем запускается скрипт. Можнадокому. #!/bin/bash #20100611 - Author: Gregg Hansen. Modified by Snake #version 0.5 #http://www.khd.ru #Make sure to install Lame and copy mlame to your .wav dir #If you specify your own filenames, use NO spaces. recorddir=&#34;/var/spool/asterisk/monitor&#34; for <a href='http://snake.khd.ru/2010/06/skript-dlya-obrabotki-zapisej-asterisk/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Немного поправил сам скрипт, теперь файлы раскидываются в папки вида &#8220;имя_месяца/число&#8221; независимо от того, под каким пользователем запускается скрипт. Можнадокому.<br />
<span id="more-404"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#20100611 - Author: Gregg Hansen. Modified by Snake</span>
<span style="color: #666666; font-style: italic;">#version 0.5</span>
<span style="color: #666666; font-style: italic;">#http://www.khd.ru</span>
<span style="color: #666666; font-style: italic;">#Make sure to install Lame and copy mlame to your .wav dir</span>
<span style="color: #666666; font-style: italic;">#If you specify your own filenames, use NO spaces.</span>
<span style="color: #007800;">recorddir</span>=<span style="color: #ff0000;">&quot;/var/spool/asterisk/monitor&quot;</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #007800;">$recorddir</span><span style="color: #000000; font-weight: bold;">/*</span>.wav<span style="color: #000000; font-weight: bold;">`</span>; <span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #007800;">month</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #660033;">--time-style</span> +<span style="color: #ff0000;">'%b %d'</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $6}'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">day</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #660033;">--time-style</span> +<span style="color: #ff0000;">'%b %d'</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $7}'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">mp3</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;_&quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span>- <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/.wav/.mp3/g'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #c20cb9; font-weight: bold;">lame</span> <span style="color: #660033;">-d</span> <span style="color: #660033;">-h</span> <span style="color: #660033;">-m</span> j <span style="color: #660033;">-b</span> <span style="color: #000000;">128</span> <span style="color: #007800;">$i</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$mp3</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${recorddir}</span>/<span style="color: #007800;">${month}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;
    <span style="color: #000000; font-weight: bold;">then</span>    
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${recorddir}</span>/<span style="color: #007800;">${month}</span>/<span style="color: #007800;">${day}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;
            <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${mp3}</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${day}</span>
            <span style="color: #000000; font-weight: bold;">else</span>
                <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${day}</span>
                <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${mp3}</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${day}</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">else</span> 
        <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span>
        <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${day}</span>
        <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${mp3}</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${month}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${day}</span>
<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #666666; font-style: italic;">#Uncomment the below line if you want your .wavs moved to a different directory.</span>
<span style="color: #666666; font-style: italic;">#This way you can review the timestamps and mp3 files before deleting the .wav</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span>wav_recordings
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #007800;">$i</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span>wav_recordings<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/06/skript-dlya-obrabotki-zapisej-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обработка записей Asterisk</title>
		<link>http://snake.khd.ru/2010/03/obrabotka-zapisej-asterisk/</link>
		<comments>http://snake.khd.ru/2010/03/obrabotka-zapisej-asterisk/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 06:38:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=268</guid>
		<description><![CDATA[Имеется &#8211; папка с записями asterisk где-то за год &#8211; где-то гигов на 30. Т.к. астериск все пишет в wav, хорошо бы это дело переконвертировать в mp3, да еще и рассортировать по дате, для удобства поиска нужного звонка. После пары минут гугления был найден искомый скрипт, но он был рабочий только наполовину, поэтому пришлось допиливать <a href='http://snake.khd.ru/2010/03/obrabotka-zapisej-asterisk/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Имеется &#8211; папка с записями <a href="http://snake.khd.ru/tag/asterisk/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  asterisk">asterisk</a> где-то за год &#8211; где-то гигов на 30. Т.к. астериск все пишет в wav, хорошо бы это дело переконвертировать в mp3, да еще и рассортировать по дате, для удобства поиска нужного звонка. После пары минут гугления был найден искомый скрипт, но он был рабочий только наполовину, поэтому пришлось допиливать ручками. Вот что получилось в итоге<br />
<span id="more-268"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#20100503 - Author: Gregg Hansen. Modified by Snake</span>
<span style="color: #666666; font-style: italic;">#version 0.2</span>
<span style="color: #666666; font-style: italic;">#Сначала убедитесь в том, что у вас стоит пакет lame</span>
<span style="color: #666666; font-style: italic;">#Папка с записями разговоров</span>
<span style="color: #007800;">recorddir</span>=<span style="color: #ff0000;">&quot;/var/spool/asterisk/monitor&quot;</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #007800;">$recorddir</span><span style="color: #000000; font-weight: bold;">/*</span>.wav<span style="color: #000000; font-weight: bold;">`</span>; <span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$recorddir</span>
<span style="color: #666666; font-style: italic;">#Шаблон даты</span>
<span style="color: #007800;">date</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $6}'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #666666; font-style: italic;">#Шаблон часов</span>
<span style="color: #007800;">hour</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $7}'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">mp3</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/.wav/.mp3/g'</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #666666; font-style: italic;">#Собственно само кодирование. Опции lame выбрать по вкусу</span>
<span style="color: #c20cb9; font-weight: bold;">lame</span> <span style="color: #660033;">-d</span> <span style="color: #660033;">-h</span> <span style="color: #660033;">-m</span> j <span style="color: #660033;">-b</span> <span style="color: #000000;">128</span> <span style="color: #007800;">$i</span> <span style="color: #007800;">$mp3</span>
<span style="color: #666666; font-style: italic;">#Сортировка будет происходить по дням, а внутри дня - по времени начала разговора</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${date}</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$recorddir</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${date}</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${hour}</span>
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #800000;">${mp3}</span> <span style="color: #800000;">${hour}</span>
<span style="color: #666666; font-style: italic;">#wav файлы перемещаются в отдельную директорию, на всякий случай.</span>
<span style="color: #666666; font-style: italic;">#В дальнейшем можно будет просто периодически очищать эту директорию</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span>wav_recordings
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #007800;">$i</span> <span style="color: #800000;">${recorddir}</span><span style="color: #000000; font-weight: bold;">/</span>wav_recordings<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>На выходе мы вместо кучи файлов получаем аккуратные папочки с датами. Скрипт лучше всего засунуть в cron и запускать каждые сутки.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/03/obrabotka-zapisej-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

