Архив за Июнь 2008

find [] No such file or directory

Что делать, если у тебя в названии файлов или папок на файловой системе содержат спецсимволы, например []?

Про попытке выполнить такую команду как:
find . -type f | xargs chmod 644
chmod: ./[TA]: No such file or directory
chmod: PRE: No such file or directory
chmod: RELEASE: No such file or directory
chmod: [TA]: No such file or directory

Получишь такие ошибки. Один из способов решения этой проблемы:

find . -type f -print0 | xargs -0 chmod 644

Расшифрую эту запись: после того, как find найдет совпадение согласно заданным правилам для поиска, он выдаст результат в STDOUT без изменений, но вместо \n в конце строки поставит \0, соотвественно xargs c ключем -0 понимает, что разделителем строки будет \0 вместо \n и корректно отрабатывает наличие в пути файлов пробелов, кавычек и слешей.

http://opennet.ru

Один из крупнейших сайтов в Рунете о linux/unix системах и всем, что с этим связано.

Рекомендую для ещедневного посещения.

Оптимизация fanat1k.ru

Описание проекта: Портал о футбольной команде Спартак Москва.

Описание работ над проектом: После того, как проект перерос shared хостинг и переехал на отдельный VPS сервер, то встал вопрос в оптимизации как ОС VPS сервера, так и проекта. Вместе с администрацией проекта провели оптимизацию:

1) На уровне БД – оптимизация конфигурации MySQL демона под конфигурацию сервера, кеширование запросов, backup, slow логи. В дальнейшем при помощий explain оптимизировали несколько особо тяжелых запросов.

2) Перевел проект на nginx + fastcgi php5. Также, добавление opcode кешера позволило снизить нагрузку на VPS сервер.

После переезда проекта на выделенный сервер донастроил DNS сервер и почту для домена fanat1k.ru. Почта обязательно с антивирусом и антиспамом.

Результат: После настройки мониторинга за всеми критичными процессами на сервере необходимость в постоянном наблюдении за сервером отпала, так что проект сейчас живет своей жизнью. Судя по статистике hotlog.ru проект очень даже успешно работает, учитывая НЕ топовую конфигурацию сервера, на котором он размещен.

Оптимизация files.desu.ru

В этом разделе решил писать о проектах, которыми занимался в свое время.

Начнем пожалуй с http://files.desu.ru

Описание проекта: Портал о аниме, Японской культуре и всем, что с этим связано.

В 2007 году у проекта возникли сложности в работе портала. Раздача аниме через http просто “вешала” сервер, судя по статистике LA уходил в 150-160, и через 20-30 минут после запуска WEB сервера ОС сервера уходила в ступор. Соотвественно появилось желание оптимизировать проект, о чем договорились с его администрацией.

Описание работ над проектом: Начнем пожалуй с сервера, оборудование было предоставлено “домашней сетью” с Юга Москвы. Сервер стоял в ДЦ на М9. Судя по конфигурации под проект выделили desktop в 19” корпусе, сетевая карта интегрированная, HDD SATA без RAID массива. OS Gentoo 2007.1, amd64.

После предоставления shell доступа на сервер сделал буквально следующее:

1) Пересобрал Apache2 с поддержкой prefork, до этого был worker. Оптимизировал конфигурацию WEB сервера.

2) Пересобрал PHP5 без тредов, иначе судя по логам Apache2 часто падал под нагрузкой из-за ошибок связанных с работой php скриптов.

3) Изменил схему работы на frontend (nginx) + backend. Это позволило убрать apache2 с раздачи “большой” статики, а также настроить лимиты по отдаче файлов для 1 IP. В последствии написал обвязку к системе лимитов, которая добавляла IP в iptables, если посетитель сайта не понимал правил раздачи установленные на сервере и пытался все равно обойти систему лимитирования количества одновременных коннектов с 1 ip.

4) Оптимизировал MySQL, а именно – включил кеширование и выделили под него побольше памяти. Также увеличил размеры буферов для обработки запросов. Также как обычно включил slow логи, что позволило оптимизировать некоторые запросы к БД и в итоге сказалось на общей производительности проекта в целом.

5) Настроил систему резервирования конфигурации сервера и реализовал ежедневный backup MySQL DB.

Результат: После оптимизации проекта все заработало как часы. Некоторые параметры подгонялись в соотвествии с показаниями статистики сервера и информации в лог файлах, но это заняло всего несколько дней. Под рабочей нагрузкой сервер успевал отдавать под 160 Mbit/s.

Что не успел сделать: В связи с тем, что у владельца сервера изменились интересы, он забрал его и закрыл доступ для проекта. Соотвественно не успели перейти на софтовый RAID массив и нормальную сетевую карту. RAID массив нужен был из-за того, что просто уперлись в IO, а с интегрированной сетевой картой были проблемы в плане производительности.

На данный момент наши с проектом пути разошлись, но судя по работе сервера, той информации что он отдает в заголовках – администрация проекта переняла мой опыт и проект готов работать под большой нагрузкой.

AOL официально: 12111 – ICQ System

A Message for ICQ Users
a new user from ICQ on your contact list.
As part of the process of upgrading ICQ users to our newest, most advanced version, ICQ6, we have added a new user name to your contact list ”ICQ System”. The newly added user is intended to improve ICQ’s line of communication with our users and assure you continue to enjoy talking to everybody, everywhere.

Так что хватит паранои насчет украденных паролей. Судя по официальной информации, бот будет использоваться для борьбы со спамерами в сети ICQ. А все проблемы, c якобы с пропавшими контактами и прочим либо не более чем фатальное стечение обстоятельств, либо AOL обновил ПО для поддержки новых фич в сети ICQ и что-то немного сломалось.

fail2ban

Посмотрел отчеты logwatch`a на некоторых серверах в интернете, для которых открыт 22 порт. Очень много попыток подбора логина/пароля c левых IP адресов. Озадачился проблемой и нашел простое решение, программа: fail2ban.

После установки:

Программа автоматически запускается и начинает следить за файлом /var/log/auth.log на предмет ошибок авторизации для ssh. После 6-и ошибок она добавляет на 600 секунд правило в iptables.

На первоначальном этапе можно (нужно?) немного изменить /etc/fail2ban/jail.conf.

В этот параметр через пробел нужно добавить свой реальный статический IP адрес, если он есть. Либо адрес доверенного хоста, на всякий случай.

Linuxdcpp

Для работы в DC сетях под Linux есть замечательный клиент Linuxdcpp. Сегодня собрал версию из CVS. Скачать ее можно это ссылке linuxdcpp

Update: Нашел патч для интеграции linuxdcpp с музыкальными плеерами, такими как Amarok, Audacious или Rhythmbox. Пересобрал версию 1.0.1 и 1.0.1-cvs20080614 с данным патчем, соотвественно выкладываю собранные пакеты.

Linuxdcpp 1.0.1~music-patch

Linuxdcpp 1.0.1-svn20080614+music_patch

Music_patch для Linuxdcpp 1.0.1

Настройка производительности UNIX-систем

Еще одна книга, которую прочитал недавно: Джан-Паоло Д. Мусумеси, Майк Лукидес “Настройка производительности UNIX-систем”.

Настройка производительности UNIX-системОписание книги в магазине Озон:

Книга “Настройка производительности UNIX-систем” отвечает на два важнейших вопроса: как добиться максимального эффекта без покупки дополнительного оборудования, и в каких случаях его все же стоит приобрести (больше памяти, более быстрые диски, процессоры и сетевые интерфейсы). Вложение денежных средств – не панацея. Адекватно оценить необходимость обновления и добиться максимальной производительности можно, только хорошо представляя работу компьютеров и сетей и понимая распределение нагрузки на системные ресурсы.Авторы книги оказали неоценимую помощь администраторам, подробно и аргументировано рассказав обо всех тонкостях искусства настройки систем. Полностью обновленное издание ориентировано на Solaris и Linux, но обсуждаемые принципы применимы к любым системам. В книге рассматриваются настройка параметров, управление рабочим процессом, методы измерения производительности, выявление перегруженных и неработоспособных участков сети, добавлен новый материал о дисковых массивах, микропроцессорах и оптимизации программного кода.

Краткое резюме по данной книге: 1 – Книга старовата для нашего времени, с 2003 года уже многое изменилось в ОС Linux/Solaris. 2 – После прочтения книги появилось стойкое желание “поиграться” с Solaris, так как судя по кратко изложенной информации она намного интереснее других ОС своей возможностью более глубокого изучения как самой ОС так и приложений которые в ней работают. 3 – Книга раскрывает некоторые моменты в плане мониторинга производительности Linux/Solaris систем, пытается научить читателя стандарту тестирования производительности и анализа ОС по всем уровням: сеть, процессы, диски, ПО. Рекомендуется для прочтения всем, кто хочет упорядочить знания по настройке производительности ОС, но не получить готовые ответы, а просто получить направления, в которых следует дальше развиваться.

Операционная система UNIX

Сейчас читаю очередную книгу по Unix системам. На этот раз Робачевский А. “Операционная система UNIX”. Операционная система UNIXВот ее описание в магазине Озон.

Книга является вторым изданием рекомендованного Министерством общего и профессионального образования России одноименного учебного пособия. Даны основы организации, идеологии и архитектуры, объединяющие различные версии UNIX. Рассматриваются: архитектура ядра (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка (протоколы семейства ТСР/IР, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI). Во второе издание включен новый материал по операционным системам Linux и FreeBSD, удалены темы, утратившие актуальность, скорректирован набор описываемых системных вызовов и библиотечных функций, добавлен глоссарий англоязычных терминов. Для студентов, преподавателей, пользователей и системных администраторов.

Что могу по ней рассказать – интересная книга для тех кто хочет на русском языке почитать про Unix системы. Разжеваны такие моменты как права доступа к файлам, начальное администрирование Unix системы. Организация работы ОС с файлами, памятью, процессами и т.д. Рекомендую для прочтения.

Обновление блога до версии 2.5.1

Обновил версию WordPress до 2.5.1. Пока полет нормальный. Стоит куча лпагинов, завтра буду разбираться что к чему.

Update: Разобрался с плагинами, вроде все ок теперь. Можно писать дальше.