<?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>#!/bin/bash</title>
	<atom:link href="http://doodle.kz/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://doodle.kz</link>
	<description>Cooking book</description>
	<lastBuildDate>Wed, 09 Jun 2010 17:16:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>В history добавим время</title>
		<link>http://doodle.kz/?p=38</link>
		<comments>http://doodle.kz/?p=38#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:13:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Monitoring]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=38</guid>
		<description><![CDATA[Чтобы при наборе команды history видеть время, когда именно была запущенна команда в консоли, достаточно добавить строку в /home/nameofuser/.bashrc
export HISTTIMEFORMAT=&#8221;%h/%d &#8211; %H:%M:%S &#8220;
]]></description>
			<content:encoded><![CDATA[<p>Чтобы при наборе команды history видеть время, когда именно была запущенна команда в консоли, достаточно добавить строку в /home/nameofuser/.bashrc</p>
<blockquote><p>export HISTTIMEFORMAT=&#8221;%h/%d &#8211; %H:%M:%S &#8220;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Монтирование раздела файлового сервера Novell</title>
		<link>http://doodle.kz/?p=20</link>
		<comments>http://doodle.kz/?p=20#comments</comments>
		<pubDate>Thu, 25 Mar 2010 06:16:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Files]]></category>
		<category><![CDATA[Network]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=20</guid>
		<description><![CDATA[Необходимый пакет ncpfs.
Команда монтирования:
# sudo ncpmount -S FREE -A fs.in.firm.kz -V pub -c 1000 -u 1000 /home/free/ -s -m -U username.firm -P userpassword -p cp866 -y utf8
Далее описание строки

ОПЦИИ
-S Имя сервера
-A dns-имя сервера
-V смонтировать определенный том
-с
Имя пользователя (опция монтирования owner=)
Здесь указываются имена пользователей, кто является владельцем этого подключения, где владелец не присваивает файлам собственность (для ]]></description>
			<content:encoded><![CDATA[<p>Необходимый пакет <strong>ncpfs</strong>.</p>
<p>Команда монтирования:</p>
<blockquote><p># sudo ncpmount -S FREE -A fs.in.firm.kz -V pub -c 1000 -u 1000 /home/free/ -s -m -U username.firm -P userpassword -p cp866 -y utf8</p></blockquote>
<p><em>Далее описание строки</em></p>
<p><span id="more-20"></span></p>
<p><strong>ОПЦИИ</strong><br />
<strong>-S </strong>Имя сервера<br />
<strong>-A</strong> dns-имя сервера<br />
<strong>-V</strong> смонтировать определенный том</p>
<p><strong>-с</strong></p>
<p style="padding-left: 30px;">Имя пользователя (опция монтирования owner=)</p>
<p style="padding-left: 30px;">Здесь указываются имена пользователей, кто является владельцем этого подключения, где владелец не присваивает файлам собственность (для этого используйте аргумент <strong>-u</strong>), но владелец исключительно монтирования. Например, кому разрешено вызывать <strong>ncpmount</strong> в этом монтировании. По-умолчанию владелец подключения и монтирования пользователь, который вызвал <strong>ncpmount</strong>. Эта опция позволяет вам назначить определенного пользователя, как владельца.<br />
<strong>-u uid</strong>, <strong>-g gid</strong> (mount option uid= and gid=)</p>
<p style="padding-left: 30px;">ncpmount пока не осуществляет схему для отображения пользователей/групп NetWare к пользователям/группам Linux. Linux требует, чтобы каждый файл имел своего владельца и id группы. При помощи -u и -g можно сообщить ncpmount&#8217;у какой id будет назначен на отображаемые файлы.</p>
<p style="padding-left: 30px;">По-умолчанию устанавливаются текущие uid и gid.</p>
<p><strong>-s</strong></p>
<p style="padding-left: 30px;">Как правило, файлы отмеченные как <em>read-only</em> не могут быть удалены из тома NetWare, так как их запрещено удалять и переименовывать. Если же вы хотите удалять эти файлы, тогда нужно установить эту опцию.</p>
<p><strong>-m</strong></p>
<p style="padding-left: 30px;">Как правило, ncpmount ограничивает количество подключений от клиента к серверу по одному уникальному пользователю. Если же вы хотите смонтировать более чем одно подключение для одного пользователя, тогда установите<strong> -m.</strong></p>
<p><strong>-U</strong></p>
<p style="padding-left: 30px;">Имя пользователя. Устанавливает id пользователя для доступа на файловый сервер. Если не указать эту опцию, тогда Linux запросит логин.</p>
<p><strong>-P</strong></p>
<p style="padding-left: 30px;">Указать пароль для доступа на файловый сервер для указанного id.</p>
<p><strong>-p <em>(codepage)</em></strong></p>
<p style="padding-left: 30px;">Здесь можно указать перевод символов для конвертации имен от кодировки NetWare в юникод (работает вместе с -y). Кодировка страницы это имя codepage, например cp437</p>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрипт копирования</title>
		<link>http://doodle.kz/?p=16</link>
		<comments>http://doodle.kz/?p=16#comments</comments>
		<pubDate>Thu, 25 Mar 2010 05:50:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Files]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=16</guid>
		<description><![CDATA[Копирование при условии, что в процессах нет другого копирования
#!/bin/bash
let IS=`ps -e &#124; grep &#8221; cp&#8221; &#124; wc -l`
if [ $IS -eq 0 ]; then
cp /storge/squid/log/access.log /storge/stat/
cp /storge/squid/log/cache.log /storge/stat/
cp /storge/squid/log/store.log /storge/stat/
exit 0
fi
Thx to Mor
]]></description>
			<content:encoded><![CDATA[<p>Копирование при условии, что в процессах нет другого копирования</p>
<blockquote><p>#!/bin/bash<br />
let IS=`ps -e | grep &#8221; cp&#8221; | wc -l`<br />
if [ $IS -eq 0 ]; then<br />
cp /storge/squid/log/access.log /storge/stat/<br />
cp /storge/squid/log/cache.log /storge/stat/<br />
cp /storge/squid/log/store.log /storge/stat/<br />
exit 0<br />
fi</p></blockquote>
<p>Thx to <strong>Mor</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Скрипт Ротации бэкапов за неделю</title>
		<link>http://doodle.kz/?p=13</link>
		<comments>http://doodle.kz/?p=13#comments</comments>
		<pubDate>Thu, 25 Mar 2010 05:46:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=13</guid>
		<description><![CDATA[#!/bin/bash
DEST=/media/nss/ARH/post/
FIRST=`ls $DEST &#124; grep &#8220;tar.gz&#8221; &#124; awk &#8216;ORS=&#8221; &#8220;{print}&#8217; &#124; awk &#8216;{print($1)}&#8217;`
let COUNT=`ls $DEST &#124; grep -c &#8220;tar.gz&#8221;`
let MAX=7
if [ $COUNT -gt $MAX ]; then
echo \n `date` &#62;&#62; /var/log/cleaning
while [ $COUNT -gt $MAX ]; do
rm $DEST$FIRST
FIRST=`ls $DEST &#124; grep &#8220;tar.gz&#8221; &#124; awk &#8216;ORS=&#8221; &#8220;{print}&#8217; &#124; awk &#8216;{print($1)}&#8217;`
let COUNT=`ls $DEST &#124; grep -c &#8220;tar.gz&#8221;`
echo \n &#8220;Delete ]]></description>
			<content:encoded><![CDATA[<blockquote><p>#!/bin/bash<br />
DEST=/media/nss/ARH/post/<br />
FIRST=`ls $DEST | grep &#8220;tar.gz&#8221; | awk &#8216;ORS=&#8221; &#8220;{print}&#8217; | awk &#8216;{print($1)}&#8217;`<br />
let COUNT=`ls $DEST | grep -c &#8220;tar.gz&#8221;`<br />
let MAX=7<br />
if [ $COUNT -gt $MAX ]; then<br />
echo \n `date` &gt;&gt; /var/log/cleaning<br />
while [ $COUNT -gt $MAX ]; do<br />
rm $DEST$FIRST<br />
FIRST=`ls $DEST | grep &#8220;tar.gz&#8221; | awk &#8216;ORS=&#8221; &#8220;{print}&#8217; | awk &#8216;{print($1)}&#8217;`<br />
let COUNT=`ls $DEST | grep -c &#8220;tar.gz&#8221;`<br />
echo \n &#8220;Delete $FIRST&#8221; &gt;&gt; /var/log/cleaning<br />
done<br />
fi</p></blockquote>
<p>Thx to <strong>Mor</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Изменение регистра в названии файлов</title>
		<link>http://doodle.kz/?p=11</link>
		<comments>http://doodle.kz/?p=11#comments</comments>
		<pubDate>Thu, 25 Mar 2010 04:34:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Files]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=11</guid>
		<description><![CDATA[Задача: Изменить регистр названия файлов, не изменяя структуру и названия каталогов.
Терминал:
find ./ -type f -print0 &#124; while read -d &#8221; FILE; do mv &#8220;$FILE&#8221; &#8220;`dirname &#8220;$FILE&#8221;`/`basename &#8220;$FILE&#8221; &#124; tr &#8216;[A-Z],[А-Я]&#8216; &#8216;[a-z],[а-я]&#8216;`&#8221;;done
Скрипт:
#!/bin/bash
find ./ -type f -print0 &#124; while read -d &#8221; FILE
do
FILE2=&#8221;`dirname &#8220;$FILE&#8221;`/`basename &#8220;$FILE&#8221; &#124; tr &#8216;[A-Z],[А-Я]&#8216; &#8216;[a-z],[а-я]&#8216;`&#8221;
if [ "xxx$FILE" != "xxx$FILE2" ]; then
mv &#8220;$FILE&#8221; &#8220;$FILE2&#8243;
fi
done
]]></description>
			<content:encoded><![CDATA[<p><strong>Задача:</strong> Изменить регистр названия файлов, не изменяя структуру и названия каталогов.</p>
<p><strong>Терминал:</strong></p>
<blockquote><p>find ./ -type f -print0 | while read -d &#8221; FILE; do mv &#8220;$FILE&#8221; &#8220;`dirname &#8220;$FILE&#8221;`/`basename &#8220;$FILE&#8221; | tr &#8216;[A-Z],[А-Я]&#8216; &#8216;[a-z],[а-я]&#8216;`&#8221;;done</p></blockquote>
<p><strong>Скрипт:</strong></p>
<blockquote><p>#!/bin/bash<br />
find ./ -type f -print0 | while read -d &#8221; FILE<br />
do<br />
FILE2=&#8221;`dirname &#8220;$FILE&#8221;`/`basename &#8220;$FILE&#8221; | tr &#8216;[A-Z],[А-Я]&#8216; &#8216;[a-z],[а-я]&#8216;`&#8221;<br />
if [ "xxx$FILE" != "xxx$FILE2" ]; then<br />
mv &#8220;$FILE&#8221; &#8220;$FILE2&#8243;<br />
fi<br />
done</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=11</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрипт backup tar</title>
		<link>http://doodle.kz/?p=6</link>
		<comments>http://doodle.kz/?p=6#comments</comments>
		<pubDate>Thu, 25 Mar 2010 04:26:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=6</guid>
		<description><![CDATA[Условие бакапирования: не производить архивирование, если сегодня это уже делалось и присоединить к названию архива текущую дату.
#!/bin/bash
OF=/home/dxtr/backup/backup.www-$(date +%Y%m%d).tgz
mdate=`date +%Y%m%d`
today=`ls /home/dxtr/backup/ &#124; grep $mdate &#124; wc &#8211;line`
if [ $today -eq 0 ]; then
tar -czPf $OF /home/dxtr/Public/www/
pwd
ls /home/dxtr/backup/
printf &#8220;$(date +%c) Резервирование произведено! \n&#8221; &#62;&#62; /home/dxtr/mylog
else
printf &#8220;$(date +%c) Сегодня резервирование данных уже производилось. \n&#8221; &#62;&#62; /home/dxtr/mylog
fi
]]></description>
			<content:encoded><![CDATA[<p><strong>Условие бакапирования: </strong>не производить архивирование, если сегодня это уже делалось и присоединить к названию архива текущую дату.</p>
<blockquote><p>#!/bin/bash<br />
OF=/home/dxtr/backup/backup.www-$(date +%Y%m%d).tgz<br />
mdate=`date +%Y%m%d`<br />
today=`ls /home/dxtr/backup/ | grep $mdate | wc &#8211;line`</p>
<p>if [ $today -eq 0 ]; then<br />
tar -czPf $OF /home/dxtr/Public/www/<br />
pwd<br />
ls /home/dxtr/backup/<br />
printf &#8220;$(date +%c) Резервирование произведено! \n&#8221; &gt;&gt; /home/dxtr/mylog<br />
else<br />
printf &#8220;$(date +%c) Сегодня резервирование данных уже производилось. \n&#8221; &gt;&gt; /home/dxtr/mylog<br />
fi</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка сети wi-fi в консоли, с шифрованием WPA-PSK</title>
		<link>http://doodle.kz/?p=1</link>
		<comments>http://doodle.kz/?p=1#comments</comments>
		<pubDate>Mon, 22 Mar 2010 14:53:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Network]]></category>

		<guid isPermaLink="false">http://doodle.kz/?p=1</guid>
		<description><![CDATA[
Несколько ноутбуков дома просто вынудили использовать Wi-Fi точку доступа. Но для установки и настройки системы ArchLinux, которая, как известно голая и предоставляет в начале только консоль, сеть нужна была, а точка доступа (далее ТД) стоит в коридоре, за шкафом. Сидеть в коридоре не хотелось, где находится ТД.

Но на время установки необходимых пакетов подключиться все же ]]></description>
			<content:encoded><![CDATA[<div class="content">
<p>Несколько ноутбуков дома просто вынудили использовать Wi-Fi точку доступа. Но для установки и настройки системы ArchLinux, которая, как известно голая и предоставляет в начале только консоль, сеть нужна была, а точка доступа (далее ТД) стоит в коридоре, за шкафом. Сидеть в коридоре не хотелось, где находится ТД.</p>
<p><span id="more-1"></span><br />
Но на время установки необходимых пакетов подключиться все же пришлось.<br />
В принципе, для тех, кто не заморачивается о безопасности хватит и wireless_tools, что я и поставил:</p>
<blockquote><p><code># sudo pacman -S wireless_tools</code></p></blockquote>
<p>И не смотря на то, что наш большой дом не проявляется наличием ITшников/Хакеров, немного о безопасности я все же побеспокоился, указав метод шифрования WPA-PSK.<br />
Если было бы все проще, типа WEP или вообще открытый доступ, проблем бы не возникло, достаточно просто ввести:</p>
<blockquote><p><code> # sudo wlan0 up</code></p></blockquote>
<p>Для сканирования воздуха на наличие wi-fi точек доступа, использовал команду:</p>
<blockquote><p><code> # iwlist wlan0 scan | less</code></p>
<p><code># sudo iwconfig wlan0 essid имя_точки_доступа s:пароль</code></p></blockquote>
<p>А вот WPA-PSK стандартный wireless_tools не поддерживает (или я все-таки не нашел способа).<br />
Но есть выход! <strong>wpa_supplicant</strong>.</p>
<blockquote><p><code> # sudo pacman -S wpa_supplicant</code></p></blockquote>
<p>далее, для генерации ключа вводим:</p>
<blockquote><p><code> # wpa_passphrase <em>пароль</em></code></p></blockquote>
<p>Для более практичного использования этой команды:<br />
<code> # sudo wpa_passphrase dexter "1234567890" &gt; /etc/wpa_supplicant.conf</code></p>
<p>То есть, результат перенаправляем сразу в наш конфигурационный файл, которым будем подключаться к сети.<br />
В итоге должно получиться следующее:<br />
<code><br />
network={<br />
ssid="имя_точки_доступа"<br />
#psk="12345667890"<br />
psk=b2bd8cfe49a73814e1ddaa8451d4df29dec393e31a7e8e24c0a5cc878502c762<br />
}<br />
</code></p>
<p>Далее, для того, чтобы наша сетевая карта ассоциировалась с определенной точкой доступа:</p>
<blockquote><p><code> # iwconfig wlan0 essid <em>имя_точки_доступа</em></code></p></blockquote>
<p>и подключаемся:</p>
<blockquote><p><code> # wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf;</code></p></blockquote>
<p>Даем время для установки авторизации, секунд пять а потом<br />
получаем адрес по dhcp:</p>
<blockquote><p><code> # dhcpcd wlan0</code></p></blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://doodle.kz/?feed=rss2&amp;p=1</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
