Monthly Archive for April, 2009

Ubuntu: Как посмотреть статистику системы?

После перехода с FreeBSD на Ubuntu мне не хватает многих утилит из FreeBSD.

В частности, утилит, которые позволяют посмотреть статистику по работе системы.

В FreeBSD есть замечательные команды systat, iostat, nestat, fstat, vmstat которые позволяют получить полную картину о том, как себя ведет система. В Ubuntu их пришлось ставить отдельно.

Пакет sysstat

Ставите его и получаете замечательные команды sar, iostat и mpstat. Что с ними делать - это другой вопрос и тема отдельного поста. Но поставьте, поэкспериментируйте, полюбуйтесь на статистику системы Ubuntu ;)

Кто дергает мой винчестер?

На моем лаптопе я заметил очень неприятную особенность - раз в 5-6 секунд какой-то процесс дергаел винчестер. А это очень нехорошая идея-то, на лаптопе с его не самым долговечным HDD.

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

Итак, встречайте:

Пакет iotop

apt-get install iotop

Запускаете и, вуаля, у вас есть разбивка дисковой активности по самым активным процессам. Чтоб убрать/показать неактивные процессы нажмите o.

А виновником дергания HDD оказался gnome-panel, который читал по 3-7 кб каждые несколько секунд.  Я нашел и покарал соответствующий компонент gnome-panel потом.

Как именно нашел? Это тоже тема для отдельного поста. Если это вам интерсно - напишу.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Веб сервер apache - теория протокола http и “как работает web сервер?”

30 апреля я проведу открытый онлайн каст для всех, кто интересуется веб-сервером apache:

Список тем по http серверу

  • Как вообще работает протокол HTTP? (tcp level, application level, requests/response, headers/body, GET, POST, CONNECT)
  • Как обрабатывает запросы apache? (tcp listen, select, request per children, keep-alive, max requests, dynamic content, cgi, fast cgi, modules)
  • Как работают cookies? (Set-Cookie, Cookie)
  • Как отлаживать работу веб-сервера? (telnet, lynx, tcpdump)
  • На что обращать внимание при установке и настройке apache сервера? (max_servers)
  • Настройка SSL в Apache (ssl configuration, ssl connection setup, limitations)
  • Что из себя представляют сертификаты SSL? Как они вообще работают и как их настраивать в apache? (ca, trust, sign request, certificate, key,  x509, pkcs12)

Ну и, естественно, будут ответы на ваши вопросы. Не забудьте прийти на вещание!

Запись этого курса я выкладывать не буду!

Где будет прямой эфир?

Вещание будет на сервере http://unixmastera.ru/ , а точнее

http://unixmastera.ru/content/vvedenie-v-http-i-apache-php-mysql-server

Когда будет прямой эфир по http/apache?

30 апреля, 20:00 по москве, в онлайн.

Приходите, участие в онлайн вещании абсолютно бесплатное!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: Как закачать файл через ssh?

Если у вас есть доступ к FreeBSD машине через ssh, то вы можете просто копировать на нее файлы или скачивать.

Как скопировать файл НА сервер

scp имя_файла имя_пользователя@адрес_сервера:путь_к_директории

Используйте опцию -C (scp -C),  чтоб включить сжатие файла. Очень хорошо помогает при прокачке больших текстовых файлов.

Пример: “scp .vimrc remote: ” - скопирует .vimrc из текущей директории в корневую директорию пользователя с таким же именем на сервере remote .

Как скопировать файл С сервера

scp  имя_пользователя@адрес_сервера:путь_к_директории/имя_файла путь_к_локальной_директории_или_файлу

Пример: “scp  remote.example.ru:/usr/local/etc/apache2/httpd.conf ./ ” - скопирует httpd.conf  с удаленного сервера remote.example.ru в текущую директорию.

Как использовать команду sftp для перекачки файлов - об этом отдельно в следующий раз.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Пошел бить собственный рекорд по MySQL

На данный момент база с которой я работаю имеет объем 16,749,867KB, в ней всего 4 таблицы, в которых суммарно 319,499,599 записей :) Самое веселое - это когда MySQL начинает между ними делать JOIN :)

До этого крупная база с которой я работал в production несколько лет назад - была объемом в 4Гб где-то и суммарно ~60 миллионов строк.

Опытным путем также установлено, что перловский класс BerkleyDB не принимает больше 500Мб кэш-памяти и, естественно, упирается в дисковую производительность при операциях с базой.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Про настоящих юниксоидов :)

* Неисправимый гентушник is now away: Готовлю борщ!
vovk@> ыыы, линуксятник хавку готовит! уже страшно))
Неисправимый гентушник> тру линуксятник не просто готовит…
Неисправимый гентушник> он собирает еду из исходников

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Shell: Как задать несколько шаблонов в grep?

Альтернативные шаблоны в shell

Есть 2 варианта, которые сработает у вас - зависит от вашей оболочки

grep 'шаблон1|шаблон2|шаблон3'

или, может быть, сработает этот:

grep 'шаблон1\|шаблон2\|шаблон3'

Более подробно о шаблонах в shell можно узнать из курса ‘Регулярные выражения рулят!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: Что такое ipfw и зачем его применять?

Что такое ipfw?

ipfw - это фильтр пакетов IP, который используется в FreeBSD. В данный момент ipfw уже вырос из просто фильтра пакетов и превратился в мощный сетевой инструмент для обеспечения безопасности.

Что он умеет делать?

  1. Как уже понятно из названия - фильтровать пакеты - часть пакетов пропускать, часть просто выкидывать.
  2. Фильтровать пакеты на разных уровнях - на канальном и на сетевом.
  3. Перенаправлять пакеты на другие хосты или в процессы, выполняющиеся на хосте (в частности, для NAT, для прозрачного кэширования или для тонкой настройки маршрутизации)
  4. Уничтожать пакеты и генерировать соответстувющий код ответа.
  5. Управлять полосой пропускания и распределением канала между разными запросами.
  6. Вводить ограничения по скорости для отдельных IP/протоколов/сетей.

Логически ipfw состоит из двух больших частей - фильтрация траффика (собственно ipfw) и управление скоростью/приоритетами (dummynet).

Зачем применяется ipfw?

  • Ограждать внутренюю сеть от внешних атак
  • Ограждать сервер от атак снаружи и изнутри
  • Четко контролировать доступ к сетевым ресурсам. Разрешать только санкционированый доступ и запрещать несакнционированый.
  • Предотвращать часть атак класса ‘отказ обслуживания’ (DoS).
  • Служит одним из слоев защиты сервера (защита на сетевом уровне).
  • Логгинг траффика - разрешенных и запрещенных пакетов.
  • Поддерживает трансляцию и преобразование запросов (при помощи посторонних программ)
  • Проверка целостности(состояния) запросов - вам не должны приходить ответы на запросы, которых вы не посылали.

Зачем применяется dummynet?

  • Ограничение скорости по отдельному сервису (скажем, для веб сервера).
  • Ограничение скорости по отдельному IP (не больше 64кбит для одного IP).
  • Ограничение скорость по сети (данному клиенту - не более такой-то полосы пропускания).
  • Эмуляция медленных каналов связи.
  • Эмуляция каналов связи с задержками.
  • Эмуляция каналов связи с потерями пакетов.

Наиболее распространеная ошибка при использовании ipfw!

Та-дамм. Естественно, удаленное администрирование ipfw. Если вы не предусмотрели механизмов автоматического отключения ipfw и загрузили неправильную конфигурацию - все, пишите письма. Только доступ к консоли вас спасет.

Поэтому после одного-двух раз наученые опытом администраторы уже заранее готовятся к сценарию, что они неправильно создали конфигурацию. Даже маленькая опечатка в одну букву может лишить вас … доступа.

Поэтому нужно заранее предусмотреть, чтоб по прошествии какого-то времени восстановились предыдущие правила конфигурации или вообще отключился бы ipfw.

Конечно, можно еще неправильно его сконфигурировать, но это уже совершенно другая история.

Тренинг по ipfw

Все в деталях о ipfw - в тренинге по ipfw/pf/NAT.
Записывайтесь сейчас, 28 апреля цена подымется до 4000 рублей!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Можно подписаться на RSS Feed!

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

Теперь если щелкнуть на кнопочку RSS (большую такую, оранжевую) можно подписаться на feed этого блога. Теперь вы можете получать обновления в режиме реального врмени, сразу как  только я их публикую!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: Как настроить NAT маршрутизатор?

Запуск NAT во время загрузки

Просто добавьте в /etc/rc.conf следующие строчки:


firewall_enable="YES"
firewall_type="open"
gateway_enable="YES"
natd_enable="YES"
natd_interface="rl0

Вместо rl0 подставьте название интерфейса FreeBSD компьютера, который смотрит в интернет (а не в вашу локальную сеть!).

После этого просто перезагрузите компьютер (можно запустить все сервисы руками, но новичкам легче перезагрузить:). Обязательно имейте доступ к консоли, если у вас что-то вдруг не сработает.

Настройка других компьютеров в сети

На всех оставшихся компьютерах в сети нужно поставить в качестве Default Gateway IP адрес того интерфейса сервера, который смотрит в локальную сеть. В качестве DNS сервера ставьте DNS сервера провайдера.

Проверка работы firewall

ipfw show - найдите строчку приблизительно такого вида

divert natd ip4 from any to any via rl0

И запустите ipfw show пару раз, счетчики количества байт и пакетов в начале строки должны увеличиваться.

Проверка работы natd

Убедитесь, что natd благополучно запустился:

ps -ax | grep natd

должен вам вывести что-то типа

1321  ??  Is     0:10.60 /sbin/natd -n rl0

Это покажет, что процесс natd запустился и выполняется.

Как отлаживать NAT и ipfw - это отдельная история, об этом будет в Курсе по ipfw/pf/NAT через пару дней.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: нет папки с портами /usr/ports

Скорее всего вы не поставили ее во время инсталяции, ну или просто стерли.

Создание базы портов /usr/ports

Самых простой способ ею обзавестись - это использовать команду portsnap

portsnap fetch extract

Она скачает файл с обновлениями (это около 60Mb) и распакует из него всю иерархию портов.

Обновление базы портов /usr/ports

Обновление делается тоже очень просто :

portsnap fetch update

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).