Tag Archive for 'администрирование'

Linux VPS: Переносим apache на отдельный порт

Еще одна задача, которая возникла после настройки VPS под свои нужды.

У меня на VPS работает frontend - аккселератор и поэтому мне нужно, чтоб 80-ый порт был бы свободен. А apache при этом использовал бы какой-то другой порт.

Если у вас на VPS стоит панель управления cpanel - в ней придется покопаться.

Переносим apache на порт 8080

Открываем /var/cpanel/cpanel.config и подправляем apache_port=80 на apache_port=8080

Далее - нужно пересоздать конфигурацию - /usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings

После этого нужно проверить, что в файле /usr/local/apache/conf/httpd.conf прописался нужный порт

grep Listen /usr/local/apache/conf/httpd.conf

И скрипт, проверяющий работоспособность сервисов, тоже обновил свои настройки:

@www1 /etc> cat /etc/chkserv.d/httpd
service[httpd]=8080,GET / HTTP/1.0,HTTP/1..,/scripts/checkmaxclients;killall -TERM httpd;sleep 2;killall -9 httpd;/etc/rc.d/init.d/httpd stop;/etc/rc.d/init.d/httpd startssl;/usr/local/apache/bin/apachectl startssl;/etc/rc.d/init.d/httpd start;/usr/local/apache/bin/apachectl start
@www1 /etc>

После этого стоит перезапустить apache  (/etc/init.d/httpd restart) и ChkServ (/scripts/restartsrv_chkservd ) — иначе он вас забросает письмами о том, что сервис не работает и будет постоянно его перезапускать.

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

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

Как быстро переименовать группы файлов

Иногда нужно бывает быстро переименовать много файлов, при этом делая какие-то хитрые замены в названиях файлов.

Хочу вам показать метод, как это делаю обыкновенно я.Скажем нужно обработать только mp3 файлы:

ls '*.mp3' > filelist
ls '*.mp3' > filelist1

Итак у нас два списка файлов. Правим filelist1 и заменяем там имена на то что нужно. При этом не меняем порядок строчек.

Зачем это делать внутри файла? Потому что можно его редактировать при помощи vim, а там возможности по автоматической замене текста просто огромные.

Итак, у нас есть отредактированый файл. Набираем

paste filelist filelist1 | sed 's/^/mv /' | sh

И дело в шляпе :)

Самое важное здесь - это команда paste, которая склеивает два текста вместе. Все подробности о работе - в базовом курсе по Unix.

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

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

Linux VPS: Backup MySQL баз данных

Предыдущие записи: Переезд Backup Выбор хостера

Да, в продолжение темы Backup-а хостинга и переезда.

Как правильно перемещать базы MySQL?

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

Как копировать базы с работающго MySQL сервера ?

Есть цивилизованый вариант при помощи mysqldump - он неплохо работает, но если при этом происходят изменения в базе данных - то потом будет проблема синхронизировать сервера.

Самый цивилизованый и правильный вариант - это настраивать синхронизацию master/slave. Перегонать всю базу на slave, а потом уже с него и запускать. НО! Есть несколько но - это сложнее и это требуется только на тех хостах, где нельзя допустить даже кратковременного отключения базы.

Если же можно допустить кратковременное отключение, то последовательность действий будет такая:

  • Делаем копию базы на новом хосте при помощи rsync или tar.gz - без разницы чем
  • Останавливаем MySQL сервер
  • Делаем окончательную синхронизацию при помощи rsync
  • Поднимаем MySQL сервер на новом хосте и перенастраиваем все приложения на него

Как правильно копировать “упавшие” базы MySQL?

Тут, поскольку уже все и так само упало, процесс немного проще.

  • Копируем все базы на новый хост (rsync/tar.gz)
  • Прогоняем по ним myisamchk , если база хранилась исключительно в InnoDB - тогда этот шаг не нужен. (Как это делать и как ускорять процесс - есть в книжке по FreeBSD+apache+mysql+php , на Linux процедура ничем не отличается ).
  • Запускаем MySQL сервер уже на новой машине

Ну как, есть вопросы? Готовы переживать переезд к новому хостеру прямо сейчас? :)

Продолжение, естественно, следует …

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

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

Linux VPS: Падение хостинга или “Пожелай врагу переезд”

Добрый день!

Наверно вы заметили, что этот сайт был недоступен последние несколько дней.  Это последствие того, что мой хостер поступает очень нехорошо и очень плохо обслуживает сайты.

Итак, приготовьтесь - скоро я начну описывать в подробностях, как переежжать с одного VPS  на другой, с чем это связано и как минимизировать убытки и простой сайта.

Что такое VPS?

VPS расшифровываестя как Virtual Private Server — Виртуальный Частный Сервер.  А если просто и в двух словах - то берется один мощный сервер и при помощи какой-либо технологии виртуализации (Xen/OpenVZ) нарезается на много маленьких изолированных друг от друга серверов. У всех у них меньше памяти/дискового пространства/процессорного времени, но зато они существенно дешевле, чем арендовать большой сервер. Тем более когда вам и не нужны мощности выделенного сервера.

Итак

Из чего состоит переезд?

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

Но в целом вам нужно представить этапы:

  1. Делаем предварительный полный backup
  2. Находим новый хост, оплачиваем, получаем к нему доступ
  3. Перекачиваем весь полный backup на новый хост
  4. Поднимаем/восстанавливаем на новом хосте конфигурацию со старого (не всегда это возможно проверить, но тем не менее можно все подготовить) - тут есть много тонкостей
  5. Снижаем время обновления DNS до 5-10 минут
  6. Приостанавливаем/переводим в readonly старый хостинг
  7. Делаем окончательную синхронизацию файлов
  8. Поднимаем все сервисы на новом хосте
  9. Вносим изменения в DNS
  10. PROFIT
  11. Поднимаем время обновления DNS до нормального

Естественно, там есть много мелких деталей, которые могут сделать вашу перенос хостинга более или менее болезненным.

Итак — следите за обновлениями в блоге. Я буду рассказывать и показывать в примерах, что именно нужно было сделать.

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

Я буду выпускать бесплатную версию курса - где можно будет просто скачать аудио файлы и послушать их.

Будет так же и платная версия курса

  • доступ во время к онлайн вещания, возможность задавать вопросы на ходу
  • скринкасты
  • примеры скриптов и живой, работающей конфигурации

После окончания переезда (ну и соответственно и курса) я, как всегда, подыму цену — до 4500 рублей.

Я знаю, что запишутся немногие, поэтому там можно смело раздавать вкусные и полезные советы и приемы — все равно большая часть читателей с ними не познакомится :)

Спешите записаться, потому что курс будет идти прямо в режиме online - я сейчас в процессе переезда и буду его подробно освещать.

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

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

Уменьшаем нагрузку на сервер FreeBSD

А вы ведь в курсе, да, что если у вас есть большое количество (от 30-50 и наверх) клиентов, обращающихся параллельно, то в FreeBSD можно неплохо снизить нагрузку на apache сервер.

Часть обработки http запроса можно передать в ядро и оно будет вызывать apache уже только когда эта обрачтка сделана и запрос целиком дошел до сервера.

Одним словом - об этой интересной технике - читайте в книжке ‘Установка и настройка сервера FreeBSD+apache+mysql+php‘.

Это специфичная для FreeBSD штука, но загруженность сервера она понижает :)

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

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

Ubuntu: Режем HDD по живому, часть 2

Как я уже говорил раньше, я решил немного переделать свой laptop и добавить USB память.

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

В поисках USB

Сейчас усиленно ищу правильную флэшку :) Мне нужна какая-то такая, бескорпусная.

transcend_jetflash_v90c1_120_auto

Ну и еще хочется найти аккуратный шлейф на 4 проводочка. Если не получится - тогда придется взять и убить какой-то кабель IDE :) либо Ethernet (что вряд ли, он не гибкий).

Следите а обновлениями :) Скоро буду переносить систему на USB Flash :)

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

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

Ubuntu: Режем HDD по живому, часть 1

Я сделал небольшую ревизию hardware на своем лаптопе (Acer Aspire 5024)  и понял, что у меня есть один встроенный USB порт, к которому по идее должен подключаться Bluetooth адаптер. В этой модели (на этот регион) его не было, зато есть свободный порт. УРА!

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

Как использовать с толком встроеный USB порт?

Самое полезное применение ему - это поставить туда Flash и перенести часть системы туда - фактически обеспечив загрузку системы и самых часто используемых файлов из профайла туда.

После этого:

  • винчестер должен работать значительно реже
  • должно снизиться энергопотребление

Итак, какие цели для подключения USB Flash?

  • переносим всю систему на Flash. Она должна нормально оттуда загружаться и работать.  (сейчас на системном разделе занято 8Gb, планирую - 10G)
  • переносим часто используемые файлы на Flash - в моем случае это директории
    • pidgin
    • licq
    • skype
    • firefox
    • настройки Gnome приложений
    • директории Desktop, Documents, Projects (с которыми я, в основном, и работаю)
    • все директории суммарно занимают 3.3Gb, под это отведем 6Gb, на всякий.
  • сделать синхронизацию этих директорий обратно на HDD (не обязательно realtime, можно с некоторым запозданием, скажем, раз в час или даже реже).

К сожалению, в данный момент у меня на laptop стоит Ubuntu и процесс переезда я сперва попробую именно на нем. А потом (я предусмотрительно оставил еще один пустой раздел) я попробую переместить и FreeBSD систему.

Итак, пока длятся праздники - ничего не делаю, даю им спокойно пройти, а потом уже можно и взяться за небольшую переделку.

Следите за блогом!  Я начну выкладывать материалы 10 мая, фотки, инструкция, руководство по оперирования больного! Будет интересно :)

Можете поддрержать и разместить линк на этот пост у себя в блогах :)
Как переместить систему на USB Flash и не убить все-все-все ;)

Понравилось? Подпишись на 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!

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

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!

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