Записи о настройке Debian, Ubuntutitle

Записи из жизни, о проблемах и настройке серверов на Debian, Ubuntu. Руководства HowTo по оптимизации работы Linux.

RSS Contact

Подсветка синтаксиса в less

п’ятниця, серпня 27, 2010

Администраторы Unix-подобных ОС очень часто пишут командные сценарии для автоматизации выполнения рутинных задач, используя свой любимый тектовый редактор. Время от времени приходится открывать написанные однажды сценарии, чтобы что-то в них подсмотреть. Я это делаю с помощью less. С помощью последнего мне очень понравилось читать раскрашенные руководства и захотелось того же при обычном просмотре текста в консоли (shell-сценарий, html-документ и пр.).

Оказалось, все крайне просто. В мире open source существует программа, которая на входе принимает текст, а на выходе выдает его же, но уже подсвеченным. Достаточно установить пакет source-highlight и объявить пару переменных окружения командной оболочки (пример для bash):

    echo 'export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"' >> ~/.bashrc
    echo "export LESS=' -R '" >> ~/.bashrc

Как ограничить размер папки linux

середа, серпня 11, 2010

Есть 2 варианта:

1. Создать файл нужного размера и смонтировать его как папку.
Пример:

dd if=/dev/zero of=/userdisk.fs bs=1024 count= 100000
mkfs.ext3 /userdisk.fs
mount -t ext3 -o loop /userdisk.fs /home/user

2. Использовать утилиту quota (Более логично как по мне)

Установка и настройка Django, Nginx через Tornado в Debian / Ubuntu

п’ятниця, липня 30, 2010

Tornado (торнадо) – это неблокирующий, высоко производительный веб-сервер с открытыми исходным кодом. Авторами сервера являются создатели сервиса FriendFeed. Сервер реализован средствами языка Python и в силу своей неблокирующей природы (используется epoll) легко выдерживает тысячи одновременных подключений. Помимо всего прочего, Tornado поддерживает протокол WSGI, хотя и с небольшими ограничениями (будут не доступны асинхронные фичи сервера).

Механизм взаимодействия будет классическим:

* front-end – nginx, проксирующий все соединения, кроме статических файлов, на back-end
* back-end – tornado + django

Установка nginx

В первую очередь необходимо установить fron-end, коим будет являться весьма популярный http-сервер nginx. Установка проста:

sudo aptitude install nginx

Установка django

Получение исходный код фреймворка:

$ mkdir ~/django
cd ~/django
wget http://www.djangoproject.com/download/1.1.1/tarball/
tar xzf Django-1.1.1.tar.gz

Установка Django:

python -c “from distutils.sysconfig import get_python_lib; print get_python_lib()”
/usr/lib/python2.5/site-packages
sudo ln -s ~/django/Django-1.1.1/django /usr/lib/python2.5/site-packages/django
sudo ln -s ~/django/Django-1.1.1/django/bin/django-admin.py /usr/local/bin
python -c “import django; print django.VERSION;”
(1, 1, 1, ‘final’, 0)


Установка tornado

К сожалению, tornado все еще отсутствует в стандартных репозиториях Debian / Ubuntu. Поэтому процесс установки будет выполняться непосредственно из исходных кодов. Подготовка к получению исходных кодов и компиляции:

sudo aptitude install git-core gitosis
sudo aptitude install python-dev build-essential

После этого необходимо получить исходный код tornado:

cd ~ && git clone git://github.com/facebook/tornado.git

И наконец, выполнить установку tornado:

cd ~/tornado && sudo python setup.py install

Проверяем корректность установки:

python -c "import tornado; print 'tornado installation successfully completed';"
tornado installation successfully completed


Настройка wsgi

Чтобы заставить работать Django-код под Tornado, необходимо написать wsgi-прослойку, запускающую tornado-сервер на определенном порту и подключающую django-проект по протоколу wsgi. Код должен выглядеть приблизительно так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# location: deploy/tornading.py

import os
import sys

# настройки
DJANGO_ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DJANGO_APPS_DIR = os.path.join(DJANGO_ROOT_DIR, 'apps')

def daemon(iport):
    import tornado.wsgi
    import tornado.ioloop
    import tornado.httpserver

    # настраиваем django
    sys.path.insert(0, DJANGO_APPS_DIR)
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()

    # подключаем tornado
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(iport)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    # на вход должен быть передан порт,
    # на котором будет запущен tornado-сервер
    daemon(int(sys.argv[1]))

При этом предполагается, что код проекта распределен следующим образом:

tree -d  -L 1
.               # корень django-проекта
|-- apps        # django-приложения
|-- cache
|-- deploy
|-- logs
|-- media
`-- templates   # django-шаблоны


Настройка nginx

После того, как tornado-сервер запущен, можно переходить к настройке nginx:

sudo vim /etc/nginx/sites-available/bukashk0zzz.org.ua

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

upstream backends {
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
}

server {
    listen   80;
    server_name tornado.bukashk0zzz.org.ua;

    access_log /home/django-projects/bukashk0zzz/logs/nginx_access.log;
    error_log /home/django-projects/bukashk0zzz/logs/nginx_error.log;

    location = /robots.txt {
        alias /home/django-projects/bukashk0zzz/media/robots.txt;
    }

    location = /favicon.ico {
        alias /home/django-projects/bukashk0zzz/media/img/favicon.ico;
    }

    location /media/ {
        alias /home/django-projects/bukashk0zzz/media/;
        expires 30d;
    }

    location /media_admin/ {
        alias /usr/lib/python2.6/dist-packages/django/contrib/admin/media/;
        expires 30d;
    }

    location / {
        proxy_pass http://backends;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Далее, необходимо включить хост:

sudo ln -s /etc/nginx/sites-available/bukashk0zzz.org.ua \
         /etc/nginx/sites-enabled/bukashk0zzz.org.ua

Чтобы новый хост заработал, необходимо перестартовать nginx:

sudo /etc/init.d/nginx restart

Запуск демона tornado

Для запуска Django-проекта осталось лишь запустить tornado-сервер на нужном порту с помощью wsgi-прослойки, написанной ранее:

python deploy/tornading.py 8001 &
python deploy/tornading.py 8002 &

Все. Django-проект запущен под nginx+tornado.

Установка GRUB 2 на Debian / Ubuntu

п’ятниця, липня 30, 2010

GRUB 2 – это новый загрузчик, написанный с нуля с целью реализации модульности и переносимости. GRUB 2 ставит перед собой следующие цели:

* поддержка скриптового языка (циклы, условия, переменные, функции)
* графический интерфейс
* динамическая загрузка модулей
* возможность портирования на различные архитектуры
* интернационализация
* управление памятью
* кросс-платформенная установка, позволяющая устанавливать GRUB из различных архитектур
* режим восстановления (satge 1.5 исключен)


Установка GRUB 2

Для установки необходимо выполнить следующую команду:

sudo aptitude install grub-pc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  grub-pc liblzo2-2{a}
The following packages will be REMOVED:
  grub{a}
0 packages upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
Need to get 1514kB of archives. After unpacking 3318kB will be used.
Do you want to continue? [Y/n/?] Y

При этом, старый grub будет удален. После установке будут заданы два вопроса:

Первый вопрос:

GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub.
In order to replace the Legacy version of GRUB in your system, it is recommended
that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from your existing GRUB Legacy setup.
This step may be automaticaly performed now.

It’s recommended that you accept chainloading GRUB 2 from menu.lst, and verify
that your new GRUB 2 setup is functional for you, before you install it directly to
your MBR (Master Boot Record).

In either case, whenever you want GRUB 2 to be loaded directly from MBR,
you can do so by issuing (as root) the following command:
upgrade-from-grub-legacy

Chainload from menu.lst?

Необходимо ответить: Yes

Следующий вопрос:

The following Linux command line was extracted from the `kopt’ parameter in GRUB Legacy’s menu.lst.
Please verify that it is correct, and modify it if necessary.

Linux command line:

Необходимо оставить пустую строку и нажать enter.

Далее, чтобы увидеть новый grub, необходимо перезагрузиться:

sudo reboot

После того, как появился экран загрузчика, необходимо выбрать пункт “Chainload into GRUB”, после чего появится приглашение от свежеустановленного grub 2, где уже можно выбрать ядро для загрузки и загрузить систему.

После того, как появилось уверенность в том, что GRUB 2 корректно установлен и работает, необходимо зафиксировать переход на новый grub. Для этого необходимо выполнить:

sudo upgrade-from-grub-legacy

Installing GRUB to Master Boot Record of your first hard drive ...

Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)        /dev/sda

GRUB Legacy has been removed, but its configuration files have been preserved,
since this script cannot determine if they contain valuable information.  If
you would like to remove the configuration files as well, use the following
command:

  rm -f /boot/grub/menu.lst*

После чего необходимо еще раз перезагрузиться:

sudo reboot

Теперь при старте системы будет работать GRUB 2.

Установка Django, PostgreSQL, Nginx

понеділок, липня 12, 2010

В качестве базы решил использовать PostgreSQL, лично для меня пофиг какая база PostgreSQL или MySQL, решил использовать PostgreSQL потому что сами разработчики Django когда разрабатывали свой фреймворк, затачивали его под Postgres.

aptitude install postgresql

Если все сделали правильно Postgres начнет ждать подключений.

netstat -tanp |grep postgre
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      23104/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      23104/postgres

Создаем нового юзера (в моем примере newuser) и зададим ему пароль qwerty

su postgres
createuser newuser
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
psql template1
alter user newuser password 'qwerty';

Заодно сменим пароль для пользователя Postgres

ALTER ROLE postgres WITH ENCRYPTED PASSWORD 'my-super-secret-password';
\q

Создаем базу для пользователя newuser, на запрос пароля вводим пароль, который мы установили для пользователя postgres (my-super-secret-password)

createdb websitedb --owner=newuser -hlocalhost
Password:

Теперь пробуем подключиться

psql -Unewuser -W -hsrv01.lan
Password for user newuser:
psql (8.4.1)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

newuser=>

С базой покончено, можно настраивать сайт

mkdir /var/www/django-trunk
chown www-data:www-data /var/www/django-trunk/
cd /var/www/django-trunk/
su www-data
svn co http://code.djangoproject.com/svn/django/trunk/ .
exit
python django/setup.py build
python django/setup.py install

Для запуска Django как FastCGI server понадобится flup, который можно установить из пакетов.

aptitude install python-flup

Создаем новый проект

django-admin.py startproject yourproject

Проект создан, теперь можно запускать FastCGI сервер и настраивать Nginx.

/var/www/yourproject$ ./manage.py runfcgi method=threaded host=127.0.0.1 port=3033

Теперь создаем конфиг для nginx /etc/nginx/sites-available/yourwebsite (если не установлен, то устанавливаем командой sudo aptitude install nginx). Ниже содержимое этого файла:

upstream djangoserv {
    server 127.0.0.1:3033;
}
server {
        listen   80;
        server_name  yourwebsite;
        root /var/www/yourwebsite/yourproject;

        access_log  /var/www/yourproject/logs/access.log;
        error_log   /var/www/yourproject/logs/error.log;

        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
            access_log   off;
            expires      30d;
        }

        location / {
            fastcgi_pass   127.0.0.1:3033;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param SERVER_NAME $server_name;
            fastcgi_param SERVER_PORT $server_port;
            fastcgi_param SERVER_PROTOCOL $server_protocol;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
            fastcgi_pass_header Authorization;
            fastcgi_intercept_errors off;
        }

}

После чего делаем symlink и включаем конфиг для нового виртуал хоста, создаем папку с логами и выставляем ей нужного владельца (www-data), после чего перезагружаем nginx.

cd /etc/nginx/sites-available
ln -s /etc/nginx/sites-available/yourwebsite /etc/nginx/sites-enabled/yourwebsite
mkdir /var/www/yourproject/logs
chown www-data:www-data /var/www/yourproject/logs
/etc/init.d/nginx reload

Если все сделали правильно теперь можно зайти по адресу http://yourwebsite и увидеть там дефолтную страницу Django с надписью It worked!

Транслирование и запись WEB камеры motion

четвер, липня 8, 2010

Установка Motion

sudo aptitude install motion

Конфигурационные файлы Motion

$ sudo nano /etc/motion/motion.conf

# Видеоустройство для захвата, в FreeBSD по умолчанию /dev/bktr0
videodevice /dev/video0

# Используемый вход для видео, может иметь два значения;
# по умолчанию используется 8 (для USB камер), для V4L устройств ставим 1
input 8

# Устанавливаем количество захватываемых кадров в секунду;
# здесь следует ввести число в диапазоне 2 – 100 (100 – по умолчанию)
# для PAL стандартным является 25
framerate 25

# И не менее важный параметр target_dir, в нем определяем каталог,
# куда будем складывать захваченные с видеокамеры файлы;
# в качестве имени можно использовать переменные,
# все они описаны в оригинальном файле
target_dir /var/lib/motion/snapshots/

# Имя файла для снимков и видео, в примере оставляем значение по умолчанию
# %Y = год, %m = месяц, %d = день, %H = час, %M = минута, %S = секунда
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse

Вот, собственно, и все основные настройки. Если используется карта видеозахвата или TV тюнер, при помощи параметра norm указываем стандарт. По умолчанию используется 0, то есть PAL. Возможны значения 1 – NTSC, 2 – SECAM и 3 PAL NC. Для TV тюнера также указываем частоту. По умолчанию frequency = 0.

Чтобы Motion не переходил в режим демона и выводил отладочную информацию в консоль, используем флаг ‘–n’.
Більше…

Screen – виртуальный терминал HowTo

неділя, липня 4, 2010

Многим часто приходится иметь дело с работой на удаленных серверах по ssh. При этом, могут возникать самые разные проблемы с соединением, и есть вероятность того что результат долгой и напряженной работы будет потерян из-за банального дисконнекта. Хорошо иметь возможность подключаться и отключаться от удаленных хостов, сохраняя терминальные сессии. В этом, а так же во многом другом, может помочь почти “классическая” утилита screen. Скорее всего, screen уже установлен на вашей linux-машине (если нет – самое время установить) и на серверах, с которыми вы собираетесь работать.

Итак, начинаем работу. Запустить новый screen можно, как ни странно, просто командой screen без параметров:

bukashk0zzz@debian:~$  screen

При этом, в зависимости от настроек screen в вашей системе, либо просто появится приглашение шелла, либо “экран приветствия”, нажав SPACE или ENTER в котором, вы так же попадете в shell. Вроде бы ничего необычного, кроме того, что этот shell будет уже запущен “внутри” screen’а.
Більше…

Finch – Pidgin для консоли

неділя, липня 4, 2010

finch консольный модульный клиент обмена сообщениями, основанный на libpurple,умеющий подключаться к AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, и QQ одновременно. У него много общего сдругими клиентами, но есть и много своих уникальных особенностей.Finch не одобрен официально America Online, ICQ, Microsoft, или Yahoo.
Теперь собственно установим finch из репозиториев:

apt-get install finch

Більше…

Как сменить браузер по умолчанию linux

субота, червня 12, 2010

Выполнить в консоли команду

update-alternatives --config x-www-browser

Далее указать цифрой какой браузер вы хотите использовать по умолчанию и нажать enter.

Размер папки linux

понеділок, травня 31, 2010
du --max-depth=1 -h путь_до_католога

rtorrent apache2 wtorrent how to

понеділок, травня 17, 2010

Мой домашний сервер включен 24х7. А по ночам он простаивает, захотелось его чем нибудь нагрузить. Чем можно нагрузить домашний сервер с безлимитным интернетом — понятное дело торрентами. А поскольку сервер на линуксе, то и торрент клиент нужно искать консольный и с Web интерфейсом

И мой взгляд упал на rTorrent + wTorrent. Долго гугля в различных интернетах понял, что большинство пытается поднять эту связку на вебсервере Лайти (lighttpd), а вот под апач к сожалению нет толковых мануалов.
Чтож, попробую написать свой мануал

итак начнем

ставим необходимые пакеты

apt-get install rtorrent screen apache2 php5-cgi php5-common php5-sqlite php5-xmlrpc sqlite unzip php5-curl

тут следует отметить что пакет rtorrent для Ubuntu идет уже скомпилирован с xmlrpc для Debian Etch придется собирать самому, либо использовать версию пакета из тестинга

итак займемся настройкой пакета rTorrent. следует отметить что rTorrent нужно запускать от учетки пользователя. в моем случае это была учетная запись randomtoy

в папке /home/denis создаем файл .rtorrent.rc со следующим содержанием

scgi_port = localhost:5000
min_peers = 40
max_peers = 100
min_peers_seed = 10
max_peers_seed = 50
max_uploads = 15
#upload_rate = 50
directory = /home/denis/torrents/doing
session = /home/denis/torrents/.rtsession/
schedule = watch_directory,5,5,load_start=/home/denis/torrents/watch/*.torrent
schedule = tied_directory,5,5,start_tied=
schedule = untied_directory,5,5,close_untied=
on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/home/denis/torrents/done/ ;d.set_directory=/home/denis/torrents/done/"
on_start = link1,"create_link=tied,,.started"
on_stop = link1,"delete_link=tied,,.started"
on_finished = link1,"create_link=tied,,.finished"
on_erase = link1,"delete_link=tied,,.finished"
schedule = low_diskspace,5,60,close_low_diskspace=100M
#schedule = ratio,60,60,"stop_on_ratio=120,200M,2000"
port_range = 10000-10001
port_random = no
check_hash = yes
use_udp_trackers = yes
encryption = allow_incoming,try_outgoing,enable_retry
dht = auto
dht_port = 63982

тут же создаем следующие директории

mkdir torrents

запускаем rtorrent, если нет ошибок, продолжаем. Следующая проблема. как запускать рторрент от пользователя при запуске системы?

создаем скрипт rtorrent со следующим содержимым

#!/bin/bash

### BEGIN INIT INFO
# Provides: rtorrent
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start rtorrent as a daemon
### END INIT INFO

#!/bin/sh
#############
######
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
######
##############

#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as
user="denis"

# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng "$user"`

# the full path to the filename where you store your rtorrent configuration
config="/home/denis/.rtorrent.rc"

# set of options to run with
options=""

# default directory for screen, needs to be an absolute path
#base="/home/${user}"
base="/home/denis"

# name of screen session
srnname="rtorrent"

# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME

checkcnfg() {
exists=0
for i in `echo "$PATH" | tr ':' '\n'` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
echo "cannot find rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
exit 3
fi
if ! [ -r "${config}" ] ; then
echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
exit 3
fi
# session=`getsession "$config"`
# if ! [ -d "${session}" ] ; then
# echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
# exit 3
# fi
}
d_start() {
[ -d "${base}" ] && cd "${base}"
stty stop undef && stty start undef
su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${user} | tee -a "$log$
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null$
su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}

d_stop() {
session=`getsession "$config"`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
kill -s INT ${pid}
fi
}

getsession() {
session=`awk '/^[[:space:]]*session[[:space:]]*=[[:space:]]*/{print($3)}' "$config"`
echo $session
}

checkcnfg
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

копируем скрипт, делаем его выполняемым и добавляем в автозагрузку

cp rtorrent /etc/init.d

chmod a+x /etc/init.d/rtorrent

update-rc.d rtorrent defaults 25

Теперь rtorrent будет запускаться в screen при запуске системы

ну и теперь приступаем к самому вкусному, к Web-интерфейсу. из различных вебморд я выбрал, основанную на аяксе wTorrent

скачиваем wTorrent

cd /var/www

rm -f index.html

svn co svn://canbruixa.homelinux.net/repos/trunk/wtorrent/

cd wtorrent

mv * ..

mv .* ..

cd ..

rmdir wtorrent

touch ./db/database.db

chown -R www-data:www-data /var/www/wtorrents

редактируем файл /var/www/wtorrent/conf/user.conf.php

<?php
/* wTorrent autoconfiguration file. Created 17/5/2010 */
define ('LANGUAGE', 'ru_RU');
define ('DB_FILE', 'db/database.db');
define ('RT_HOST', 'localhost');
define ('RT_PORT', 80);
define ('RT_DIR', '/RPC2');
define ('RT_AUTH', false);
define ('RT_USER', '');
define ('RT_PASSWD', '');
define ('NO_MULTICALL', true);
define ('EFFECTS', true);
define ('DIR_TORRENTS', 'torrents/');
define ('DIR_EXEC', '/var/wtorrent/');
define ('DIR_DOWNLOAD', '/home/denis/torrents/');
?>

Вот теперь мы дошли до настройки Apache.

в файл апача /etc/apache2/httpd.conf добавляем

SCGIMount /RPC2 127.0.0.1:5000

перезапускаем rtorrent и Апач

/etc/init.d/rtorrent restart
/etc/init.d/apache2 restart

заходим на страницуlocalhost/install.php

создаем аккаунт администраторатора

заходим по адресу localhost

wTorrent работает

Server status for Apache2

понеділок, травня 17, 2010

Добавляем модуль

a2enmod info

Дописуем алиас:

/etc/apache2/apache2.conf:[bash]

[bash]
ExtendedStatus On

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .your_domain.com
</Location>

Перезагружаем настройки apache2

/etc/init.d/apache2 force-reload

Nagios3 and Nagiosgrapher howto Debian/Ubuntu

четвер, травня 6, 2010

Установка Nagios3

nagios logo Nagios3 and Nagiosgrapher howto Debian/Ubuntu

apt-get install autoconf rrdtool perl perl-base perl-modules libcalendar-simple-perl \
libgd-gd2-perl perlmagick librrds-perl liburi-perl

Настройка Nagios3

Редактируем файл /etc/nagios3/naigos.cfg (Как оказалось очень важно)

check_external_command=1

Установка и настройка NRPE

NRPE – модуль для системы мониторинга Nagios, позволяющий запускать plugin’ы на удаленных серверах. Основная задача данного модуля – получить информацию о локальных данных удаленных серверов (check_load, check_users). Но с таким же успехом его можно использовать для мониторинга недоступных серверов, например, находящихся в локальной сети и не имеющих внешних адресов. Для этого достаточно установить на промежуточном сервере (195.43.68.11), имеющим доступ к локальной сети (192.168.1.0), nrpe-службу и на сервере мониторинга (195.43.68.2) установить nrpe-plugin.

На стороне remote-сервера установить nrpe-сервис и базовый набор nagios-plugin’ов

apt-get install nagios-nrpe-server nagios-plugins-basic

Проверка установки nagios-nrpe-server

netstat -an | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN

Изменить конфигурационный файл /etc/nagios/nrpe.cfg и перезапустить сервис с новыми параметрами

 allowed_hosts=127.0.0.1,195.43.68.2 

# разрешить использование аргументов при выхове plugin’ов
dont_blame_nrpe=1
# пример описания plugin’а
command[check_ftp]=/usr/lib/nagios/plugins/check_ftp -H $ARG1$
[/bash]

/etc/init.d/nagios-nrpe-server restart

На стороне мониторинг-сервера установить nrpe-plugin, протестировать его функциональность и добавить описания требуемых для мониторинга локальных сервисов. В приведенном ниже примере используется plugin check_ftp, для проверки работоспособности ftp-сервиса на локальном сервере 192.168.1.111.

apt-get install nagios-nrpe-plugin

Проверка

/usr/lib/nagios/plugins/check_nrpe -H 195.43.68.11

Пример описания данного сервиса в конфигурации Nagios:

define service{
use generic-service
host_name remote
service_description NRPE_FTP
check_command check_nrpe!check_ftp!192.168.1.111

Установка Nagiosgrapher

 aptitude install nagiosgrapher

Настройка Nagiosgrapher

ngraph.ncfg

Редактируем файл /etc/nagiosgrapher/ngraph.ncfg

interface          file
perffile_path     /etc/nagiosgrapher/
nagios.cfg

Редактируем файл /etc/nagios3/naigos.cfg

cfg_dir=/etc/nagiosgrapher/nagios3/serviceext
process_performance_data=1
service_perfdata_file=/etc/nagiosgrapher/service-perfdata
service_perfdata_file_template=$HOSTNAME$\t$SERVICEDESC$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\t$TIMET$\n
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-file
commands.cfg

Редактируем файл /etc/nagios3/commands.cfg


define command{
          command_name process-service-perfdata-file
          command_line mv /etc/nagiosgrapher/service-perfdata /etc/nagiosgraphe$
}

Перезапуск NagiosGrapher

/etc/init.d/nagiosgrapher restart

Перезагрузка Nagios

/etc/init.d/nagios restart

Grapher значок не будет отображаться в интерфейсе Nagios до проверки службы. Просто нужно подождать 5 – 10 минут.

Настройка и создание почтовых ящиков ISPmanager

неділя, березня 7, 2010
  1. Создание и изменение параметров почтового ящика
  2. Настройка сообщения автоответчика (vacation)
  3. Включение и выключение почтовых ящиков
  4. Удаление почтовых ящиков
  5. Настройка Outlook Express
  6. WebMail
  7. Настройка The Bat

Більше…

Запуск задачи в Cron в Debian Linux

четвер, лютого 25, 2010

Cron – система в Линуксе для выполнения задач по расписанию

Чтобы выполнить shell команду раз в час

заходим в папку /etc/cron.hourly

далее создаем текстовый файл touch comandname

в файл пишем 2 строки (2-я строка – та команда, которую нужно запустить)

#!/bin/sh
apache2 -k restart

Більше…

Украина онлайн Rambler's Top100 Каталог MyList.com.ua каталог сайтів Linux coutner