25 января 2013 г.

Установка и настройка Pure-FTPD (Pure FTP)

Здесь я опишу подробный способ установки FTP-сервера Pure-FTPD и помогу вам избежать проблем, с которыми столкнулся сам: из-за не окрепшей дружбы с линуксом, или не очевидных и не описанных нюансов в установке и настройке.

Устанавливаем обычную версию (еще бывает mysql):
apt-get install pure-ftpd-common pure-ftpd

Здесь важно отметить, что после установки сервис запускается автоматически с параметрами по умолчанию. Остановка, старт или перезапуск:
/etc/init.d/pure-ftpd stop
/etc/init.d/pure-ftpd start
или
/etc/init.d/pure-ftpd restart

Далее мы должны создать группу пользователей FTP и пользователя, который будет находиться в этой группе, и под которым будут работать все пользователи FTP как виртуальные  (не нужно плодить реальных пользователей в системе — удобно)
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Теперь можно добавить виртуального пользователя:
pure-pw useradd remote -u ftpuser -g ftpgroup -d /home/pubftp/remote -N 10

Где remote  имя пользователя для доступа к FTP, а /home/pubftp/remote — персональная директория, с которой он будет работать. -N 10 задает квоту в 10МБ (ограничение на использование дискового пространства). Эту директорию не нужно создавать вручную, т.к. она появится автоматически (параметр задается при конфигурировании, об этом чуть позже) при первом подключении и обмене данными с сервером.

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

Список существующих пользователей:
pure-pw list

Подробная информация о пользователе:
pure-pw show remote


Удаление пользователя — когда-нибудь может пригодиться, но не сейчас:
pure-pw userdel remote

Удаляем методы авторизации имеющиеся по умолчанию:
rm /etc/pure-ftpd/conf/PAMAuthentication /etc/pure-ftpd/auth/70pam

Включаем puredb — преимущества в скорости работы, наверное (:
ln -s ../conf/PureDB /etc/pure-ftpd/auth/45puredb


При первом запуске команда создает БД, а после любых операций с пользователями — обновляет (не забывайте ее запускать каждый раз):
pure-pw mkdb

24 января 2013 г.

Запись образа Debian на флешку

Все операции производились из под Mac OS X.

Скачиваем подходящий ISO образ установочного диска.

Сначала узнаем под каким именем флешка в системе (предварительно подключив ее):

diskutil list

В моем случае это была /dev/disk5

Далее просто побитно записываем образ на флешку, используя dd:

sudo dd if=/path/to/debian.iso of=/dev/disk5 bs=8192

Размер блока почти не влияет на скорость записи, некоторые рекомендуют использовать в Mac OS X 8192. В моем случае образ размером 200МБ записывался на флешку около 7 минут.

Метод наверняка будет работать и с другими дистрибутивами Linux. Да — записывать можно на USB HDD, USB FLASH DRIVE, FLASH CARD.

Файлы базы данных Paradox и работа с ними используя PHP

Появилась необходимость подружить древние и мало-кем используемые файлы формата Paradox (*.px + *.db) с веб-приложением.

Попытка установить расширение PECL для работы с этими файлами на виртуальный Debian провалилась, не смотря на следование разным инструкциям, опубликованных добрыми людьми. Убил я на это час или два.

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

Наткнулся на интересный инструмент под Linux-like системы — pxtools от некоего Jan Kneschke. С помощью него можно конвертировать вышеуказанные файлы в добрые SQL, CSV или XML, которые затем легко использовать, в том числе в разработке/работе веб-приложений.

Установка утилиты не вызвала никаких проблем:

wget http://jan.kneschke.de/assets/projects/pxtools/pxtools-0.0.20.tar.gz
tar xvfz pxtools-0.0.20.tar.gz
cd pxtools-0.0.20
./configure
make
make install

Чтобы убедиться в том, что наши файлы подходят для препарирования сим инструментом, можно выполнить команду:

pxinfo -f  /path/to/db/file.db

И достать данные, сохранив в формате MySQL:

pxsqldump -d mysql -f /path/to/db/file.db > /path/to/saving/file.sql

Или csv:

pxcsvdump -f /path/to/db/file.db > /path/to/saving/file.csv

Конечно-же все это дело можно теперь автоматизировать и обрабатывать как угодно много файлов  — работает быстро, в т.ч. используя PHP.