linux

Recursively chmod directories only

find . -type d -exec chmod 755 {} \;

This will recursively search your directory tree (starting at dir ‘dot’) and chmod 755 all directories only.

Similarly, the following will chmod all files only (and ignore the directories):

find . -type f -exec chmod 644 {} \;
Published on Sat, 30 Jul 2011 14:26

Полезное для zsh

Чтобы Delete делал то что от него ожидаешь, добавь в .zshrc:

bindkey    "^[[3~"          delete-char
bindkey    "^[3;5~"         delete-char
Published on Fri, 03 Dec 2010 21:52

Хозяйке на заметку, или кратко об очевидном, кажущимся неочевидным

Отсутствующие локали

При отсутствии на сервере нужной локали, например ru_RU.CP1251, можно легко её добавить:

localedef ru_RU.CP1251 -i ru_RU -f CP1251
после этого проверяем, появилась ли она, командой
locale -a | grep ru

Переменные окружения

Как известно, большая часть неочевидных проблем в линуксе связана с переменными окружения. Чтобы понять, как так случилось что из консоли ваш демон запускается и работает правильно, а при запуске из init.d что-то не так (например у меня переставал коннектиться к Ораклу, или слетала локаль), достаточно сделать тестовый вывод переменных среды окружения в инит скрипте.

На примере стартового скрипта php-fpm, добавляем в него после #/bin/bash следующую строку:

export > /tmp/envvars
и перезагружаемся. Смотрим что там есть, перегружаем руками и смотрим что изменилось. Делаем выводы каких переменных окружения не хватает, и добавляем их прямо в тестовый скрипт. Не слишком красиво, но чаще всего достаточно и такого решения.

Rewrite Rule для CodeIgniter и nginx

В интернетах куча вариантов этих rewrite-rule’ов, у меня же заработал такой вариант (полный конфиг vhost’а):

server {
   listen 80;
   server_name yourhost.com;
   index index.php;
   root /www/yourhost.com/htdocs;
   access_log  logs/yourhost.com_access.log;

   location / {
      #error_page 404 = 404.html;

        if (-f $request_filename) {
            expires max;
            break;
        }

        if ($request_filename !~ (js|css|images|robots\.txt|index\.php.*) ) {
            rewrite ^/(.*)$ /index.php/$1 last;
        }
   }

   location ~ .php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include /usr/local/nginx/conf/fastcgi_params;
   }

  location ~ /index.php/
  {
    include /usr/local/nginx/conf/fastcgi_params;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /www/yourhost.com/htdocs/index.php;
    fastcgi_param  REQUEST_URI      $request_uri;
    fastcgi_param  QUERY_STRING     $query_string;
    fastcgi_param  REQUEST_METHOD   $request_method;
    fastcgi_param  CONTENT_TYPE     $content_type;
    fastcgi_param  CONTENT_LENGTH   $content_length;
    fastcgi_param  HTTP_REFERER     $http_referer;
    fastcgi_pass   127.0.0.1:9000;
  }

}
Ну и в конфиге самого CodeIgniter’a нужно указать что
$config['uri_protocol'] = "REQUEST_URI";

Published on Thu, 16 Apr 2009 13:11

Колхозники и apache make_sock :)

Starting httpd: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs!

при возникновении такой ошибки на боевом сервере, обычно после apachectl stop, меня охватывала паника, и все на что хватало воспаленного мозга - reboot в консоли. Учитывая что процессов апача запущено не было, а на 80м порту висела пара FIN_WAIT’ов, выбора казалось бы нет ))) И так было не раз.

Стоило чуть задуматься немного погуглить, и нашелся простейший ответ:

netstat -lnp | grep ':80'
в моем случае подсказало мне, что 80й порт каким-то чудом умудряется занять memcached, за что он моментально наказывается
killall -9 memcached
:))

Вот такие дела. Воистину, reboot - крайняя мера в линухах ))

Published on Mon, 09 Feb 2009 10:37

Два монитора и Ubuntu

В очередной раз пытаюсь найти жизнь на марсе, и пересесть на линукс на рабочей машине :) Пока со скрипом, но идет.

Хинт для двух мониторов, который я искал почти целый день: Для того, чтобы при включенном TwinView кнопка maximize (развернуть окно на весь экран) работала только для одного монитора, нужно в /etc/X11/xorg.conf в секцию Screen втавить такую штуку:

Option          "NoTwinViewXineramaInfo"        "False" 

Published on Fri, 19 Dec 2008 10:07

Ubuntu и шумиха о убивании HDD

Последнее время Убунту сообщество очень обеспокоено проблемой убивания Ubuntu 7.10 Gutsy жестких дисков.

Происходит это потому, что Ubuntu, используя настройки из firmware вашего жесткого диска, очень часто паркует головку диска, таким образом постоянно происходит реинициализация, и соотвествующий щелчек. Я долго не мог понять, почему мой Dell Inspiron 1520 переодически щелкает диском, пока не наткнулся на тему на форуме.

Проверить состояние вашего диска, и подвержен ли он этому багу, можно установив пакет smartmontools

Запускаем команду

sudo smartctl -a /dev/sda | grep Load_Cycle
и смотрим сколько раз у нас уже происходила реинициализация. В моём случае это 67171 (столько натикало фактически за пару недель, работы в Gutsy со щелчками). У каждого жесткого диска заявленное максимальное количество реинициализаций разное, но в среднем это от 200 000 до 600 000. Так что делайте выводы.

Решение для меня такое:
Редактируем /etc/hdparm.conf, добавляем в него следующие строки:

/dev/sda {
apm = 255
spindown_time = 0
}
Затем
sudo update-rc.d hdparm defaults
чтобы эти изменения применялись после каждого ребута.

Это эквивалентно выполнению следующих команд:


hdparm -B255 /dev/sda
hdparm -S0 /dev/sda
за исключением того, что команды эти нужно будет набирать каждый раз после ребута, или создавать соответствующие стартап скрипты.

Источник знаний как всегда ubuntuforums.org

P.S. В данной ситуации Ubuntu, да и все линукс сообщество в его лице, выставленно не в лучшем свете, и любители holy wars обязательно напишут что Linux гадость, а Windows в радость. На самом деле все легко объясняется: производители предоставляют Microsoft подробные тех. спецификации своего железа, благодаря которым Microsoft может прикрывать подобные дыры на уровне драйверов, а Linux сообществу к сожалению приходиться тыкать пальцем в небо. А жаль, весьма перспективная ОСь на самом деле…

Published on Tue, 13 Nov 2007 20:34

Ubuntu linux

В очередной попытке попробовать linux в качетсве десктопа меня ожидал огромный успех: Ubuntu linux прекрасно прижился у меня на ноутбуке а теперь и на рабочую машину просится :) Реально думаю поставить, пугает только то что фотошоп под wine страшно глючит, и к новым текстовым редакторам привыкать прийдется.

А в целом очень удобная, стабильная и юзабельная система.

P.S. Если у кого-то будут проблемы с установкой на DELL Inspiron 1520 - cтучите в аську, помогу чем смогу. Сам дня два железо настраивал…

Published on Wed, 05 Sep 2007 17:55