четверг, 20 октября 2011 г.

Redmine и удаление плагинов - дубль 2

Сначала все бэкапим:
mysqldump -u -p > ~/redmine_`date +%d-%m-%y`.sql
tar -cPzf ~/redmine-`date +%d-%m-%y`.tgz _rails_root_

Переходим в директорию, где у нас установлен Redmine (RAILS_ROOT) (/usr/share/redmine) и выполняем следующие команды:

rake db:migrate:plugin NAME=_plugin_name_ VERSION=0 RAILS_ENV=production
ruby script/plugin remove _plugin_name_

После второй команды появится сообщение:

svn: '_rails_root_/vendor/plugins' is not a working copy

это не важно.
Перезапускаем Apache

вторник, 18 октября 2011 г.

Debian и установка Graphite

Graphite

sudo aptitude install python-whisper
sudo aptitude install python-django
sudo aptitude install python-django-tagging
sudo aptitude install python-twisted
sudo aptitude install python-cairo
aptitude install python-simplejson


* Качаем исходники:
https://launchpad.net/graphite

wget http://launchpad.net/graphite/0.9/0.9.9/+download/whisper-0.9.9.tar.gz
wget http://launchpad.net/graphite/0.9/0.9.9/+download/carbon-0.9.9.tar.gz
wget http://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz

* распаковываем и инсталлируем каждый пакет

sudo python2.6 setup.py install

создаст каталог /opt/graphite/ и в него установит.

В /opt/graphite/conf копируем:

cp carbon.conf.example carbon.conf
cp storage-schemas.conf.example storage-schemas.conf
подредактировать storage-schemas.conf
cp graphite.wsgi.example graphite.wsgi

* Создаем базу и заоодно root для django
cd /opt/graphite/webapp/graphite
sudo python manage.py syncdb

* Меняем права на базу, что бы апач мог получить доступ
sudo chown -R www-data:www-data /opt/graphite/storage/

* для апача модуль python
sudo aptitude install libapache2-mod-python
sudo aptitude install libapache2-mod-wsgi

* копируем из исходников пример настройки апача examples/example-graphite-vhost.conf
а в нем видим такую строку WSGISocketPrefix /etc/httpd/wsgi/
а у нас вообще нет каталогоа httpd - а есть apache2 (Debian) - делаем
mkdir /etc/apache2/wsgi
и меняем в конфиге на WSGISocketPrefix /etc/apache2/wsgi/

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

* для отладки включим вывод в лог debug
cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py
находим и раскомментируем
DEBUG = True

* Запускаем Carbon (сборщик данных)

cd /opt/graphite/
./bin/carbon-cache.py start

среда, 5 октября 2011 г.

1Wire и OWServer

OWServer - вроде драйвера между 1Wire и программами.
OWFS - может монтировать значения девайсов шины в виде файловой системы, вроде /sys /proc
Сайт проекта http://owfs.org

Для сборки потребовался еще libfuse-dev

И вот что самое тупое в owserver

При использовании простого адаптера для последовательного порта, она почти 2 минуты пытается найти на нем адаптер на DS2480. И лишь после этого согласно инструкции "переключается" на работу с простейшим адаптером. Поэтому или имейте терпение, или патчите код
module/owlib/src/ow_ds9097U.c

на предмет уменьшения значения повторов #define DS9097U_INIT_CYCLES 10
так, поставив 1 - получим ДВЕ проверки ~ около 10 секунд.

1Wire и DS1820

Есть простейший адаптер на FT232R и одном транзисторе для 1Wire. Нужно получить температуру.
Ставим пакет digitemp

Запускаем
digitemp_DS9097 -i -s /dev/ttyUSB0

на выходе что-то вроде:

Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
10BBEC6C010800A0 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 10BBEC6C010800A0
Wrote .digitemprc

Значит нашли нужный адаптер и термометр.
Теперь берем с него температуру:

digitemp_DS9097 -a -s /dev/ttyUSB

в выводе нас интересует строчка:

Oct 05 14:40:28 Sensor 0 C: 21.25 F: 70.25

можно "отсеч" лишний вывод командой вида

digitemp_DS9097 -a -s /dev/ttyUSB0 -q -o "%.1C"

выведет цифры температуры по Цельсию.
если датчиков несколько, добавляем параметр -t 0 (0-n) номер датчика