среда, 11 ноября 2009 г.

Yota резервный канал в инет на ubuntu server

Задолбали аварии у провайдера поэтому сделал резервный канал в инет через йоту.
Используем Samsung U200 Wimax

Настройка WiMax
http://forum.ubuntu.ru/index.php?topic=43974.105
http://peter.infosreda.com/ru/projects

Автоматом переключаем на резервный канал при падении основного

http://www.gentoo.ru/node/12621

воскресенье, 18 октября 2009 г.

MySQL при малом объеме озу

взято отсюда

Всем привет!
Сегодня я решил написать статью про оптимизацию MySQL 5.x для запуска и работы в условиях малого объёма ОЗУ

Проблема стоит особенно остро на VDS/VPSсерверах, так как там ОЗУ очень немного.
Конкретно в моём случае я довольствуюсь лишь 64Мб и без дополнительного тюнинга MySQL отказался запускаться вообще.

Почитав некоторое количество форумов, блогов и мануалов я вывел самый минимальный конфиг, при котором MySQL может работать.

Вот он:

  1. # Main MySQL server options
  2. [mysqld]
  3. port = 3306
  4. socket = /var/run/mysqld/mysqld.sock
  5. # No locking at all!
  6. skip-locking
  7. # Set internal buffers, caches and stacks very low
  8. key_buffer = 16K
  9. max_allowed_packet = 16K
  10. table_cache = 1
  11. sort_buffer_size = 16K
  12. read_buffer_size = 16K
  13. read_rnd_buffer_size = 1K
  14. net_buffer_length = 1K
  15. thread_stack = 16K
  16. # Don’t listen on a TCP/IP port at all.
  17. # Will still work provided all access is done via localhost
  18. skip-networking
  19. server-id = 1
  20. # Skip Berkley and Inno DB types
  21. skip-bdb
  22. skip-innodb
  23. # Set the query cache low
  24. query_cache_limit = 1048576
  25. query_cache_size = 1048576
  26. query_cache_type = 1
  27. # Set various memory limits very low, disable memory-hogging extras
  28. [mysqldump]
  29. quick
  30. max_allowed_packet = 16K
  31. [mysql]
  32. no-auto-rehash
  33. [isamchk]
  34. key_buffer = 16K
  35. sort_buffer_size = 16K
  36. [myisamchk]
  37. key_buffer = 16K
  38. sort_buffer_size = 16K
  39. [mysqlhotcopy]
  40. interactive-timeout

Именно с ним мне получилось первый раз удачно стартовать MySQL.
Посмотрев результат и оценив расход ОЗУ я решил расщедриться и увеличить кэш, заодно и пометь некоторые параметры.

Вот что у меня получилось в итоге:

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. socket=/tmp/mysql/mysql.sock
  4. user=mysql
  5. port = 3306
  6. bind-address = 127.0.0.1
  7. # No locking at all!
  8. skip-locking
  9. # Set internal buffers, caches and stacks very low
  10. key_buffer = 16K
  11. max_allowed_packet = 16K
  12. table_cache = 1
  13. sort_buffer_size = 16K
  14. read_buffer_size = 16K
  15. read_rnd_buffer_size = 1K
  16. net_buffer_length = 1K
  17. thread_stack = 16K
  18. # Don’t listen on a TCP/IP port at all.
  19. # Will still work provided all access is done via localhost
  20. skip-networking
  21. server-id = 1
  22. # Skip Berkley and Inno DB types
  23. skip-bdb
  24. skip-innodb
  25. # Set the query cache low
  26. query_cache_limit = 500K
  27. query_cache_size = 3M
  28. query_cache_type = 1
  29. # Set various memory limits very low, disable memory-hogging extras
  30. [mysqldump]
  31. quick
  32. max_allowed_packet = 16K
  33. [mysql]
  34. no-auto-rehash
  35. [isamchk]
  36. key_buffer = 16K
  37. sort_buffer_size = 16K
  38. [myisamchk]
  39. key_buffer = 16K
  40. sort_buffer_size = 16K
  41. [mysqlhotcopy]
  42. interactive-timeout
Пока что пользуюсь без проблем этим конфигом, при моих ресурсах ОЗУ он вполне меня устраивает.
Все опции прокомментированы прямо в конфиге и очень понятны.

вторник, 7 июля 2009 г.

irb readline support on Leopard

Written March 22, 2008 at 22:40 CET. Tagged Ruby and OS X.

The irb (Interactive Ruby) that ships with OS X Leopard does not have readline support. Instead it uses libedit.

This means that things like ⌃R for reverse history search don't work. More importantly to me, you can't use non-ASCII characters like Swedish "å", "ä" and "ö".

Compiling your own Ruby (with readline) is one solution. If you just want ctrl+R, macosxhints has another.

The solution I'm currently using is the work of jptix, a regular on the ##textmate IRC channel. He asked me to blog about it, so here it is.

Используем Google maps Directions

<%= button_to_function "как проехать", "window.open(\"http://maps.google.com/maps?saddr=#{URI.escape('москва нахимовский проспект 50')}&daddr=#{URI.escape('москва мичуринский проспект 10 ')}&hl=ru\")" %>


+ смотри plugin ym4r-gm

среда, 24 июня 2009 г.

Обновляем Ruby on rails на Leopard 10.5.6

в терминале проверяем что надо обновить из гемов
gem outdate
обновляем сам гем
sudo gem update --system

ставим Xcode tools
и обновляем все гемы
sudo gem update


если нужно ставим mysql и соответственно ставим гем
sudo env ARCHFLAG="=arch i386" gem install mysql --\--with-mysql-include=/usr/local/mysql/include \--with-mysql-lib=/usr/local/mysql/lib
для sqlite3
sudo env ARCHFLAGS="-arch i386" gem install sqlite3-ruby

понедельник, 8 июня 2009 г.

Менеждер обновлений в Ubuntu 9.04 и его раздражающее поведение

отсюда взято

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

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

Внезапно появляется окно со списком обновлений

Внезапно появляется окно со списком обновлений

К счастью есть возможность вернуть способ уведомления об обновлениях так, как это происходило в 8.10 или 8.04 (на панели просто появлялся желтый значок, сообщающий об обновлениях программ).

Всё что для этого нужно, это программа Терминал и пару команд. Только не нужно пугаться и убегать. Это можно сделать и через графическую систему, но через Терминал намного быстрее.

Запускаем Терминал:

Запускаем Терминал

Запускаем Терминал

Эта команда как раз и отключает внезапное появление окна со списком доступных обновлений (просто скопируйте эту команду в Терминал и нажмите Enter):

gconftool -s --type bool /apps/update-notifier/auto_launch false

На этом можно было бы и остановиться, но есть ещё парочка полезных опций, включать их или нет – решать Вам.

Следующая команда задаёт интервал проверки доступных обновлений. По-умолчанию он равен 7 дней, мы же поставим 1 день (просто скопируйте эту команду в Терминал и нажмите Enter):

gconftool -s --type int /apps/update-notifier/regular_auto_launch_interval 1

И ещё одна полезная опция, которая будет отображать с какой и на какую версию будут обновлены пакеты (просто скопируйте эту команду в Терминал и нажмите Enter):

gconftool -s --type bool /apps/update-manager/show_versions true

У меня это выглядит так:

После ввода команд

После ввода команд

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

Для чистоты эксперимента я перезагружу Ubuntu (хотя это делать не обязательно, это не Windows).

Перезагружаю компьютер

Перезагружаю компьютер

После загрузки системы и прошествии нескольких минут, на панели возле часов появился значок, показывающий о наличии обновлений. Никаких внезапно появляющихся окон. Что и требовалось показать:

Значок – красный, а не жёлтый – т.к. имеются критические обновления системы

Значок, уведомляющих об обновлениях

Значок, уведомляющих об обновлениях

Если щелкнуть по этому значку левой кнопкой мыши, то появиться окно со списком доступных обновлений:

Список доступных обновлений

Список доступных обновлений

Рассмотрим, например, пакет apport-gtk:

Пакет apport-gtk

Пакет apport-gtk

Видите подпись под пакетом?:

С версии … на … (Размер: …)

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

Надеюсь эта статья будет полезной для вас. До встречи!

пятница, 29 мая 2009 г.

Ruby → Настрой собственный VPS в течение обеденного перерыва!

Перед погружением в технические аспекты системного администрирования,
обозначу несколько принципиальных вещей:
1) системное администрирование -- в 80% случаев -- тривиальные задачи,
ответ на которые ждут вас на первой странице поисковой системы
2) настройка удаленного сервера принципиально ничем не отличается от
конфигурирования рабочей станции. настраивать последюнюю приходится
каждому из нас, согласитесь -- занятие приятное и довольно простое
3) благодаря высокой популярности vps, вероятность того, что вы
окажетесь в тупике по любому вопросу -- ничтожна мала

sudo apt-get -y install build-essential libssl-dev libreadline5-dev
zlib1g-dev vim wget curl
sudo apt-get -y install mysql-server libmysqlclient15-dev mysql-client

adduser demo
visudo (demo ALL=(ALL) ALL)

---SSH (local pc)------------
mkdir ~/.ssh
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub d...@12.12.12.12:~

---SSH (remote pc)-----------
mkdir /home/demo/.ssh
mv /home/demo/id_rsa.pub /home/demo/.ssh/authorized_keys
chown -R demo:demo /home/demo/.ssh
chmod 700 /home/demo/.ssh
chmod 600 /home/demo/.ssh/authorized_keys

---locales-----------------------
sudo locale-gen en_GB.UTF-8
sudo /usr/sbin/update-locale LANG=en_GB.UTF-8

---Ruby ----Passenger------------
mkdir ~/temp && cd ~/temp
wget rubyforge.org/frs/download.php/57097/ruby-
enterprise-1.8.6-20090520.tar.gz
tar xzvf ruby-enterprise-1.8.6-20090520.tar.gz
sudo ./ruby-enterprise-1.8.6-20090520/installer
export PATH=/opt/ruby-enterprise-1.8.6-20090520/bin:$PATH
sudo /opt/ruby_ee/bin/passenger-install-nginx-module

---Nginx-------------------------
sudo useradd -s /sbin/nologin -r www-data
sudo usermod -a -G www-data demo

mkdir ~/public_html
mkdir ~/public_html/01_project

sudo su
chgrp -R www-data ~/public_html/
chmod -R 2750 ~/public_html/
mkdir /opt/nginx/sites-available
mkdir /opt/nginx/sites-enabled
wget railsgeek.com/vps/vhost01 -P /opt/nginx/sites-available
ln -s /opt/nginx/sites-available/vhost01 /opt/nginx/sites-enabled
wget railsgeek.com/vps/nginx.conf -P /opt/nginx/conf
wget railsgeek.com/vps/nginx -P /etc/init.d
chmod +x /etc/init.d/nginx
/etc/init.d/nginx start

пояснения и комментарии на хабре
http://habrahabr.ru/blogs/ruby/60676/