среда, 28 мая 2014 г.


Установка и настройка RRDtool в CentOS 6.

RRD это аббревиатура для Round Robin Database. RRD это система для хранения и отображения данных временного ряда, таких как пропускная способность сети, температура, загруженность сервера. Данные хранятся в очень компактном виде и не расширяются со временем очень значительно, а данные выводятся в виде удобных графиков.

Устанавливаем необходимые зависимости, для того, что бы было возможно установить RRDtool
#yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel

Переходим в папку /opt/. Сюда будет устанавливаться программа RRDtool
#cd /opt 

Скачиваем архив с исходными кодами

Распаковываем
#tar -zxvf rrdtool.tar.gz

Вводим команды:
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
# cd rrdtool-1.4.8/

Конфигурируем:
# ./configure
Если команда ./configure выполняется с ошибкой.
configure: error: in `/opt/rrdtool-1.4.8':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
То решается проблема установкой компилятора gcc:
#yum install gcc
Правильное завершение команды ./configure
Type 'make' to compile the software and use 'make install' to
install everything to: /opt/rrdtool-1.4.8.
... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go to http://tobi.oetiker.ch/wish and
place an order.
-- Tobi Oetiker <tobi@oetiker.ch>
----------------------------------------------------------------

Сборка пакета:
# make

Если команда выполнилась с ошибкой:
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
make[3]: *** [perl-piped/Makefile] Ошибка 2
make[3]: Leaving directory `/opt/rrdtool-1.4.8/bindings'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Leaving directory `/opt/rrdtool-1.4.8/bindings'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/opt/rrdtool-1.4.8'
make: *** [all] Ошибка 2
То решается проблема установкой пакета perl-ExtUtils-MakeMaker
# yum install perl-ExtUtils-MakeMaker
Теперь команда make выполняется без ошибок.

Далее - установка пакета RRDtool
# make install
Установка программы происходит в /opt/rrdtool-1.4.8/bin/

Для удобства дальнейшей работы делаем символическую ссылку:
#ln -s /opt/rrdtool-1.4.8/bin/rrdtool /usr/bin/rrdtool

Для проверки работы идем в папку с исходниками и запускаем для проверки скрипт stripes.pl
# cd /opt/rrdtool-1.4.8/examples/
# ./stripes.pl
Создастся файл stripes.png, который перемещаем в корень WEB-сервера, командой
# cp stripes.png /var/www/html/stripes.png
Открыв браузер и обратившись к серверу так:http://10.200.16.230/stripes.png , где 10.200.16.230 – IP адрес сервера, на котором работаем. мы увидим сгенерированный рисунок:



Значит все работает.

Иногда при выполнении скрипта stripes.pl, выходят ошибки:
# ./stripes.pl
(process:20256): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
(process:20256): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'
This script has created stripes.png in the current directory
This demonstrates the use of the TIME and % RPN operators

Демонстрационный файл создается, но текст на рисунке не отображается:


Проблема решается установкой пакета dejavu-lgc-sans-fonts 
#yum install dejavu-lgc-sans-fonts
Теперь генерация рисунка происходит успешно.

воскресенье, 25 мая 2014 г.

Установка и настройка TFTP сервера в CentOS

Устанавливаем TFTP сервер и TFTP клиент
#yum install tftp-server
#yum install tftp

Добавляем пользователя tftp сервера
#adduser tftpd
#chown tftpd:tftpd /var/lib/tftpboot

Директория, которая, будет корневой у TFTP сервера:
/var/lib/tftpboot
Пока тут пусто.

Разрешаем коннект к TFTP серверу. Открываем порт 69 в iptables
#iptables -I INPUT -p udp --dport 69 -j ACCEPT
#service iptables save

Редактируем конфигурационный файл TFTP сервера:
#nano /etc/xinetd.d/tftp
Здесь меняем две переменные: server_args и disable.
Переменным задаем следующие значения:
   server_args   = -c -p -u tftpd -U 117 -s /var/lib/tftpboot
   disable       = no

Стартуем сервер TFTP. Отдельного такого сервера нет, он работает вместе с сервером xinetd.
Поэтому запускаем его.
#service xinetd start
#chkconfig xinetd on

Проверка работы
1. С роутера Cisco сохраняем конфигурацию:
R2#copy running-conf tftp://10.200.16.222
Address or name of remote host [10.200.16.222]?
Destination filename [r2-confg]?
!!
32003 bytes copied in 0.352 secs (90918 bytes/sec)
Здесь адрес 10.200.16.222 - это адрес нашего TFTP сервера
2. Проверка с машины, на которой установлен TFTP сервер:
- Создаем тестовый файл, к примеру 123.
#touch 123
- Подключаемся к серверу 
#tftp 127.0.0.1
- Заливаем файл на сервер командой put
tftp>put 123
3. Проверяем, что в папке /var/lib/tftpboot, что-то появилось:
# ls -l /var/lib/tftpboot
итого 36
-rw-rw---- 1 tftpd tftpd     9 Май 25 22:07 123
-rw-rw---- 1 tftpd tftpd 32003 Май 25 22:07 r2-confg

вторник, 20 мая 2014 г.

Файл htaccess сервера Apache и запрет автоматического открывания файла браузером.

Иногда необходимо с помощью web-сервера Apache ограничить доступ пользователя к какой-то определенной директории или изменить поведение сервера Apache для определенной папки. Это делается добавлением файла .htaccess в директорию и записью в файл определенных команд.

Мне потребовалось сделать так, что бы при обращении пользователя по ссылке к файлам из определенной директории, файл не открывался браузером автоматически сразу, а предлагал диалоговое окно: скачать файл или запустить файл или что бы браузер просто скачивал файл.

Что бы вообще в принципе читался файл .htaccess и воспринимались команды из этого файла необходимо в настройках Apache в файле /etc/httpd/conf/httpd.conf заменить в разделе <Directory "/var/www/html">:
AllowOverride None 
на 
AllowOverride All

Затем создать сам файл .htaccess
touch /var/www/html/.htaccess

Запустить любимый редактор nano
nano /var/www/html/.htaccess

И добавить в файл строки:
AddType application/octet-stream .pdf
AddType application/octet-stream .mp3
<files *.mp3>
forceType application/octet-stream
Header set Content-Disposition attachment
</files>

Перезапустить apache
service httpd restart

Теперь файлы mp3 и PDF будут скачиваться без автоматического открытия файла.

воскресенье, 11 мая 2014 г.


Установка пакета mp3info в CentOS 6.5

Потребовалось недавно на Linux из командной строки узнавать длительность звучания Mp3 файла. Задача была решена с помощью пакета mp3info.

Процесс установки:
1. Качаем RPM пакет
#wget ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-0.8.5a-1.i386.rpm

2. Пробуем его установить, но получаем ошибку:
# rpm -ivh mp3info-0.8.5a-1.i386.rpm
    ошибка: Неудовлетворенные зависимости:
    libatk-1.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libc.so.6 нужен для mp3info-0.8.5a-1.i386
    libc.so.6(GLIBC_2.0) нужен для mp3info-0.8.5a-1.i386
    libc.so.6(GLIBC_2.1) нужен для mp3info-0.8.5a-1.i386
    libc.so.6(GLIBC_2.3) нужен для mp3info-0.8.5a-1.i386
    libcairo.so.2 нужен для mp3info-0.8.5a-1.i386
    libdl.so.2 нужен для mp3info-0.8.5a-1.i386
    libgdk-x11-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libgdk_pixbuf-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libglib-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libgmodule-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libgobject-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libgtk-x11-2.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libm.so.6 нужен для mp3info-0.8.5a-1.i386
    libncurses.so.5 нужен для mp3info-0.8.5a-1.i386
    libpango-1.0.so.0 нужен для mp3info-0.8.5a-1.i386
    libpangocairo-1.0.so.0 нужен для mp3info-0.8.5a-1.i386


3. Выполняем установку так:
# yum install mp3info-0.8.5a-1.i386.rpm

4. Проверяем, что пакет установился и откликается на команды:
# mp3info -help
MP3Info 0.8.5a Copyright (C) 2006 Cedric Tefft and Ricardo Cerqueira

Теперь что бы узнать длительность звучания файла 26042014-161136-88463108088-9735839.mp3 нужно выполнить:
# mp3info -x /mnt/recsource/26042014-161136-88463108088-9735839.mp3
/mnt/recsource/26042014-161136-88463108088-9735839.mp3 does not have an ID3 1.x tag.
File: /mnt/recsource/26042014-161136-88463108088-9735839.mp3
Media Type: MPEG 2.5 Layer III
Audio: 16 KB/s, 8KHz (mono)
Emphasis: none
CRC: No
Copyright: No
Original: Yes
Padding: No
Length: 0:20


Длительность будет записана в строчке Length.

Полезные ссылки
http://www.ibiblio.org/mp3info/