Tag Archive for 'linux'

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: Находим новый хост

Предыдущие записи: Переезд Backup

Каким критериям должен удовлетворять хостинг?

  1. Надежность
  2. Объем диска/Скорость передачи данных и предоплаченый трафик
  3. Наличие backup-ов
  4. Managed VS Unmanaged
  5. Цена

Именно в таком порядке. Самое важное в хостинге - это надежность

1. Как проверить надежность hosting-а?

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

На что нужно обращать внимание

  • что говорят об отзывчивости технической поддержки
  • что говорят о  overselling - когда хост продает больше сервиса, чем он физически может выдержать.
  • что говорят о падении канала/надежности серверов
  • что говорят об отзывчивости поддержки биллинга

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

Поищите, что пишут на форумах или в community о скорости тех. поддержки данного хостера, наскоько она быстро отвечает и насколько она адекватно умеет решать проблемы.

Нормальное время поддержки по e-mail - первый ответ в течении получаса с момента получения запроса. Если быстрее - еще лучше, но не обольщайтесь. Если вы уже приобрели хостинг - попробуйте отослать запрос/письмо в нерабочее время или день и посмтореть на скорость ответа.

Overselling — это зло с которым сложно бороться. Обыкновенно хостинг провайдеры рассчитывают на то, что не все пользователи будут использовать ресурсы на все 100% процентов и продают больше емкостей/канала/процессорного времени, чем они реально имеют.  Впоследствии это приводит к сильным проблемам у клиентов. Так что если вы подозреваете, чтоб ваш хостер продает всерх меры - бегите от него :)

Надежность серверов и падение канала у хостеров случается обыкновенно с одинаковой частотой - так что тут не стоит особенно сильно придираться. Падение канала на пару часов раз в 3-4 месяца — это нормальный показатель. Те самые 99.9%, которые гарантирует обыкновенно провайдер.

Ну и поддержка продаж/биллинга – обыкновенно она редко пригождается, но тем не менее стоит посмотреть отзывы и на нее. Как пример — псомотирте, есть ли негативные отзывы по возврату денег. Если их мало - скорее всего с сервисом у компании все в порядке. Не рассчитывайте что sales/billing будет работать в нерабочие часы. Это скорее исключение, чем правило.

Продолжение следует :) …

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

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

Shell: Автодополнение имен файлов в tcsh

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

А вот зачем это нужно:

Автодополнение имен файлов в tcsh

Если у вас есть файл

a12312039akasd.avi

вы можете набрать a.avi<Tab> и получить полное имя файла.

или есть файлы

a.jpg
a.a.jpg
a.a-b.jpg

a.-<Tab> откроет шаблон в a.a-b.jpg

А если будут файлы

a.jpg
a.a.jpg
a.a-b.jpg
a.a-c.jpg

то, скажем, .-<Tab> откроется в a.a- и список возможных оставшихся вариантов :)

Так же с предыдущими настройками tcsh работает и автодополнение имен директорий

Имена директорий и <tab> в tcsh

Если вы введете команду cd и потом нажмете Tab, то тогда tcsh выведет только имена директорий, а не вообще список всех файлов.

Если же набрать ./<Tab> , то тогда tcsh выведет все исполняемые файлы в этой директории и все поддиректории — таким образом помогаю вам сформировать путь к исполняемому файлу.

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

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

Какую оболочку вы используете? А раскрашиваете?

Решил сделать небольшой опрос :)))

Какую оболочку вы испольузете при работе — sh, bash, tcsh, zsh, что-то другое?

Со стандартными установками или раскрашиваете зверски? :)

А для рута и для обыкновенного пользователя у вас один и тотже shell или ставите разные?

Про себя могу сказать - у меня стоит tcsh с профайлом на килобайт 5 ;) и еще с дополнительным файлом auto-completition килобайтиков эдак на 42 - но его писал не я, он есть в сети (для разных оболочек).

Насчет flash - все еще ищу подходящую флэшку, которую было бы удобно убить ) и которая с виду гарантирует разбираемость ;)

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

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

Shell: Как пронумеровать строчки в файле?

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

Не нужно для этого запускать perl или какие-то тяжелые утилиты, можно обойтись просто awk.

Нумерация строк в файле

awk '{print NR " " $0 }' имя_файла > куда_сохранять

NR - это переменная awk, указывающая на номер строки в этом файле.

Как пример, получается такой результат:

1 Linux aldan 2.6.27-14-generic #1 SMP Wed Apr 15 19:29:46 UTC 2009 x86_64
2
3 The programs included with the Ubuntu system are free software;
4 the exact distribution terms for each program are described in the
5 individual files in /usr/share/doc/*/copyright.
6
7 Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
8 applicable law.
9
10 To access official Ubuntu documentation, please visit:

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

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

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!

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

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

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

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

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

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

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

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

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

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