<?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>Alex Volkov &#187; Linux</title>
	<atom:link href="http://alexvolkov.ru/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://alexvolkov.ru</link>
	<description>cat /var/log/life.log &#124; grep -E &#34;life&#124;work&#124;etc&#34;</description>
	<lastBuildDate>Thu, 22 Dec 2011 14:21:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Вложенные SQL запросы: одновременное добавление одинарных и множественных строк в INSERT</title>
		<link>http://alexvolkov.ru/embedded-sql-statements-the-simultaneous-addition-of-single-and-multiple-rows-in-the-insert.html</link>
		<comments>http://alexvolkov.ru/embedded-sql-statements-the-simultaneous-addition-of-single-and-multiple-rows-in-the-insert.html#comments</comments>
		<pubDate>Tue, 04 Oct 2011 09:11:12 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Скрипты]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[nested queries]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1892</guid>
		<description><![CDATA[Понадобилось для одной задачи сделать выборку из таблицы А по определенным условиям и вставить ее в таблицу B. Можно особо не заморачиваться, сделать SELECT  в переменную, потом пройтись циклом по INSERT и все. Но это не очень красивое решение. Очень запросов много + на переменные память расходуется. Проще использовать вложенные запросы, они же nested queries. [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось для одной задачи сделать выборку из таблицы А по определенным условиям и вставить ее в таблицу B.<br />
Можно особо не заморачиваться, сделать SELECT  в переменную, потом пройтись циклом по INSERT и все.</p>
<p>Но это не очень красивое решение. Очень запросов много + на переменные память расходуется. Проще использовать вложенные запросы, они же nested queries. Но тут возникает проблемка -  если вставлять  только данные из INSERT, то все ок, но если добавлять еще и какие-нибудь неизменные значения, то выдается <em>Subquery returned more than 1 value.<br />
</em><br />
Чтобы не обьяснять на пальцах &#8212; сама таблица B</p>
<pre class="brush:sql">CREATE TEMPORARY TABLE `B` (
  `status` TINYINT(4) NULL DEFAULT NULL ,
  `pair` TEXT NULL DEFAULT NULL ,
)
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;</pre>
<p>Копируем из таблицы A и вставляем в B так</p>
<pre class="brush:sql">INSERT INTO `B` (`pair`)
            SELECT `pair` FROM `A` ORDER BY RAND() LIMIT 100;</pre>
<p>Если поле status имеет неизменное значение, например 123, то просто вот так уже не вставить</p>
<pre class="brush:sql">INSERT INTO `B` (`status`, `pair`) VALUES (
            (SELECT `pair` FROM `A` ORDER BY RAND() LIMIT 100),
            123);</pre>
<p>Не совсем красивое решение нашел</p>
<pre class="brush:sql">UPDATE `B` SET `status` = '123' WHERE 1=1;</pre>
<p>Но хотелось бы в одну строку все заделать. Отпишитесь плиз в коментах, кто знает, как реализовать.</p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/the-script-for-tuning-mysql.html" title="Скрипт для тюнинга MYSQL">Скрипт для тюнинга MYSQL</a></li><li><a href="http://alexvolkov.ru/mysql-rand-how-to-get-a-random-line-from-db.html" title="MYSQL RAND(), как получить рандомную строку из БД">MYSQL RAND(), как получить рандомную строку из БД</a></li><li><a href="http://alexvolkov.ru/robkijj-tar.html" title="Робкий tar )">Робкий tar )</a></li><li><a href="http://alexvolkov.ru/posting-v-vordpress-iz-skriptov.html" title="Постинг в вордпресс из скриптов.">Постинг в вордпресс из скриптов.</a></li><li><a href="http://alexvolkov.ru/lokali-i-kodirovki.html" title="Локали и кодировки.">Локали и кодировки.</a></li><li><a href="http://alexvolkov.ru/mysql-logiruem-vse-zaprosy.html" title="Mysql, логируем все запросы ">Mysql, логируем все запросы </a></li><li><a href="http://alexvolkov.ru/rezervnoe-kopirovanie-mysql-mysql-backup.html" title="Резервное копирование MySQL (mysql backup) ">Резервное копирование MySQL (mysql backup) </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/embedded-sql-statements-the-simultaneous-addition-of-single-and-multiple-rows-in-the-insert.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Считаем, сколько строк кода в php проекте.</title>
		<link>http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html</link>
		<comments>http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html#comments</comments>
		<pubDate>Tue, 17 May 2011 22:34:05 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1876</guid>
		<description><![CDATA[Упало в ридер несколько записей(раз, двас, трис), как посчитать строчки в си проектах и стало интересно, сколько же строчек я накропал для одного проекта. Оказалось, 5060, не считая js и css всяких. Сама команда: find . -type f -name "*.php" -exec wc -l {} +; Еще несколько ссылочек.Простой способ проверки процесса на существованиеКак узнать статус [...]]]></description>
			<content:encoded><![CDATA[<p>Упало в ридер несколько записей(<a href="http://www.commandlinefu.com/commands/view/8394/how-many-lines-in-your-c-project">раз</a>, <a href="http://www.commandlinefu.com/commands/view/8399/how-many-lines-in-your-c-project">двас</a>, <a href="http://www.commandlinefu.com/commands/view/8397/how-many-lines-in-your-c-project">трис</a>), как посчитать строчки в си проектах и стало интересно, сколько же строчек я накропал для одного проекта. Оказалось, 5060, не считая js и css всяких.</p>
<p>Сама команда:</p>
<pre class="brush:shell">find . -type f -name "*.php" -exec wc -l {} +;</pre>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html" title="Простой способ проверки процесса на существование">Простой способ проверки процесса на существование</a></li><li><a href="http://alexvolkov.ru/kak-uznat-status-processa-po-pid.html" title="Как узнать статус процесса по pid">Как узнать статус процесса по pid</a></li><li><a href="http://alexvolkov.ru/organizaciya-bekapa-na-serverakh.html" title="Организация бекапа на серверах">Организация бекапа на серверах</a></li><li><a href="http://alexvolkov.ru/bash-skripty.html" title="Bash скрипты">Bash скрипты</a></li><li><a href="http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html" title="Примеры использования strace для отладки скриптов">Примеры использования strace для отладки скриптов</a></li><li><a href="http://alexvolkov.ru/what-to-do-if-you-blow-down-all-file-permissions.html" title="Что делать, если сбил все права?">Что делать, если сбил все права?</a></li><li><a href="http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html" title="Watchdog для своих скриптов или проверка состояния процесса">Watchdog для своих скриптов или проверка состояния процесса</a></li><li><a href="http://alexvolkov.ru/gnom-sel-moego-parnya.html" title="Гном сьел моего парня! ">Гном сьел моего парня! </a></li><li><a href="http://alexvolkov.ru/izmenit-razmer-kartinki-paketno.html" title="Изменить размер картинки пакетно">Изменить размер картинки пакетно</a></li><li><a href="http://alexvolkov.ru/vyshla-mandriva-linux-2012-alpha-2.html" title="Вышла Mandriva Linux 2012 alpha 2">Вышла Mandriva Linux 2012 alpha 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Скрипт для тюнинга MYSQL</title>
		<link>http://alexvolkov.ru/the-script-for-tuning-mysql.html</link>
		<comments>http://alexvolkov.ru/the-script-for-tuning-mysql.html#comments</comments>
		<pubDate>Tue, 29 Mar 2011 19:54:50 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1874</guid>
		<description><![CDATA[Знакомый кинул линк на перловый скриптец, который собирает статистику из конфига и логов и выдает рекомендации по оптимизации бд. Вот такой вывод: -------- General Statistics -------------------------------------------------- [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version 5.0.51a-24+lenny5-log [!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM -------- [...]]]></description>
			<content:encoded><![CDATA[<p>Знакомый кинул линк на перловый скриптец, который собирает статистику из конфига и логов и выдает рекомендации по оптимизации бд.<br />
Вот такой вывод:</p>
<pre class="brush:shell">-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.51a-24+lenny5-log
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB +Federated -InnoDB -ISAM -NDBCluster 

[--] Data in MyISAM tables: 5M (Tables: 260)
[OK] Total fragmented tables: 0

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1d 12h 14m 59s (4M q [33.837 qps], 39K conn, TX: 822M, RX: 460M)
[--] Reads / Writes: 30% / 70%
[--] Total buffers: 57.0M global + 50.5M per thread
(400 max threads)
[!!] Allocating &gt; 2GB RAM on 32-bit systems can cause system instability
[!!] Maximum possible memory usage: 19.8G (293%
of installed RAM)
[!!] Slow queries: 10%
(443K/4M)
[OK] Highest usage of available connections: 38%
(152/400)
[OK] Key buffer size / total MyISAM indexes:
15.0M/4.7M
[OK] Key buffer hit rate: 99.1% (9M cached
/ 91K reads)
[OK] Query cache efficiency: 75.5% (2M cached /
2M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp
sorts / 439K sorts)
[OK] Temporary tables created on disk: 1% (8K
on disk / 444K total)
[OK] Thread cache hit rate: 99% (307 created /
39K connections)
[!!] Table cache hit rate: 0% (5 open /
11K opened)
[OK] Open file limit used: 0%
(11/65K)
[OK] Table locks acquired immediately: 99%
(2M immediate / 2M
locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
    table_cache (&gt; 32562)</pre>
<p>Сам скрипт лежит тут: <a href="https://github.com/rackerhacker/MySQLTuner-perl">веб</a>, <a href="git://github.com/rackerhacker/MySQLTuner-perl.git">гит</a></p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/embedded-sql-statements-the-simultaneous-addition-of-single-and-multiple-rows-in-the-insert.html" title="Вложенные SQL запросы: одновременное добавление одинарных и множественных строк в INSERT">Вложенные SQL запросы: одновременное добавление одинарных и множественных строк в INSERT</a></li><li><a href="http://alexvolkov.ru/mysql-rand-how-to-get-a-random-line-from-db.html" title="MYSQL RAND(), как получить рандомную строку из БД">MYSQL RAND(), как получить рандомную строку из БД</a></li><li><a href="http://alexvolkov.ru/robkijj-tar.html" title="Робкий tar )">Робкий tar )</a></li><li><a href="http://alexvolkov.ru/posting-v-vordpress-iz-skriptov.html" title="Постинг в вордпресс из скриптов.">Постинг в вордпресс из скриптов.</a></li><li><a href="http://alexvolkov.ru/lokali-i-kodirovki.html" title="Локали и кодировки.">Локали и кодировки.</a></li><li><a href="http://alexvolkov.ru/mysql-logiruem-vse-zaprosy.html" title="Mysql, логируем все запросы ">Mysql, логируем все запросы </a></li><li><a href="http://alexvolkov.ru/rezervnoe-kopirovanie-mysql-mysql-backup.html" title="Резервное копирование MySQL (mysql backup) ">Резервное копирование MySQL (mysql backup) </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/the-script-for-tuning-mysql.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Простой способ проверки процесса на существование</title>
		<link>http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html</link>
		<comments>http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html#comments</comments>
		<pubDate>Thu, 24 Mar 2011 18:43:25 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Скрипты]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1866</guid>
		<description><![CDATA[Для простых многопоточных систем очень часто используют запуск в фоновом режиме.  Запускают их примерно вот так: php script.php &#38; И управление процессом от юзера уходит, отловить такой процесс из другого скрипта уже не получится. А если процесс выполняет какую то одну и ту же задачу с интервалом по крону, и нужно, чтобы при запуска нового [...]]]></description>
			<content:encoded><![CDATA[<p>Для простых многопоточных систем очень часто используют запуск в фоновом режиме.  Запускают их примерно вот так:</p>
<pre class="brush:shell">php script.php &amp;</pre>
<p>И управление процессом от юзера уходит, отловить такой процесс из другого скрипта уже не получится. А если процесс выполняет какую то одну и ту же задачу с интервалом по крону, и нужно, чтобы при запуска нового процесса старый был убит? Поймать его можно аццкой смесью bash + php:</p>
<pre class="brush:php">$killPid = exec("ps ux | awk '/script_name.php/ &amp;&amp; !/awk/ {print $2}'");//находим пид процесса
      if($killPid)//если есть, киляем
	  exec ("kill ".$killPid);
exec('php script_name.php &amp;');//запускаем новый</pre>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html" title="Считаем, сколько строк кода в php проекте.">Считаем, сколько строк кода в php проекте.</a></li><li><a href="http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html" title="Примеры использования strace для отладки скриптов">Примеры использования strace для отладки скриптов</a></li><li><a href="http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html" title="Watchdog для своих скриптов или проверка состояния процесса">Watchdog для своих скриптов или проверка состояния процесса</a></li><li><a href="http://alexvolkov.ru/kak-uznat-status-processa-po-pid.html" title="Как узнать статус процесса по pid">Как узнать статус процесса по pid</a></li><li><a href="http://alexvolkov.ru/wordpress-i-memcache-2.html" title="Wordpress и memcache 2">Wordpress и memcache 2</a></li><li><a href="http://alexvolkov.ru/skripty-dlya-morfologicheskogo-analiza-teksta.html" title="Скрипты для морфологического анализа текста.">Скрипты для морфологического анализа текста.</a></li><li><a href="http://alexvolkov.ru/pakety-dlya-raboty-s-imap-dlya-php.html" title="Пакеты для работы с imap для php">Пакеты для работы с imap для php</a></li><li><a href="http://alexvolkov.ru/organizaciya-bekapa-na-serverakh.html" title="Организация бекапа на серверах">Организация бекапа на серверах</a></li><li><a href="http://alexvolkov.ru/bash-skripty.html" title="Bash скрипты">Bash скрипты</a></li><li><a href="http://alexvolkov.ru/problems-with-the-serialization-of-arrays.html" title="Проблемы с сериализацией массивов">Проблемы с сериализацией массивов</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Примеры использования strace для отладки скриптов</title>
		<link>http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html</link>
		<comments>http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html#comments</comments>
		<pubDate>Tue, 22 Mar 2011 16:47:41 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Скрипты]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[strace]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1835</guid>
		<description><![CDATA[Strace &#8212; это встроенный перехватчик системных вызовов и сигналов в линуксе. Основная его цель &#8212; это перехват информации относительно какого-то процесса. Крайне незаменимая штука при отладке скриптов, особенно закодированных. Пример использования &#8212; есть один сервис, который я написал, и обьявилась там проблема &#8212; каким-то неведомым образом права на файл, куда пишется лог, начали выставляться криво. [...]]]></description>
			<content:encoded><![CDATA[<p>Strace &#8212; это встроенный перехватчик системных вызовов и сигналов в линуксе. Основная его цель &#8212; это перехват информации относительно какого-то процесса. Крайне незаменимая штука при отладке скриптов, особенно закодированных.</p>
<p>Пример использования &#8212; есть один сервис, который я написал, и обьявилась там проблема &#8212; каким-то неведомым образом права на файл, куда пишется лог, начали выставляться криво. А именно: вместо положенных rw &#8212; rw &#8212; rw стали w &#8212; wx &#8212; wT. Проблема тут в том, что надо указывать права при смене не как:</p>
<pre class="brush:php">chmod('file.txt', '0666'); или
chmod('file.txt', 666);</pre>
<p>в этом случае 0666 будет string, а вот так:</p>
<pre class="brush:php">chmod('file.txt', intval('666', 8));</pre>
<p>Так они уже будут в корректной форме.</p>
<p>Вернемся к проблеме. Нужно было найти, кто ставит на файл неверные права. Вот так можно отловить все вызовы определенного файла:</p>
<pre class="brush:shell">strace php ./script.php 2&gt;&amp;1 | grep file.txt</pre>
<p>Ответ будет вида:</p>
<pre class="brush:shell">open("/path/to/file.txt", O_RDWR|O_CREAT|O_APPEND|O_LARGEFILE, 0666) = 4
chmod("/path/to/file.txt", 0666) = 0</pre>
<p>Вот так можно отмониторить все обращения к файлу<br />
<span id="more-1835"></span><br />
Однако у меня была проблема с записью при запуске через апача, т.е. скрипт запускался не от моего пользователя. Тут можно отмониторить по pid процесса, но нужен рут.</p>
<pre class="brush:shell">strace -p 123 2&gt;&amp;1 | grep file.txt</pre>
<p>Гашение вывода 2&gt;&amp;1 позволит не читать тонны ненужной инфы. Но для хардкорных дебаггеров можно убрать.</p>
<p>Еще вот примеры использования strace, <a href="http://www.hokstad.com/5-simple-ways-to-troubleshoot-using-strace.html">перевел отсюда</a></p>
<p>Смотрим, какие конфиги читает скрипт:</p>
<pre class="brush:shell">$ strace -e open php 2&gt;&amp;1 | grep php.ini
open("/usr/local/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/php.ini", O_RDONLY) = 4</pre>
<p>Смотрим, почему скрипт не может открыть определенный файл:</p>
<pre class="brush:shell">$ strace -e open,access 2&gt;&amp;1 | grep your-filename</pre>
<p>Что процесс делает в данный момент:</p>
<pre class="brush:shell">root@dev:~# strace -p 15427
Process 15427 attached - interrupt to quit
futex(0x402f4900, FUTEX_WAIT, 2, NULL
Process 15427 detached</pre>
<p>Следующий пример очень полезен &#8212; показывает на что тратится процессорное время скриптом:</p>
<pre class="brush:shell">root@dev:~# strace -c -p 11084
Process 11084 attached - interrupt to quit
Process 11084 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 94.59    0.001014          48        21           select
  2.89    0.000031           1        21           getppid
  2.52    0.000027           1        21           time
------ ----------- ----------- --------- --------- ----------------
100.00    0.001072                    63           total
root@dev:~#</pre>
<p>При таком вызове он будет отображать данные до тех пор, пока принудительно его не завершить.</p>
<p>Можно запросить  раскладку от начала до конца:</p>
<pre class="brush:shell">root@dev:~# strace -c &gt;/dev/null ls
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 23.62    0.000205         103         2           getdents64
 18.78    0.000163          15        11         1 open
 15.09    0.000131          19         7           read
 12.79    0.000111           7        16           old_mmap
  7.03    0.000061           6        11           close
  4.84    0.000042          11         4           munmap
  4.84    0.000042          11         4           mmap2
  4.03    0.000035           6         6         6 access
  3.80    0.000033           3        11           fstat64
  1.38    0.000012           3         4           brk
  0.92    0.000008           3         3         3 ioctl
  0.69    0.000006           6         1           uname
  0.58    0.000005           5         1           set_thread_area
  0.35    0.000003           3         1           write
  0.35    0.000003           3         1           rt_sigaction
  0.35    0.000003           3         1           fcntl64
  0.23    0.000002           2         1           getrlimit
  0.23    0.000002           2         1           set_tid_address
  0.12    0.000001           1         1           rt_sigprocmask
------ ----------- ----------- --------- --------- ----------------
100.00    0.000868                    87        10 total</pre>
<p>Вот такая полезная штука. Man strace, одним словом!</p>
<p>&nbsp;</p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html" title="Простой способ проверки процесса на существование">Простой способ проверки процесса на существование</a></li><li><a href="http://alexvolkov.ru/wordpress-i-memcache-2.html" title="Wordpress и memcache 2">Wordpress и memcache 2</a></li><li><a href="http://alexvolkov.ru/skripty-dlya-morfologicheskogo-analiza-teksta.html" title="Скрипты для морфологического анализа текста.">Скрипты для морфологического анализа текста.</a></li><li><a href="http://alexvolkov.ru/pakety-dlya-raboty-s-imap-dlya-php.html" title="Пакеты для работы с imap для php">Пакеты для работы с imap для php</a></li><li><a href="http://alexvolkov.ru/problems-with-the-serialization-of-arrays.html" title="Проблемы с сериализацией массивов">Проблемы с сериализацией массивов</a></li><li><a href="http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html" title="Считаем, сколько строк кода в php проекте.">Считаем, сколько строк кода в php проекте.</a></li><li><a href="http://alexvolkov.ru/class-to-work-with-the-service-reduction-options.html" title="Класс для работы с сервисами сокращения ссылок">Класс для работы с сервисами сокращения ссылок</a></li><li><a href="http://alexvolkov.ru/reproduction-lines-the-generation-function-of-all-possible-values-of-the-template.html" title="Размножение строк &#8212; функция генерации всех возможных значений из шаблона {} ">Размножение строк &#8212; функция генерации всех возможных значений из шаблона {} </a></li><li><a href="http://alexvolkov.ru/okonchaniya-chislitelnykh-v-php.html" title="Окончания числительных в php">Окончания числительных в php</a></li><li><a href="http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html" title="Watchdog для своих скриптов или проверка состояния процесса">Watchdog для своих скриптов или проверка состояния процесса</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Что делать, если сбил все права?</title>
		<link>http://alexvolkov.ru/what-to-do-if-you-blow-down-all-file-permissions.html</link>
		<comments>http://alexvolkov.ru/what-to-do-if-you-blow-down-all-file-permissions.html#comments</comments>
		<pubDate>Fri, 18 Mar 2011 19:48:41 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[шелл]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1827</guid>
		<description><![CDATA[Выставил я тут на рабочем сервере права на всю папку, в которой сайты лежат, 0777.  От души так, типа не жалко. Лучше и не спрашивайте, как так получилось)) Не, все работает конечно, но как-то немного стремно с полностью открытой на запись и выполнение папкой, доступной из веба жить И папок вложенных куча, руками нереально все [...]]]></description>
			<content:encoded><![CDATA[<p>Выставил я тут на рабочем сервере права на всю папку, в которой сайты лежат, 0777.  От души так, типа не жалко. Лучше и не спрашивайте, как так получилось))</p>
<p>Не, все работает конечно, но как-то немного стремно с полностью открытой на запись и выполнение папкой, доступной из веба жить <img src='http://alexvolkov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  И папок вложенных куча, руками нереально все права поправить.</p>
<p>Вобщем, правится так.</p>
<p>Сначала всем ставим 0644</p>
<pre class="brush:shell">chmod -R 0644 ./*</pre>
<p>Затем папкам ставим 0755</p>
<pre class="brush:shell">chmod -R 0755 ./$(find . -type d)</pre>
<p>P.S. Ну и главное правило напоследок -  Не лезь, блять, с несоображающей головой на рабочий сервер. Надо <a href="http://fucking-great-advice.ru/">сюда</a> будет его отправить, там таких много))</p>
<p>P.P.S. <a href="http://ru.wikipedia.org/wiki/Chmod">Вики рулит</a> )</p>
<p>Восстанавливаем текстовые файлы</p>
<pre class="brush:shell">find . -type f -exec chmod 644 {} \;</pre>
<p>Потом папки</p>
<pre class="brush:shell">find . -type d -exec chmod 755 {} \;</pre>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/organizaciya-bekapa-na-serverakh.html" title="Организация бекапа на серверах">Организация бекапа на серверах</a></li><li><a href="http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html" title="Считаем, сколько строк кода в php проекте.">Считаем, сколько строк кода в php проекте.</a></li><li><a href="http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html" title="Простой способ проверки процесса на существование">Простой способ проверки процесса на существование</a></li><li><a href="http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html" title="Watchdog для своих скриптов или проверка состояния процесса">Watchdog для своих скриптов или проверка состояния процесса</a></li><li><a href="http://alexvolkov.ru/kak-uznat-status-processa-po-pid.html" title="Как узнать статус процесса по pid">Как узнать статус процесса по pid</a></li><li><a href="http://alexvolkov.ru/prikoly-v-konsoli-zypper.html" title="Приколы в консоли, zypper )">Приколы в консоли, zypper )</a></li><li><a href="http://alexvolkov.ru/kak-uznat-s-kakimi-flagami-sobran-php.html" title="Как узнать, с какими флагами собран php">Как узнать, с какими флагами собран php</a></li><li><a href="http://alexvolkov.ru/skript-massovojj-ustanovki-wordpress.html" title="Скрипт массовой установки wordpress">Скрипт массовой установки wordpress</a></li><li><a href="http://alexvolkov.ru/import-arkhivirovannykh-dampov-gz-lzma-bzip.html" title="Импорт архивированных дампов .gz .lzma .bzip">Импорт архивированных дампов .gz .lzma .bzip</a></li><li><a href="http://alexvolkov.ru/grepnut-srazu-dva-ili-bolee-slov.html" title="Грепнуть сразу два или более слов ">Грепнуть сразу два или более слов </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/what-to-do-if-you-blow-down-all-file-permissions.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>APT и его коровья суперсила</title>
		<link>http://alexvolkov.ru/apt-and-its-cow-superforce.html</link>
		<comments>http://alexvolkov.ru/apt-and-its-cow-superforce.html#comments</comments>
		<pubDate>Thu, 03 Feb 2011 19:58:57 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1803</guid>
		<description><![CDATA[Когда то я запостил скрин тара с его робким отказом, сегодня вот заметил такую штуку в apt: Интересно, в оригинальной английской убунте тоже самое написано или это перевод такой Еще несколько ссылочек.Ничего нет похожего на этот пост, он неповторим]]></description>
			<content:encoded><![CDATA[<p>Когда то я запостил <a href="http://alexvolkov.ru/robkijj-tar.html">скрин тара с его робким отказом</a>, сегодня вот заметил такую штуку в apt:<br/><br />
<a href="http://alexvolkov.ru/wp-content/uploads/2011/02/Снимок.png"><img class="alignnone size-full wp-image-1804" title="Снимок" src="http://alexvolkov.ru/wp-content/uploads/2011/02/-e1296763004332.png" alt="" width="542" height="57" /></a><br/><br />
Интересно, в оригинальной английской убунте тоже самое написано или это перевод такой <img src='http://alexvolkov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li>Ничего нет похожего на этот пост, он неповторим</li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/apt-and-its-cow-superforce.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Star Wars 4: новая надежда :)</title>
		<link>http://alexvolkov.ru/star-wars-4-a-new-hope.html</link>
		<comments>http://alexvolkov.ru/star-wars-4-a-new-hope.html#comments</comments>
		<pubDate>Thu, 09 Dec 2010 11:24:33 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1799</guid>
		<description><![CDATA[Фильм, который наверно смотрели все, только он текстовый и показывается в шелле telnet towel.blinkenlights.nl Кстати, полезный сайтик, много всяких команд для консоли. Еще несколько ссылочек.Ничего нет похожего на этот пост, он неповторим]]></description>
			<content:encoded><![CDATA[<p>Фильм, который наверно смотрели все, только он текстовый и показывается в шелле <img src='http://alexvolkov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush:shell">telnet towel.blinkenlights.nl</pre>
<p><a href="http://alexvolkov.ru/wp-content/uploads/2010/12/starwars-e1291893774818.png"><img src="http://alexvolkov.ru/wp-content/uploads/2010/12/starwars-e1291893774818.png" alt="" title="starwars" width="595" height="320" class="alignnone size-full wp-image-1800" /></a><br />
Кстати, <a href="http://www.commandlinefu.com/commands/view/7251/play-star-wars-episode-iv-in-your-terminal-?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+Command-line-fu+%28Command-Line-Fu%29">полезный сайтик</a>, много всяких команд для консоли. </p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li>Ничего нет похожего на этот пост, он неповторим</li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/star-wars-4-a-new-hope.html/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Watchdog для своих скриптов или проверка состояния процесса</title>
		<link>http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html</link>
		<comments>http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html#comments</comments>
		<pubDate>Sat, 02 Oct 2010 18:03:56 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1741</guid>
		<description><![CDATA[По просьбе одного камрада. Хотя мне самому такая штука давно нужна, т.к. апач на одном серваке любит отвалиться Постарался написать как можно короче, пхп тут постольку поскольку, основная работа на баше. Вкратце, чего делает. Запрашивает пид у процесса с именем $processName, если возвращается пустая строка, то запускается скрипт по указанному пути $pathToScript &#60;?php $processName = [...]]]></description>
			<content:encoded><![CDATA[<p>По просьбе одного камрада. Хотя мне самому такая штука давно нужна, т.к. апач на одном серваке любит отвалиться <img src='http://alexvolkov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Постарался написать как можно короче, пхп тут постольку поскольку, основная работа на баше.<br />
Вкратце, чего делает. Запрашивает пид у процесса с именем <strong>$processName</strong>, если возвращается пустая строка, то запускается скрипт по указанному пути $pathToScript</p>
<pre class="brush:php">&lt;?php
$processName = 'script.php';
$pathToScript = '/home/alex/script.php';
$check = exec("ps a | grep " .$processName. " | grep -v grep | awk '{print $1}'");
if(strlen($check) &lt; 1){
	    exec("php ". $pathToScript ." ");
	} else {
	    echo 'all done\r\n';
	}

?&gt;</pre>
<p>По задумке ставится на минутный крон.</p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html" title="Простой способ проверки процесса на существование">Простой способ проверки процесса на существование</a></li><li><a href="http://alexvolkov.ru/problems-with-the-serialization-of-arrays.html" title="Проблемы с сериализацией массивов">Проблемы с сериализацией массивов</a></li><li><a href="http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html" title="Считаем, сколько строк кода в php проекте.">Считаем, сколько строк кода в php проекте.</a></li><li><a href="http://alexvolkov.ru/class-to-work-with-the-service-reduction-options.html" title="Класс для работы с сервисами сокращения ссылок">Класс для работы с сервисами сокращения ссылок</a></li><li><a href="http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html" title="Примеры использования strace для отладки скриптов">Примеры использования strace для отладки скриптов</a></li><li><a href="http://alexvolkov.ru/what-to-do-if-you-blow-down-all-file-permissions.html" title="Что делать, если сбил все права?">Что делать, если сбил все права?</a></li><li><a href="http://alexvolkov.ru/reproduction-lines-the-generation-function-of-all-possible-values-of-the-template.html" title="Размножение строк &#8212; функция генерации всех возможных значений из шаблона {} ">Размножение строк &#8212; функция генерации всех возможных значений из шаблона {} </a></li><li><a href="http://alexvolkov.ru/okonchaniya-chislitelnykh-v-php.html" title="Окончания числительных в php">Окончания числительных в php</a></li><li><a href="http://alexvolkov.ru/podstanovka-ssylok-v-tekst-v-procentnom-sootnoshenii.html" title="Подстановка ссылок в текст в процентном соотношении.">Подстановка ссылок в текст в процентном соотношении.</a></li><li><a href="http://alexvolkov.ru/kolichestvo-folloverov-v-tvittere-chislom.html" title="Количество фолловеров в твиттере числом">Количество фолловеров в твиттере числом</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/watchdog-dlya-svoikh-skriptov-ili-proverka-sostoyaniya-processa.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Изменить размер картинки пакетно</title>
		<link>http://alexvolkov.ru/izmenit-razmer-kartinki-paketno.html</link>
		<comments>http://alexvolkov.ru/izmenit-razmer-kartinki-paketno.html#comments</comments>
		<pubDate>Wed, 21 Jul 2010 07:05:42 +0000</pubDate>
		<dc:creator>Alex Volkov</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ниочем]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[mogrify]]></category>

		<guid isPermaLink="false">http://alexvolkov.ru/?p=1695</guid>
		<description><![CDATA[Без всяких сторонних библиотек и классов. Крайне просто и быстро. Нужна только imagemagick, стоит на большинстве дистрибутивов по дефолту. Предварительно копируем: cd /home/user/images mkdir resized_images cp /home/user/images/* /home/user/images/resized_images Ресайзим с сохранением аспекта mogrify -resize 800 *.jpg Можно и с жестким размером mogrify -resize 800×600! *.jpg Линукс все-таки удобная штука! Свалилось в ридер вот отсюда P.S. [...]]]></description>
			<content:encoded><![CDATA[<p>Без всяких сторонних библиотек и классов. Крайне просто и быстро. Нужна только imagemagick, стоит на большинстве дистрибутивов по дефолту.<br />
Предварительно копируем:</p>
<pre class="brush:shell">cd /home/user/images
mkdir resized_images
cp /home/user/images/* /home/user/images/resized_images</pre>
<p>Ресайзим с сохранением аспекта</p>
<pre class="brush:shell">mogrify -resize 800 *.jpg</pre>
<p>Можно и с жестким размером</p>
<pre class="brush:shell">mogrify -resize 800×600! *.jpg</pre>
<p>Линукс все-таки удобная штука!<br />
Свалилось в ридер <a href="http://tips4linux.com/batch-resize-images-using-the-command-line-in-linux/">вот отсюда</a></p>
<p><strong>P.S.</strong> У Уральского Жулика нашел интересный способ, как увеличить продажы в сапе и заодно оформить ссылки в блок аля директ:</p>
<p><a href="http://1.bp.blogspot.com/_5-2P2CyjmO8/TEV6ogtnO1I/AAAAAAAAAC0/DUli8VaRkcU/s1600/screen2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5495933756670163794" src="http://1.bp.blogspot.com/_5-2P2CyjmO8/TEV6ogtnO1I/AAAAAAAAAC0/DUli8VaRkcU/s320/screen2.jpg" border="0" alt="" /></a></p>
<p>Задумка крайне интересная, попробовать стоит. Только вот думаю, что как продажные ссылки не оформляй, они все равно останутся продажными и санкции за них все равно могут применить.</p>
<h2  class="related_post_title">Еще несколько ссылочек.</h2><ul class="related_post"><li><a href="http://alexvolkov.ru/consider-how-many-lines-of-code-in-a-php-project.html" title="Считаем, сколько строк кода в php проекте.">Считаем, сколько строк кода в php проекте.</a></li><li><a href="http://alexvolkov.ru/a-simple-way-to-test-the-process-on-the-existence-of.html" title="Простой способ проверки процесса на существование">Простой способ проверки процесса на существование</a></li><li><a href="http://alexvolkov.ru/examples-of-using-strace-to-debug-scripts.html" title="Примеры использования strace для отладки скриптов">Примеры использования strace для отладки скриптов</a></li><li><a href="http://alexvolkov.ru/gnom-sel-moego-parnya.html" title="Гном сьел моего парня! ">Гном сьел моего парня! </a></li><li><a href="http://alexvolkov.ru/kak-uznat-status-processa-po-pid.html" title="Как узнать статус процесса по pid">Как узнать статус процесса по pid</a></li><li><a href="http://alexvolkov.ru/vyshla-mandriva-linux-2012-alpha-2.html" title="Вышла Mandriva Linux 2012 alpha 2">Вышла Mandriva Linux 2012 alpha 2</a></li><li><a href="http://alexvolkov.ru/prikoly-v-konsoli-zypper.html" title="Приколы в консоли, zypper )">Приколы в консоли, zypper )</a></li><li><a href="http://alexvolkov.ru/mobile-partner-pod-linuks-dlya-modema-huawei-e1550.html" title="Mobile partner под линукс для модема Huawei E1550">Mobile partner под линукс для модема Huawei E1550</a></li><li><a href="http://alexvolkov.ru/udalit-vse-pustye-stroki-v-fajjle.html" title="Удалить все пустые строки в файле">Удалить все пустые строки в файле</a></li><li><a href="http://alexvolkov.ru/esli-ne-rabotaet-zvuk-v-mandriva.html" title="Если не работает звук в mandriva">Если не работает звук в mandriva</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://alexvolkov.ru/izmenit-razmer-kartinki-paketno.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  alexvolkov.ru/category/linux/feed ) in 0.55788 seconds, on Feb 5th, 2012 at 8:36 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 5th, 2012 at 9:36 am UTC -->
