четверг, 17 декабря 2009 г.

Поднятие FTP-сервера в Debian для бытовых нужд.

Предисловие.
У меня сложилась следующая ситуация. Купил себе ноутбук, включил его в домашнюю сеть, до этого состоявшую из роутера и десктопа. И сразу захотелось получить возможность качать на него фильмы, программы и т.д. из локальной сети провайдера, а именно из местного p2p. Но там для того, чтобы что-то скачать, сперва надо что-то выложить самому. Как говорится, чтобы купить что-нибудь ненужное, сперва надо продать что-нибудь ненужное. Качать же что-то из других источников было лень. Поэтому решено было слить немножко шары с десктопа под управлением Linux Debian, за которым, кстати, в этот момент сидела моя девушка (вот, кстати, ее блог). При этом мешать ей было крайне нежелательно.
Задача.
Поднять на десктопе FTP-сервер, для того, чтобы можно было быстро скачать что-то с одного компа на другой в пределах своей домашней сети.д
Решение.
1) Была скачана программа Putty, которая позволяет из под Windows заходить на Linux-компьютеры и сервера по протоколу ssh и получать доступ к консоли. (К счастью, sshd я поднял на десктопе заранее)
2) В качесте FTP-сервера был выбран proftpd. Установил я его следующим образом:
sudo aptitude install proftpd
При установке он спросит, в каком режиме надо работать - как сервер или под управлением inetd, я выбрал inetd, так как в таком режиме он будет меньше грузить систему. Правда, производительность его тоже снизится, но ведь туда буду только я ходить, а не толпы народа.
3) Была произведена его минимальная настройка. Так как он ставился не для production-целей, я особо не стал грузиться и курить мануалы, а сделал следующее:
sudo vim /etc/proftpd/proftpd.conf
Все настройки были оставлены по умолчанию, я только добавил следующее:
<Anonymous /mnt/d/Downs>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Вроде как все интуитивно понятно, но поясню: секция Anonymous задает параметры для анонимного доступа в директорию /mnt/d/Downs, где у меня лежит всякая вкуснятка. Аноним может входить под именем ftp, anonymous. В секции Limit мы запрещаем ему писать в этой директории.
4) Собственно, это все, осталось только выполнить reload сервера, чтобы он прочитал обновленный конфиг:
sudo /etc/init.d/proftpd reload
5) Заходим любым фтп-клиентом. Лично я использовал для этой цели свой браузер, Google Chrome. Чтобы зайти, в адресной строке надо набрать
ftp://192.168.0.153/
,
где 192.168.0.153 - это IP адрес моего десктопа.
В результате получаем следующее:

И все, берем и качаем то, что нам надо))

вторник, 15 декабря 2009 г.

Веборама - отличный бесплатный аналог Last.fm

Совершенно внезапно открыл для себя замечательный ресурс -Веборама. По сути он представляет собой бесплатный почти аналог крайне известного Last.fm. Музыка отсортирована по жанрам, можно выбрать жанр (рок, поп, рэп и т.п.), поджанр, и тогда вам будут рандомно проигрываться песни выбранного направления. Так же можно воспользоваться поиском и найти конкретно то, что вам нужно. Но самая главная фишка сервиса - подбор музыки в зависимости от настроения!

Таким образом, в каком настроении не находился бы пользователь, он всегда может слушать музыку "в тему". Собирается статистика по музыке, которую вы слушаете, какие-то альбомы  и треки можно откладывать для прослушивания на потом, если сейчас послушать некогда.
На главной странице так же отображаются популярные песни, клипы, исполнители. Есть информация о предстоящих концертах - кто, где, когда и что. Так же присутствуют сообщества, в которых можете написать свою и почитать другие рецензии на любимых исполнителей, альбомы и треки.
Должно заметить, что вся музыка на сайте загружается самими пользователями, так что бывают случаи, когда в альбоме не хватает пары песен и т.п.:) И да-да-да, все абсолютно бесплатно :))
Ну и вот вставил себе оттуда песенку своей любимой Аврил:)

понедельник, 14 декабря 2009 г.

Linux - посылаем сообщения другим пользователям через консоль

Всегда интересовался, как послать сообщения другим юзерам через консоль, так, чтоб у них это отобразилось. Сейчас наконец-то разобрался. Это очень просто, делается всего одной командой write:
write username
где username - имя пользователя, с которым вы хотите пообщаться.
Чтобы запретить другим вот так вот вламываться в вашу консоль, используйте команду mesg. C параметром y она разрешает слать вам мессаги, а с n - запрещает:
mesg n
В довесок, есть команда wall, которая шлет сообщения всем пользователям, залогиненным на этот момент:
 wall [file]
[file] - это имя файла, который выведется всем пользователям. Если его не печатать, то будет посылаться то, что вы печатает, то есть стандартный поток ввода.
Все проверено в Debian Linux.

воскресенье, 13 декабря 2009 г.

Небольшой обзор аудиопроигрывателей под Linux

На днях столкнулся с проблемой (точнее, столкнулся давно, но решать решил лишь сейчас) - мой любимый проигрыватель Amarok написан под KDE, хотя мне самому намного больше нравится использовать Gnome. Поэтому перечислю, что я пробовал, и на чем остановился:
Amarok - очень мощный плеер,  с удобной библиотекой, поиском текстов, обложек, информации об исполнителях на википедии. Глобальные хот-кеи, сворачивание в трей, поддержка многих форматов, отправка статистики на LastFM - все это в нем есть. В общем, все то, что мне нужно в нем есть. Но - под Gnome он работает совсем не так хорошо, как под KDE, и тащит с собой в зависимостях кучу всяких библиотек.


Exaile - его я попробовал после Amarok'a, вычитав в интернете, что это проигрыватель, очень похожий на Амарок, но написанный на GTK+, то есть подходящий под Gnome. Однако, когда я его поставил, во всем почувствовал какую-то урезанность и уж слишком явный закос под Amarok. Да и подтормаживал он у меня почему-то.


Audacios - он оказался маленьким и быстрым плеером, выглядящим приблизительно как Winamp второй версии. Однако в нем мне не удалось найти вообще даже подобия той библиотеки медиа, которая была в моем любимом Амароке. Да и поиск по плейлисту работал ужасно. Точнее, совсем не работал.


Banshee - вот на нем я и остановился. Banshee - проигрыватель на GTK+, отлично работает под Gnome и радует меня всеми теми функциями, которых я жду от приличного проигрывателя.


Ну и на последок - можно теоретически вообще какой-то определенный файл прослушать просто проигрывателем mpg123 или mpg321 - всего лишь командой "mpg123 filename.mp3":)
И да, все проигрыватели из этого списка можно установить так
sudo aptitude install amarok
Слово "amarok"  замените на имя того проигрывателя, который вам нужен:)

Linux - многопоточная скачка с сетей p2p - dc.

Протокол Direct Connect используется в пиринговых сетях типа DC++. В этих сетях пользователи могут обмениваться файлами самых разных типов. Каждый из них присоединяется к серверу-хабу, при этом расшаривает какую-то свою информацию. В хабе реализован чат и возможность посмотреть, сколько пользователей на нем и у кого что расшарено, возможен поиск. Есть самые различные клиенты для таких сетей - FlyLinkDC, StrongDC и т.д. У самого распростарненного клиента под Линукс  есть один большой недостаток - невозможна одновременная скачка одного файла с различных пользователей:( Я сумел найти только вот тут пропатченную версию linuxdcpp, поддерживающую многопоточную скачку. И то она только для архитектуры i386:(

воскресенье, 6 декабря 2009 г.

Устанавливаем калькулятор в Linux Debian

Внезапно передо мной встала задача установить калькулятор в линуксе, так как в моем Debian предустановлено его не было. Причем я искал приложение на GTK, так как у меня установлен Gnome. Google же в ответ на мои запросы выдавал всякие страшные штуковины типа вот этого или этого. Мне же хотелось получить просто аналог того самого calc, который был в windows, чтобы можно было парой щелчков перегонять числа из десятеричной системы в двоичную и т.д., а не изучать еще один режим программированя. Вот он, calc, на картинке:

Решение же нашлось в виде gcalctool - симпатично и очень похоже на виндовую реализацию:


Вот его я и решил себе поставить. Для этого надо выполнить всего лишь одну команду:
sudo aptitude install gcalctool
И все, можно наслаждаться подсчетами. Стоит заметить, что он обладает тремя режимами - простым, финансовым и научным.

Взаимодействие PHP и MySQL

В этом посте расскажу о том, как с помощью PHP осуществлять запросы к базе данных на основе MySQL. Использовать для этого будем web-сервер apache 2 с установленным модулем PHP. Все эти три компоненты практически бесплатны и распространяются под лицензией GNU. Подробнее о том, как устанавливать PHP, Apache и MySQL постараюсь написать в одной из следующих статей. Сейчас же представим, что все это уже установлено и сконфигурировано у вас дома, либо вы используете хостинг с поддержкой PHP и MySQL.
Итак, пусть у нас в MySQL есть база world, а в ней таблица people с полями name и age, где name - это имя, а age - возраст человека. И мы ставим себе целью выбрать из этой таблицы всех людей моложе 20 лет. Очевидно, для этого нам надо использовать запрос SELECT.
Начнем. Создаем в папке, которую Apache считает корневой, файл со следующим содержанием
<!DOCTYPE html>
<html>
<head>
<title>Запрос к базе данных</title>
</head>
<body>
<?
//прописываем параметры для соединения с БД
$hostname='localhost';//Имя хоста с БД MySQL, в нашем случае это localhost
$dbName='world';//Имя базы данных, которая нам нужна
$dbUser='username';//Имяпользователя MySQL
$dbPasswd='password';//Его паролт
$dblink=mysql_connect($hostname,$dbUser,$dbPasswd) or exit (3); //Соединяемся с сервером или ошибка
$db_selected=mysql_select_db($dbName,$dblink) or exit(3);//Выбираем БД world
//Подготавливаем наш запрос SELECT
$query="SELECT * FROM people WHERE people.age<20";
//Отправляем запрос в базу
$result=mysql_query($query,$dblink);
//Функция mysql_query отправляет запрос $query по указателю $dblink на базу.
//Обрабатываем результат
while ($man=mysql_fetch_array($result))
//Функция mysql_fetch_array обрабатывает результат, занося по строчке из него в ассоциативный массив $man по полям, которые называются так же, как заголовки столбцов в MySQL
{
 echo "Name = ".$man['name']." Age= ".$man['age']."<br>";//выводим каждую строчки из результата на экран
};
?>
</body>
<html>
Сохраняем этот файл как testquery.php и переходим браузером по адресу http://your_host_name/testquery.php
Все готово) Apache запускает PHP скрипт, и тот выводит нам внутри вашей веб-страницы содержимое таблицы MySQL.