среда, 13 июня 2012 г.

Содержим в актуальном состоянии WEB Server на Debian


Если вы используете стабильную ветку Debian на момент написания этой статьи это Squeeze, и желаете иметь актуальные версии программ составляющих LAMP или у кого то может быть LNMP то вам прийдётся по душе репозиторий dotdeb.org

После его подключения у вас будут обновлены следующие пакеты, если конечно были до этого установлены.

mysql-5.5/
mysql-dfsg-5.1/
nginx/
percona-toolkit/
php5/
php5-pecl/
pinba-mysql-engine/
redis/
ruby-passenger/


Всё достаточно просто.
Достаточно прописать репозиторий в /etc/apt/sources.list , и добавить в apt его ключ.
При обновлении системы вышеуказанные пакеты будут обновляться из repo. dotdeb.org.
Пример для Debizn Squeeze
cat >> /etc/apt/sources.list <<EOF
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
EOF

wget http://www.dotdeb.org/dotdeb.gpg && cat dotdeb.gpg | sudo apt-key add -

apt-get update
apt-get dist-upgrade -y

Выбираем самое быстрое зеркало обновлений в Debian

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

В этом случае нам может помочь программа apt-spy. В дефолтовой конфигурации её нет поэтому установим её из текущего репозитария. 

apt-get update
apt-get install apt-spy

понедельник, 4 июня 2012 г.

Передача данных по нестабильном каналу через SSH

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

Я нашел достаточно удобный способ решения этой проблемы.

Для начала на обеих машинах должны быть установлены следующие пакеты: openssh-server, openssh-client, tar, bzip2, pv, screen, rsync

Установить их можно так:

Для Debian/Ubuntu
apt-get install -y openssh-server openssh-client tar bzip2 pv screen rsync

Для RHEL/CentOS
yum install -y openssh-server openssh-clients tar bzip2 pv screen rsync

Кстати. Все команды лучше запускать в screen он доступен в пакетной практически всех дистрибутивах.

Итак зайдём по SSH на 1ый хост, и запустим screen.

Не забудьте заменить "$HOST1" "$HOST2"  на свои адреса хостов, а /mnt/data/ на свой путь к данным.
 Для тех кто не очень понимает bash синтаксис поясню что делает этот скрипт.

tar'om мы сжимаем содержимое директории /mnt/data/ и с помощью ключа "-" отправляем его в стандартный поток вывода, но не выводим на дисплей,  а через пайп отправляем команде pv которая считает сколько данных через неё прошло, и выводит данные на экран. Таким образом мы будем наблюдать за процессом передачи данных. После подсчёта команда pv отправит данные в неизменном виде в следующий пайп который передаст данные ssh сессии где мы перейдём в корневой каталог и начнём распаковку tar'om уже на втором хосте. Переход в корневой каталог необходим по той причине, что при архивации tar вырезает / и из абсолютного пути мы получим относительный. 
После окончания сей мистерии следует проверить rsync'om все ли данные верно передались.


ssh "$HOST1"
screen
tar cjf - /mnt/data/ | pv | ssh root@"$HOST2" "cd / && tar xjf - "
rsync -vcazr -e ssh /mnt/data root@"$HOST2":/mnt/
Теперь следует обговорить screen он умеет многое, и достоин отдельной статьи.
Сейчас о его устройстве вам следует знать 4 вещи.

ctrl a d # Используется для того чтобы свернуть терминал
screen -ls # Используется для того чтобы просмотреть список существующих терминалов
screen -r pid.pts-0.hostname # Используется для того чтобы вернуться в указанный терминал
screen -r # Используется для того чтобы вернуться в терминал если он открыт у вас один

На сим всё.

Могу сказать только что на сильно проседающем канале 6GB данных за ночь передались безошибочно.



Enhanced by Zemanta

понедельник, 14 мая 2012 г.

VirtualBox - Восстановление работоспособности после обновления ядра в Debian/Ubuntu

VirtualBox
VirtualBox (Photo credit: Wikipedia)













Если в dmesg вы вдруг обнаружили запись:
dmesg | grep 'warning: `VirtualBox'
[  429.050250] warning: `VirtualBox' uses 32-bit capabilities (legacy support in use)
Значит скорее всего у вас обновилось ядро в системы и вам нужны новые header'ы ядра. Установить их достаточно просто.

apt-get install linux-headers-$(uname -r) -y --force-yes

Теперь нужно перезапустить сервис отвечающий за драйвера VirtualBox'a если будет необходимо он мам пересоберёт модули.
/etc/init.d/vboxdrv restart
Stopping VirtualBox kernel modules:.
Starting VirtualBox kernel modules:.

Enhanced by Zemanta

четверг, 10 мая 2012 г.

Уеличение файловой системы ext4 поверх LVM на примере CentOS 6.2

Итак CentOS по умолчанию для системы использует LVM, что правильно для кооперативных продуктов.

Для начала посмотрим сколько у нас израсходовано ресурса файловой системы.
df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       7.4G  7.4G   0G   100% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             485M   45M  415M  10% /boot
И о ужас мы использовали всё место на диске. Что же делать, но погодите у нас же используется VLM так что не расстраиваемся и принимаемся за работу.

суббота, 5 мая 2012 г.

Настройка sendmail в CentOS для отправки почты с localhost


Многие сталкивались с проблемой отправки сообщений с сервера из bash/perl/python/php/etc...

На самом это достаточно просто.
Достаточно поставить sendmail.
yum install sendmail sendmail-cf -y

chkconfig --level 345 sendmail on

/etc/init.d/sendmail start
Starting sendmail:                                         [  OK  ]
Starting sm-client:                                        [  OK  ]
В принципе вы уже можете отправлять почту, но по умолчанию в конфигурации указано что вы отправляете почту с хоста localhost.localdomain


понедельник, 16 апреля 2012 г.

Устанавливаем USVN на Debian Squeeze x64


Прежде чем приступим к установке, необходимо понизить версию php до версии 5.2 как это сделано в статье Понижение версии php5.3 до php5.2 в Debian 6 squeeze поскольку USVN сделан на старой версии Zend'a которая не умеет работать с php5.3

Когда будет устанавливаться MySQL-Server, нужно будет придумать и ввести пароль MySQL Root. Запомните его, или запишите.
apt-get update
apt-get install -y subversion php5 php5-cli php5-mysql mysql-server mysql-client apache2 libapache2-mod-php5 \
 php5-common php5-curl php5-gd php5-mcrypt php5-suhosin libapache2-mod-encoding libapache2-svn

Удалим дефолтовый index.html чтобы не мешался, и включим модуль rewrite.
rm /var/www/index.html 
git clone https://github.com/usvn/usvn.git /var/www/
mkdir /var/www/files/
chown -R www-data:www-data /var/www/
a2enmod rewrite
/etc/init.d/apache2 restart

четверг, 5 апреля 2012 г.

Отправка SMS с сервера через sms шлюз smsc.ru


Недавно для системы мониторинга мне приспичило сделать sms оповещение.
Поскольку сервер мониторинга лежит в Америке использовать usbмодем нет ни какой возможности, по этому выбор пал на sms шлюз в интернете.

Я решил воспользоваться услугами http://smsc.ru.

У них сравнительно не дорогие цены, и удобное API. 

Всё что нужно для использования, это зарегистрироваться, оплатить счёт, заполнить поля логина, пароля и номера телефона или телефонов. 
Учтите чтобы лог писался файл /var/log/sms.log должен иметь права на запись для пользователя от которого вы запускаете скрипт.



Все параметры которые вы передадите скрипту будут восприняты как тело сообщения.

Пример commands файла для nagios /etc/nagios3/commands.cfg






Enhanced by Zemanta

четверг, 29 марта 2012 г.

Обновляем PHP в Centos 5 до версии 5.3


Для для обновления нам понадобится подключить репозитарий содержащий нужную нам ветку php.
cat > /etc/yum.repos.d/CentOS-Testing.repo <<EOF
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/\$releasever/testing/\$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*
EOF
Теперь мы сохраним список установленных модулей PHP, удалим существующие модули из системы, и на базе сохранённого списка, установим новые модули PHP.
rpm -qa |grep php > old_php.log
yum erase php-* -y
yum --enablerepo=c5-testing install $(cat old_php.log \
 | sed -e 's/-5.*$//g' | sed -e 's/php/php53/g' \
 | awk '{ printf $1" " }') -y

На этом обновление PHP завершено.
Проверим версию установленного PHP.
php -v
PHP 5.3.3 (cli) (built: Feb 22 2012 19:38:14) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Осталось перезапустить WEB сервер.

/etc/init.d/httpd restart





Enhanced by Zemanta

вторник, 14 февраля 2012 г.

Включаем SSL в Apache2 для Debian/Ubuntu

По этой теме уже многие писали.
Но как правило это достаточно большие статьи которые описывают в сущности простое действие.


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

Пользоваться им достаточно.
Качаем скрипт, делаем его исполняемым,  смотрим доступные сайты на web сервере, и передаём первым параметром имя файла vhost сайта.