<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3951561205879643238</id><updated>2012-04-19T19:58:23.422+03:00</updated><category term='linux'/><category term='apache'/><category term='ext3'/><category term='tools'/><category term='SSH'/><category term='boot'/><category term='SQL'/><category term='ISO'/><category term='RAID'/><category term='ігри'/><category term='storage'/><category term='disk'/><category term='hfs+'/><category term='USB'/><category term='Flash'/><category term='Chrome'/><category term='python'/><category term='Django'/><category term='mac'/><category term='https'/><category term='WTF'/><category term='ext4'/><category term='ubuntu'/><category term='error'/><category term='backup'/><title type='text'>LCA</title><subtitle type='html'>Замітки про інформаційні технології (Linux, Mac, програмування).</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lca.lviv.ua/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-3066535296545101423</id><published>2012-03-12T22:38:00.000+02:00</published><updated>2012-03-12T22:38:08.492+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>"Системні" налаштування Django-проекту</title><content type='html'>&lt;p&gt;Цікавий підхід до організації файлу налаштувань Django-проекту (settings.py).&lt;/p&gt;
&lt;p&gt;Виносимо певні змінні конфігурації "за дужки", може бути корисним для використання спільних опцій для кількох проектів або спрощення процедури оновлення проекту (локальні налаштування за межами каталогу проекту).&lt;/p&gt;
&lt;code&gt;
### settings.py&lt;br&gt;
import os&lt;br&gt;
ENVIRONMENT_SETTING_FILE = '/etc/django.myproject.settings'&lt;br&gt;
### this will load all environment file settings in here&lt;br&gt;
execfile(ENVIRONMENT_SETTING_FILE)&lt;br&gt;
### all common settings&lt;br&gt;
### ...
&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-3066535296545101423?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/3066535296545101423/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=3066535296545101423' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/3066535296545101423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/3066535296545101423'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2012/03/django.html' title='&quot;Системні&quot; налаштування Django-проекту'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-70595547038265195</id><published>2012-03-10T23:13:00.000+02:00</published><updated>2012-03-10T23:13:25.371+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO'/><category scheme='http://www.blogger.com/atom/ns#' term='USB'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='boot'/><title type='text'>Завантажння з ISO-образу на USB Flash</title><content type='html'>&lt;p&gt;Прикро, але досі більшість виробників "заліза" випускають свої діагностичні утиліти для найпоширенішої ОС. А ще прикріше, коли ці утиліти під нею не працюють, як сталося у моєму випадку: SeaTools for Windows ніяк не хотіли запускатись.&lt;/p&gt;
&lt;p&gt;Насправді все не так погано, Seagate знає про існування інших систем, і на цей випадок зробив SeaTools for DOS, які можна завантажити у вигляді завантажувального ISO-образу. Новий виток "розваг" чекає на вас, якщо комп'ютер не має CD/DVD або під рукою не виявиться "болванки" на яку можна було б записати образ. Як завжди, у скрутній ситуації нас виручить Linux.&lt;/p&gt;
&lt;p&gt;Тут закінчується лірика і починається інструкція по запису ISO-образу на USB Flash у такий спосіб, щоб з нього можна було завантажитись. &lt;i&gt;!!! Файлова система на Flash-накопичувачі повинна бути FAT23.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Якщо раптом у системі не встановлено пакунок syslinux:&lt;/p&gt;
&lt;code&gt;
# apt-get install syslinux
&lt;/code&gt;
&lt;p&gt;Копіюємо MBR із завантажувачем:&lt;/p&gt;
&lt;code&gt;
# cat /usr/lib/syslinux/mbr.bin /dev/sdX
&lt;/code&gt;
&lt;p&gt;&lt;i&gt;! MBR копіюється саме на пристрій, а не розділ, наприклад, /dev/sdc&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Встановлюємо SYSLINUX на розділ:&lt;/p&gt;
&lt;code&gt;
# syslinux /dev/sdXY
&lt;/code&gt;
&lt;p&gt;&lt;i&gt;! А тут уже розділ, наприклад, /dev/sdc1&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Монтуємо Flash-накопичувач, якщо він не примонтувався автоматично і копіюємо файли в його корінь:&lt;/p&gt;
&lt;code&gt;
# cp /usr/lib/syslinux/memdisk /media/flash&lt;br&gt;
# cp ~/downloads/SeaToolsDOS223ALL.ISO /media/flash/
&lt;/code&gt;
&lt;p&gt;Також у корінь вашого Flash-накопичувача потрібно помістити конфігураційний файл &lt;b&gt;syslinux.cfg&lt;/b&gt; з таким вмістом:&lt;/p&gt;
&lt;code&gt;
DEFAULT SeaTools&lt;br&gt;
LABEL SeaTools&lt;br&gt;
&amp;nbsp;&amp;nbsp;LINUX memdisk&lt;br&gt;
&amp;nbsp;&amp;nbsp;INITRD SeaToolsDOS223ALL.ISO&lt;br&gt;
&amp;nbsp;&amp;nbsp;APPEND iso
&lt;/code&gt;
&lt;p&gt;Все! Тепер можна завантажуватись з цього накопичувача і користуватись утилітами.&lt;/p&gt;
&lt;p&gt;Цей спосіб навряд чи підійде для запису ISO-образів установочних дисків ОС Windows, але усілякі "Utility" і "Firmware" працюють.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;По матеріалам статті &lt;a href="http://fetzig.org/2010/07/12/preparing-a-bootable-seatools-usb-drive-in-fedora/"&gt;Preparing a bootable SeaTools USB drive in Fedora&lt;/a&gt; від &lt;a href="http://fetzig.org/author/Felix/"&gt;Felix Kaechele&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-70595547038265195?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/70595547038265195/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=70595547038265195' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/70595547038265195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/70595547038265195'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2012/03/iso-usb-flash.html' title='Завантажння з ISO-образу на USB Flash'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-5351186745571597685</id><published>2012-01-19T19:21:00.002+02:00</published><updated>2012-01-19T19:21:50.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>SSH прості хитрощі</title><content type='html'>&lt;p&gt;Інформація здебільшого для новачків, але й у мене руки дійшли до цього тільки зараз.&lt;/p&gt;
&lt;p&gt;Є багато засобів захисту SSH від тупих атак "китайських хакерів", найочевидніший – прикрити фаєрволом від "світу", залишивши доступ тільки з відомих довірених мереж/вузлів. Але такий варіант не завжди підходить, наприклад, є машини які використовуються у якості "точок входу" (на випадок коли немає можливості підключитись по VPN). Стійкі паролі досить надійно захищають від грубих атак, але армія роботів все одно спробує переконати сервер що пароль "Мао*Дзедун", їхні спроби засмічують журнали, що в будь-якому разі не є добре.&lt;/p&gt;
&lt;p&gt;Найпростіший спосіб направити цю армію по хибному шляху, перенести службу SSH на інший &lt;b&gt;нестандартний&lt;/b&gt; порт, наприклад, tcp/227 або будь-який інший не задіяний для стандартних служб.&lt;/p&gt;
&lt;i&gt;
&lt;p&gt;!!! Будьте обережні, особливо якщо сервер віддалений, при зміні налаштувань не "зарубайте" доступ самому собі. Для цього виконуйте зміни у наступному порядку:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;до конфігурації фаєрволу додайте правило, яке дозволить з'єднання по новому нестандартному порту;&lt;/li&gt;
&lt;li&gt;змініть порт у налаштуваннях SSHd;&lt;/li&gt;
&lt;li&gt;перевірте з'єднання по новому порту;&lt;/li&gt;
&lt;li&gt;і тільки тепер заберіть правило, яке дозволяло з'єднання по стандартному порту.&lt;/li&gt;
&lt;/ul&gt;
&lt;/i&gt;
&lt;p&gt;Але це тільки пів справи, ви надурили армію роботів, але й собі створили незручності, для підключення до сервера вам доведеться вказувати додаткові параметри:&lt;/p&gt;
&lt;code&gt;
~$ ssh -p 227 server.example.com
&lt;/code&gt;
&lt;p&gt;Справжні спеціалісти не люблять дурної роботи, тому ми навчимо ssh-клієнт пам'ятати у якого сервер який порт використовується. Для цього допишіть у файл ~/.ssh/config ось такі рядки:&lt;/p&gt;
&lt;code&gt;
Host server.example.com&lt;br&gt;
Port 227
&lt;/code&gt;
&lt;p&gt;Після цього вам не потрібно буде кожного разу вказувати порт вручну.&lt;/p&gt;
&lt;p&gt;Це не єдина зручність яку дозволяє організувати конфігураційний файл ssh, ви можете створювати псевдоніми для вузлів, автоматично підставляти нестандартне ім'я користувача, тощо.&lt;/p&gt;
&lt;code&gt;
Host dev&lt;br&gt;
HostName developer.example.com&lt;br&gt;
User vasyadev&lt;br&gt;
Port 227&lt;br&gt;
IdentityFile developer_key
&lt;/code&gt;
&lt;p&gt;Почитайте &lt;b&gt;man ssh_config&lt;/b&gt;. Що краще ви знаєте свій інструмент, то більш ефективною стає ваша робота.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-5351186745571597685?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/5351186745571597685/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=5351186745571597685' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/5351186745571597685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/5351186745571597685'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2012/01/ssh.html' title='SSH прості хитрощі'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-6525955310042794280</id><published>2011-12-05T02:00:00.001+02:00</published><updated>2011-12-08T00:24:18.725+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WTF'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><title type='text'>408 - Підступний Chrome</title><content type='html'>&lt;p&gt;Хорошою практикою є періодичний перегляд журналів на серверах, там можна знайти багато цікавого (симптоми виходу з ладу обладнання, хакерські потуги, помилки конфігурації, тощо).&lt;/p&gt;
&lt;p&gt;Віднедавна я почав помічати на кількох web-серверах (apache2) помилку 408 "Request timeout". Причому кількість помилок поступово зростала. "Фізичний зміст" помилки - браузер встановив з'єднання з сервером, але не надіслав запит протягом відведеного на це часу, тоді сервер закриває з'єднання з помилкою 408.&lt;/p&gt;
&lt;p&gt;Перші пояснення, які мені вдалося знайти на форумах, зводилися до (D)DoS атак або злих хробаків. Обидві гіпотези майже зразу спростувалися: сервіси глибоко внутрішні - DDoS-у взятись нема звідки; майже половина машин, які засвітилися з такою помилкою - це робочі станції локальної мережі з ОС Ununtu, які обслуговуються кваліфікованими адміністраторами.&lt;/p&gt;
&lt;p&gt;Але другий підхід до цієї проблеми (лишити її так я не міг, Logwatch щодня про неї нагадував) навів мене на справжнього винуватця, ним виявився браузер Chrome від "корпорації добра". Для зменшення часу відкривання сторінок, ця зараза має "фічу" speculative pre-connect, тобто про всяк випадок відкриває з'єднання заздалегідь, сподіваючись що від сервера ще щось знадобиться і тоді треба буде тільки послати запит. На цю "фічу" завели "&lt;a href="http://code.google.com/p/chromium/issues/detail?id=85229" class="my"&gt;баг репорт&lt;/a&gt;" :)&lt;/p&gt;
&lt;p&gt;На цьому місці я зміг посміхнутись і вирішити залишити все як є, навантаження на сервери не велике, Chrome-ів мало. Але для серверів з більшим навантаженням може знадобитись зменшити значення Timeout у конфігурації Apache, щоб зменшити імовірність вичерпання максимальної кількості одночасно підключених клієнтів (MaxClients).&lt;/p&gt;
&lt;p&gt;Дуже сподіваюся, що скоро вони таки «improve the accuracy of our preconnect target»&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-6525955310042794280?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/6525955310042794280/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=6525955310042794280' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/6525955310042794280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/6525955310042794280'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/12/408-chrome.html' title='408 - Підступний Chrome'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-7821788502104404675</id><published>2011-12-01T00:46:00.001+02:00</published><updated>2011-12-01T02:14:30.181+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ext4'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='ext3'/><title type='text'>Використовуємо "резервне" місце на ext3/ext4</title><content type='html'>&lt;p&gt;Сьогодні напишу про дуже просту штуку, але я про неї не зразу згадав, тому можливо і вам буде цікаво.&lt;/p&gt;
&lt;p&gt;Є маленький сервер, який використовується для резервного копіювання з допомогою Bacula. Для зберігання резервних копій у нього окремий розділ (515.4 GB) з &lt;b&gt;ext4&lt;/b&gt;. Одного дня перестало вистачати місця для зберігання резервних копій протягом 30-днів, забракло якихось 20GB. Я вже заходився підключати новий диск, більший. Аж раптом згадав...&lt;/p&gt;
&lt;p&gt;...що при створенні файлових систем ext3/ext4, по замовчуванню 5% резервується на випадок переповнення диску. Ці блоки доступні лише для користувача &lt;i&gt;root&lt;/i&gt;, щоб він міг увійти на систему з переповненим диском. Це дуже завбачливо, але є кілька "але":&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5% це резонна величина для маленьких дисків/розділів, але для 1 TB - це 51 GB;&lt;/li&gt;
&lt;li&gt;для успішного входу супер-користувача місце потрібно на &lt;b&gt;/&lt;/b&gt; і &lt;b&gt;/tmp&lt;/b&gt;, на інших розділах (/home, наприклад) цього не треба;&lt;/li&gt;
&lt;li&gt;місце резервується для входу супер-користувача, але у більшості сучасних систем для входу використовується звичайний користувач, який потім підвищує свої привілеї, припускаю що резервування не допоможе зайти на таку систему, коли у неї переповниться диск&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Тому, &lt;strong&gt;діючи дуже обережно&lt;/strong&gt;, ми зменшимо кількість зарезервованих блоків або відключимо резервування, змінивши налаштування ФС.&lt;/p&gt;
&lt;p&gt;Подивимось скільки ж ми "втрачаємо":&lt;p&gt;
&lt;pre&gt;&lt;code&gt;# tune2fs -l /dev/sdc5 | grep -i block
Block count:              125828608
Reserved block count:     6291430
Free blocks:              488281
... skip ...
Block size:               4096
... skip ...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Як бачимо, 6291430*4096=25.769.697.280 байт дискового простору "гуляє". Для зміни кількості зарезервованих блоків використовується та ж команда, тільки з опцією &lt;b&gt;-m&lt;/b&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# tune2fs -m &amp;lt;скільки відсотків резервувати&amp;gt; /dev/sdb5&lt;/code&gt;&lt;/pre&gt;
Щоб повністю відключити резервування вкажіть кількість відсотків - 0:
&lt;pre&gt;&lt;code&gt;# tune2fs -m 0 /dev/sdс5
tune2fs 1.41.11 (14-Mar-2010)
Setting reserved blocks percentage to 0% (0 blocks)
# tune2fs -l /dev/sdc5 | grep -i block
Block count:              125828608
Reserved block count:     0
Free blocks:              6779711
... skip ...
Block size:               4096
... skip ...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;"Звільнилася" купа місця :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Увага! Зовсім не потрібно бігти відключати резервування на всіх-всіх-всіх розділах, при невисокій ціні на жорсткі диски, 5% не така висока ціна за додаткову надійність. Тому міняйте налаштування резервування блоків тільки тоді, коли точно знаєте що робите.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Я би просто полінувався міняти, але морока зі зміною розділів була більшою ;) Про LVM там теж вчасно не згадали :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-7821788502104404675?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/7821788502104404675/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=7821788502104404675' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/7821788502104404675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/7821788502104404675'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/12/ext3ext4.html' title='Використовуємо &quot;резервне&quot; місце на ext3/ext4'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-5545064052598435630</id><published>2011-09-20T09:50:00.000+03:00</published><updated>2011-09-20T09:50:26.137+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WTF'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>PostgreSQL schema diff</title><content type='html'>Я з 2008-го року мріяв про інструмент який шукає різниці між схемами БД, а виявляється є такий. Зустрічайте - &lt;a href="http://apgdiff.startnet.biz/"&gt;Another PostgreSQL Diff Tool (apgdiff)&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;apgdiff&lt;/b&gt; є в репозиторіях Ubuntu. Дуже дивно як я його раніше не знайшов.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-5545064052598435630?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/5545064052598435630/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=5545064052598435630' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/5545064052598435630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/5545064052598435630'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/09/postgresql-schema-diff.html' title='PostgreSQL schema diff'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-9206131575032140814</id><published>2011-07-19T13:54:00.009+03:00</published><updated>2011-07-19T14:58:03.546+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='disk'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='RAID'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><title type='text'>Прості правила зберігання даних (Linux)</title><content type='html'>&lt;p&gt;У часи, коли інформація є одним з найцінніших ресурсів, оберігати її слід дуже пильно. Тому напишу про &lt;b&gt;обов'язкові&lt;/b&gt; заходи моніторингу сховищ інформації.&lt;/p&gt;&lt;p&gt;Маємо сервер з ОС Linux та програмним RAID1 або RAID5, хоча поради будуть слушні і для інших типів масивів.&lt;/p&gt;&lt;h3&gt;Моніторинг RAID-масиву&lt;/h3&gt;&lt;p&gt;Відкрийте файл &lt;tt&gt;/etc/mdadm/mdadm.conf&lt;/tt&gt;, та розкоментуйте і виправте, вказавши потрібну E-mail адресу, наступний рядок:
&lt;pre&gt;&lt;code&gt;MAILADDR sysadmin@ваш.домен.ua&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;h3&gt;Моніторинг стану жорстких дисків (всіх, не тільки з RAID масиву)&lt;/h3&gt;&lt;p&gt;Про те, що диск скоро треба буде замінити, хотілося б знати заздалегідь, для цього ми налаштуємо &lt;b&gt;smartd&lt;/b&gt; з пакунку &lt;b&gt;smartmontools&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Відкрийте файл /etc/default/smartmontools та розкоментуйте рядок:
&lt;pre&gt;&lt;code&gt;start_smartd=yes&lt;/code&gt;&lt;/pre&gt;
, це дозволить smartd запускатись при старті системи.&lt;/p&gt;&lt;p&gt;Стандартна конфігурація smartd передбачає автоматичний пошук дисків, які підтримують S.M.A.R.T., тому вам достатньо відредагувати файл &lt;tt&gt;/etc/smartd.conf&lt;/tt&gt;, встановивши правильну E-mail адресу в опції автопошуку:
&lt;pre&gt;&lt;code&gt;DEVICESCAN -m sysadmin@ваш.домен.ua -M exec /usr/share/smartmontools/smartd-runner&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Після перезапуску в журналі &lt;tt&gt;/var/log/syslog&lt;/tt&gt; ви побачите приблизно таке:
&lt;pre&gt;&lt;code&gt;Jul 19 14:21:21 psi smartd[18491]: smartd version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Jul 19 14:21:21 psi smartd[18491]: Home page is http://smartmontools.sourceforge.net/#012
Jul 19 14:21:21 psi smartd[18491]: Opened configuration file /etc/smartd.conf
Jul 19 14:21:21 psi smartd[18491]: Drive: DEVICESCAN, implied '-a' Directive on line 22 of file /etc/smartd.conf
Jul 19 14:21:21 psi smartd[18491]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Jul 19 14:21:21 psi smartd[18491]: Problem creating device name scan list
Jul 19 14:21:21 psi smartd[18491]: Device: /dev/sda, opened
Jul 19 14:21:21 psi smartd[18491]: Device /dev/sda: using '-d sat' for ATA disk behind SAT layer.
Jul 19 14:21:21 psi smartd[18491]: Device: /dev/sda, opened
Jul 19 14:21:21 psi smartd[18491]: Device: /dev/sda, found in smartd database.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sda, is SMART capable. Adding to "monitor" list.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdb, opened
Jul 19 14:21:22 psi smartd[18491]: Device /dev/sdb: using '-d sat' for ATA disk behind SAT layer.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdb, opened
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdb, found in smartd database.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdb, is SMART capable. Adding to "monitor" list.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdc, opened
Jul 19 14:21:22 psi smartd[18491]: Device /dev/sdc: using '-d sat' for ATA disk behind SAT layer.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdc, opened
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdc, not found in smartd database.
Jul 19 14:21:22 psi smartd[18491]: Device: /dev/sdc, is SMART capable. Adding to "monitor" list.
Jul 19 14:21:22 psi smartd[18491]: Monitoring 0 ATA and 3 SCSI devices&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;На одному з серверів я мав проблему з автовизначенням, тому довелося  закоментувати DEVICESCAN та прописати диски вручну, ось так:
&lt;pre&gt;&lt;code&gt;/dev/sda -a -d sat -m sysadmin@ваш.домен.ua
/dev/sdb -a -d sat -m sysadmin@ваш.домен.ua&lt;/code&gt;&lt;/pre&gt;
, де &lt;tt&gt;-a&lt;/tt&gt; — набір стандартних перевірок, &lt;tt&gt;-d&lt;/tt&gt; — для дисків схованих за 'SAT layer' (у сучасних дистрибутивах всі диски виглядають та керуються, як диски з послідовним інтерфейсом), &lt;tt&gt;-m&lt;/tt&gt; — адреса, куди надсилатимуться звіти та попередження.&lt;/p&gt;&lt;p&gt;Запускаємо smartd:
&lt;pre&gt;&lt;code&gt;/etc/init.d/smartmontools start&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Ось і все, уважно читайте пошту за ранковою кавою :) і ви будете завжди в курсі того, що відбувається з вашими сховищами даних. Проте не забувайте і про необхідність резервного копіювання, бо моніторинг це обов'язкова, але недостатня умова для збереження даних.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-9206131575032140814?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/9206131575032140814/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=9206131575032140814' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/9206131575032140814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/9206131575032140814'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/07/linux.html' title='Прості правила зберігання даних (Linux)'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-3732716901665854317</id><published>2011-07-06T12:39:00.002+03:00</published><updated>2011-07-06T13:05:59.911+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WTF'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Іменування таблиць у базах даних</title><content type='html'>&lt;p&gt;Стандартні рекомендації щодо іменування об'єктів БД застерігають від використання іменників у множині (наприклад, contracts замість contract). Але у вітчизняних (це я так завуальовано написав про "легасі" частину нашої БС) продуктах іноді зустрічаються назви у множині та ще й транслітеровані з української (наприклад, ugody замість contract). З такими назвами був цікавий казус: один з новачків з круглими від здивування очима спитав мене - що це за поле "угадано", хоча мався на увазі номер угоди "ugodano".&lt;/p&gt;&lt;p&gt;До чого я все це веду, ніколи не називайте об'єкти БД словами у множині і із застосуванням транслітерації, подивіться у словник і виберіть англійський відповідник слова, а якщо об'єкт і має якусь локальну специфіку, опишіть це в документації.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-3732716901665854317?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/3732716901665854317/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=3732716901665854317' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/3732716901665854317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/3732716901665854317'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/07/blog-post.html' title='Іменування таблиць у базах даних'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-4133529256366143963</id><published>2011-06-29T17:23:00.008+03:00</published><updated>2011-06-30T02:22:04.139+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='hfs+'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='ext3'/><title type='text'>Mac OS X і зовнішній жорсткий диск</title><content type='html'>&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Задача:&lt;/span&gt; ефективно/зручно використовувати для резервного копіювання і зберігання всяких даних зовнішній жорсткий диск ємністю 1ТБайт у операційних системах Linux, Mac OS X і опціонально Windows.&lt;/p&gt;

&lt;h2&gt;Теоретична частина (вибір ФС для диску)&lt;/h2&gt; 
&lt;p&gt;З чого будемо вибирати: рідна для Linux — Ext3, рідна для Mac OS X — HFS+, рідна для Windows — NTFS, на FAT не дивимось бо її обмеження у XXI-у столітті виглядають смішними.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Ext3 - дуже симпатичний кандидат (OSS4ever!), але вимагає установки милиць у інші ОС, як виявилося пізніше дуже кривих.&lt;/li&gt;
  &lt;li&gt;HFS+ - Apple way, Джобз тріумфує (дай йому Бог здоров'я), для інших ОС знадобляться додаткові танці, але я сподіваюсь Linux, як завжди, потішить, а на Windows нам начхати (зовсім необов'язково)&lt;/li&gt;
  &lt;li&gt;NTFS - "обітєль зла", на Mac треба додатковий софт, на Linux хоч і коробочний, але теж не дуже рідний. Єдиний незначний плюс - можливість запхати в чужий віндовий комп'ютер, але й це скоріше мінус, бо ще всяких "зловрєдів" налізе.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Добряче почухавши потилицю, вибираємо HFS+, подивимось як заведеться під Linux.&lt;/p&gt;

&lt;h2&gt;Практична частина (зберігаючи хронологію, але без матюків)&lt;/h2&gt;
&lt;p&gt;Диск був відформатований у Ext3, оскільки раніше я використовував виключно Linux (Ubuntu). На ньому накопичилась купка даних, які треба тимчасово перенести на Mac (більше ніде немає достатньо місця), попутно пробуємо варіант №1 з теоретичної частини.&lt;/p&gt;

&lt;h3&gt;Спроба № раз — macfuse і ext2fuse&lt;/h3&gt;
&lt;p&gt;Взагалі, способів установки ПЗ на Mac забагато; і .dmg, і .pkg, для OSS - macports, а віднедавна ще й AppStore. Я, як новачок, ще й досі гублюся... але для OSS вибрав один єдиний "православний" і "кошерний" спосіб — macports.&lt;/p&gt;

&lt;p&gt;Вони ж (ports) мене і підвели, як ти їх не умовляй хоч через &lt;span style="font-style:italic;"&gt;variants&lt;/span&gt;, хоч через &lt;span style="font-style:italic;"&gt;macports.conf&lt;/span&gt;, все одно збирали модуль ядра тільки для архітектури i386.&lt;/p&gt;

&lt;p&gt;Помордувавшись трохи, подумав, біс із ним, перезавантажив систему у 32-бітному режимі. І тут невдача, щось йому там "connection timed out", вирішив далі не розбиратись. Зніс ext2fuse і macfuse.&lt;/p&gt;

&lt;h3&gt;Спроба № два — Ext2fsx&lt;/h3&gt;
&lt;p&gt;Проект дохлий, не оновлюється з 2006-го, але знайшлася пара статей за 2010 «ставте все працює» — дзуськи! На Snow Leopard (10.6.7) воно не працює ні разу. Нічого дивного, йдемо далі.&lt;/p&gt;

&lt;h3&gt;Спроба № три — Paragon (Бог трійцю любить)&lt;/h3&gt;
&lt;p&gt;За рекомендацією приятеля ставлю комерційний Paragon ExtFS for Mac OS X, "тик-тик-тик", встановлено — працює. Ура!&lt;/p&gt;

&lt;p&gt;Не душила б жаба заплатити $40 (але краще "Deore по кругу" для ровера, а якщо й до комп'ютера то Portal 2 ;)), використовував би на диску Ext3 і горя не знав, але ставлю 10-денну демо-версію, щоб тільки раз переписати файли з Ext3 на Mac.&lt;/p&gt;

&lt;h3&gt;Фініш&lt;/h3&gt;
&lt;p&gt;На цьому мої поневіряння закінчились, файли переписано, диск переформатовано у HFS+ (без журналювання). Linux побачив HFS+, хоч і без журналювання, зате «з коробки» на читання/запис, чим вкотре підтвердив свою позитивну репутацію «приспособлєнца».&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-4133529256366143963?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/4133529256366143963/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=4133529256366143963' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/4133529256366143963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/4133529256366143963'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/06/mac-os-x.html' title='Mac OS X і зовнішній жорсткий диск'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-4675393039509469712</id><published>2011-06-28T20:39:00.003+03:00</published><updated>2011-06-30T02:15:18.923+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ігри'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Прикупив іграшку для  Linux</title><content type='html'>&lt;p&gt;На &lt;a href="http://linux.org.ru/"&gt;ЛОР&lt;/a&gt;і проскочила новина про те, що іграшка &lt;a href="http://www.steel-storm.com/"&gt;Steel Storm&lt;/a&gt; продається в Ubuntu Software Center (далі USC) зі знижкою (за $2,99). Не те щоб мені дуже треба була іграшка під Linux, зараз літо і запчастини до велосипеда важливіші, але хто ж пройде повз велику знижку і можливість підтримати "геймдев", який бачить перспективу у нашій улюбленій платформі? :) Крім того, мені було цікаво як працює покупка в USC.&lt;/p&gt;

&lt;p&gt;Загалом, процедура покупки проста як одвірок. Шукаєш програму в USC, тиснеш «Купити», просять авторизуватись (добре, що в інфраструктурі Ubuntu працює наскрізна авторизація), вводиш "білінгову інформацію" (адресу) і дані платіжної карти, підтверджуєш покупку. Все! Гра встановлюється на комп'ютер. І ніяких проблем з тим, що ти живеш у неправильній країні (камінь у город Apple).&lt;/p&gt;

&lt;p&gt;Крім відсутності можливості оплатити покупку через PayPal (тільки напряму карткою), робота з комерційним ПЗ в USC лишила дуже приємні враження.&lt;/p&gt;

&lt;p&gt;Про саму гру: іграшка приємна, мені сподобалася (мабуть єдина з шутерів з виглядом зверху),  трошки одноманітна і доволі проста, але це тільки у режимі кампаній (single player), мережевий я ще спробую :).&lt;/p&gt;

&lt;p&gt;Гляньте відео:
&lt;iframe src="http://www.youtube.com/embed/DmFLEHE5Mn8" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-4675393039509469712?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/4675393039509469712/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=4675393039509469712' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/4675393039509469712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/4675393039509469712'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2011/06/linux.html' title='Прикупив іграшку для  Linux'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/DmFLEHE5Mn8/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-6456025758463019926</id><published>2008-06-21T21:21:00.000+03:00</published><updated>2011-06-06T21:12:08.196+03:00</updated><title type='text'>Lets go!</title><content type='html'>Буду пробувати вести журнал тут, бо ЖЖ мені вже занабрид. А це тестовий пост зроблений з мобільного.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-6456025758463019926?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/6456025758463019926/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=6456025758463019926' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/6456025758463019926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/6456025758463019926'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2008/06/lets-go.html' title='Lets go!'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3951561205879643238.post-9024346804845139031</id><published>2008-02-07T02:30:00.000+02:00</published><updated>2011-11-01T14:58:46.430+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Перенаправлення запитів з HTTP на HTTPS</title><content type='html'>&lt;p&gt;Часто виникала необхідність зробити автоматичне перенаправлення всіх запитів з http на https, а головне зробити це максимально простим способом і не влазячи в код програми.&lt;/p&gt;
&lt;p&gt;А робиться це наступним чином, в потрібному (найчастіше webroot) каталозі розмішується &lt;em&gt;.htaccess&lt;/em&gt; з наступним вмістом:&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3951561205879643238-9024346804845139031?l=lca.lviv.ua' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lca.lviv.ua/feeds/9024346804845139031/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3951561205879643238&amp;postID=9024346804845139031' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/9024346804845139031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3951561205879643238/posts/default/9024346804845139031'/><link rel='alternate' type='text/html' href='http://lca.lviv.ua/2008/02/http-https.html' title='Перенаправлення запитів з HTTP на HTTPS'/><author><name>errno</name><uri>http://www.blogger.com/profile/08351975554911265175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/-tEwZd2DCS-Y/Te0ZKes5KvI/AAAAAAAADYA/i2okmM6FQ5w/s220/me2.jpg'/></author><thr:total>0</thr:total></entry></feed>
