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 {} \;
Полезное для zsh
Чтобы Delete делал то что от него ожидаешь, добавь в .zshrc:
bindkey "^[[3~" delete-char
bindkey "^[3;5~" delete-char
Хозяйке на заметку, или кратко об очевидном, кажущимся неочевидным
Отсутствующие локали
При отсутствии на сервере нужной локали, например 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";
Колхозники и 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 - крайняя мера в линухах ))
Два монитора и Ubuntu
В очередной раз пытаюсь найти жизнь на марсе, и пересесть на линукс на рабочей машине :) Пока со скрипом, но идет.
Хинт для двух мониторов, который я искал почти целый день:
Для того, чтобы при включенном TwinView кнопка maximize (развернуть окно на весь экран) работала только для одного монитора, нужно в /etc/X11/xorg.conf в секцию Screen втавить такую штуку:
Option "NoTwinViewXineramaInfo" "False"
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 сообществу к сожалению приходиться тыкать пальцем в небо. А жаль, весьма перспективная ОСь на самом деле…
Ubuntu linux
В очередной попытке попробовать linux в качетсве десктопа меня ожидал огромный успех: Ubuntu linux прекрасно прижился у меня на ноутбуке а теперь и на рабочую машину просится :) Реально думаю поставить, пугает только то что фотошоп под wine страшно глючит, и к новым текстовым редакторам привыкать прийдется.
А в целом очень удобная, стабильная и юзабельная система.
P.S. Если у кого-то будут проблемы с установкой на DELL Inspiron 1520 - cтучите в аську, помогу чем смогу. Сам дня два железо настраивал…
![["Cowgirl"] ["Cowgirl"]](http://farm3.staticflickr.com/2764/4440914964_b54e5743a2_s.jpg)
![["Energizer v2"] ["Energizer v2"]](http://farm3.staticflickr.com/2779/4440139647_2c1835c1ab_s.jpg)
![["Mmmmushrooms"] ["Mmmmushrooms"]](http://farm5.staticflickr.com/4030/4440914076_82fd461453_s.jpg)
![["Mmmmushrooms"] ["Mmmmushrooms"]](http://farm3.staticflickr.com/2750/4440914014_ce2e626c90_s.jpg)