Uncategorized

Записать файл в шару с помощью perl

Возникла у меня задача: необходимо из perl скрипта, который работает на linux машине создать файл в windows шаре. Нет никаких проблема заранее примонтировать шару к файловой системе, а потом уже просто записывать файл.

В моем случае, мне необходимо писать в большое количество разных сетевых папок, заранее не зная в какую. В этом случае я счел нецелесообразным монтировать все эти шары и стал искать средство попроще.

Я практически сразу получил ответ на свой вопрос в списке рассылке moscow.pm — нужно использовать Filesys::SmbClient (Андрей Костенко, большое спасибо).

Мне далеко не сразу удалось справится с инсталляцией этого пакета, но в конце-концов все получилось. Чтобы не забыть, как я это делал, я отписываю этот пост.

Итак, есть сервер с debian 5.0. Нужно поставить на него perl модуль Filesys::SmbClient.

В самом начале проверяем, что есть все необходимое для сборки модуля:
sudo apt-get install libc6-dev g++ gcc

Для установки модуля необходимо поставить некоторые библиотеки:
sudo apt-get install libsmbclient-dev

Дальше, в теории, нужно вот так ставить модуль:
sudo cpan -i Filesys::SmbClient

Но у меня так не получилось =( Поставил вручную.

Для начала скачиваю:
wget http://search.cpan.org/CPAN/authors/id/A/AL/ALIAN/Filesys-SmbClient-3.1.tar.gz

Разархивирую:
tar xvfz Filesys-SmbClient-3.1.tar.gz

Дальше:
perl Makefile.PL

На вопрос “где можно найти libsmbclient.h” отвечаю дефолтным ответом: /usr/include

На вопрос “где можно найти libsmbclient.so” так же отвечаю дефолтным ответом: /usr/lib

Тесты пройти у меня не получилось, но сам модуль работает, поэтому на вопрос Do you want make tests? нужно ответить no. Вопрос “Compile module with trace to STDERR ?” оставляем по дефолту в no.

Дальше делаем make, после этого делаем sudo make install (Вообще, обычно между make и sudo make install делается еще и make test, но у меня тесты этого модуля совсем не проходились).

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

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

#! /usr/bin/perl

use POSIX;
use Filesys::SmbClient;

my $smb = new Filesys::SmbClient( debug => 0 );

# Write a file
my $fd = $smb->open(”>smb://192.168.1.1/share/test.txt”, 0666)
or die “Can’t create file:”, $!, “\n”;
$smb->write($fd, “A test of write call\n”)
or die $!,”\n”;
$smb->close($fd);

В том случае, если нужно вводить имя пользователя, то говорим вот так:

my $smb = new Filesys::SmbClient( username => "user", password =>"password", debug => 0 );

Tags: ,

Monday, June 29th, 2009 Uncategorized Comments Off

Конференция TEDx Moscow

В воскресенье был на конференции TEDx Moscow. Вот доклады, которые мне понравились, когда будет видео пересмотрю + всем рекомендую посмотреть:

  • Леонид Володарский: «Практика перевода: что нужно, чтобы стать переводчиком»
  • Леонид Фейгин: «Антропологическая основа брендинга»
  • Екатерина Храмкова: «Почему „Экономика участия” требует от нас изменения сознания»
  • Михаил Кожаринов: «Создание неформальных сообществ»
  • Давид Ян: «Флешмобы, акционизм и искажение социо-коммуникативного пространства»

PS Я не присутствовал на первых пяти докладах, возможно там тоже было что-то хорошее.

Tags: ,

Monday, May 25th, 2009 Uncategorized Comments Off

Мой доклад на конференции YAPC

Уже завтра (точнее, уже даже почти сегодня) я выступаю с докладом на конференции по языку программирования Perl — YAPC (”Yet Another Perl Conference”). Я выступаю в разделе блиц докладов. Блиц доклады — это выступления, где каждому человеку отводится всего 5 минут на доклад. После четвертой минуту звучит предупреждающий сингал (у нас это треугольник, на западе используется гонг), после пятой минуты нужно вставать и уходить, не важно, все ли ты рассказал или не успел.

Главный по блиц-докладам у нас в России — Алексей Капранов. Если я ничего не путаю, то впервые блицы появились в России год назад, на прошлой конференции YAPC, а после этого разошлись и по другим ИТ конференциям.

Я выступаю с докладом со страшным названием “Создание системы мониторинга инфраструктуры с помощью Test::More”. Я написал его в стиле Такахаши (опять отдельное спасибо Алексу, это он рассказал всем про этот способ писать презентации). Метод Такахаши по написанию презентаций — это когда на одном слайде всего лишь несколько слов, в идеале одно слово или один символ. Господину Такахаиши, по имени которого назван этот способ, конечно, гораздо проще пользоваться своим методом (иероглифы гораздо более компактны), но и на русском можно писать в этой стилистике.

Для моего доклада я подготовил 120 слайдов. За 5 минут презентации это получается один слайд в 2.5 секунды. На френдфиде удачно пошутили, что еще чуть-чуть и будет кино.

Tags:

Friday, May 15th, 2009 Uncategorized 2 Comments

Новый релиз системы мониторинга bmon (v2)

В конце марта, в качестве небольшой эксперимента я написал крохотную и очень простую систему мониторинга. Про нее я отписывал на своем блоге.

Совершенно неожиданно (но приятно неожиданно) эта штука прижилась у меня. Я потихонечку доработываю эту систему и сегодня релизю новую версию. Версия v.2. Основное нововведение — стало отображатся, сколько часов прошло с момента обнаружения сбоя.

Вот пример, какой отчет могли бы получить в корпорации Umbrella, если бы они использовала мою систему:

bmon-002

Архив с системой доступен по ссылке: http://bessarabov.ru/nano/bmon-002.zip (36 кб).

Tags: ,

Friday, April 17th, 2009 Uncategorized Comments Off

Учеба иностранного языка по сериалам

В последнее время, я достаточно много смотрю разных англоязычных сериалов. Я просмотрел их все старые серии и, с нетерпением, жду выхода новых серий. Обычно я смотрю их с субтитрами (south park я еще могу смотреть без субтитров, а вот house md — уже нет).

Цель от просмотра сериалов (кроме, конечно же, простого получения удовольствия от просмотра) — to perfect my english. Честно говоря, не могу сказать, что это как-то хорошо получается делать — вроде как и слушаю английскую речь, но много новых слов от этого я не выучил.

Сегодня во френдфине прочитал хорошую идею. Смысл идеи в том, чтобы посчитать частоту употребления слов в файле субтитров и топовые слова учить. Идея мне очень понравиалсь, так что я по быстрому взял и сделал крохотную системку, в которую можно загрузить файл с субтитрами и она выдаст частоту использования слов. Программка совершенно элеметнаярная и с кучей недостатов, но с одним очень большим достоинством: она работает.

Системку я написал исключительно для себя, но буду очень рад, если кому-нибудь еще она пригодится.

Итак, еще раз — вот ссылка: Частота слов в файле субтитров.

Tags: ,

Monday, April 13th, 2009 Uncategorized 1 Comment

Случайное совпадение

Выбирал hostname машины, на которой будет находится трак и свн. Хотел выбрать название из древнегреческих богов(пытался найти бога памяти), не нашел. Следующая идея — нужно сервер назвать как один из спутников Юпитера. Первый спутник Юпитера - Метида назван в честь древнегреческой богини мудрости Метиды, первой супруги Зевса. =)

Tags: , ,

Friday, April 3rd, 2009 Uncategorized Comments Off

Система мониторинга серверов и сайтов с помощью тестов perl на iPhone

Есть такие мега штуки, как возможность написе unit тестов на perl, а так же не фреймворк iui, коорый позволяет делать html страницы с нативным интерфейсом айфона. К сожалению, про эти вещи я узнал не так давно, как бы мне хотелось (посыпаю голову пеплом). Я некоторое время думал, где-то применить их и тут подвернулась подходящая задачка (Кроме этого есть еще и чудестный бесплатный набор иконок, котороый я тоже тут заиспользовал).

У меня достаточно большая сетевая инфраструктура на работае + есть несколько машин дома. Я бы хотел иметь возможность, находясь где-то в пути проверить, что сейчас работает, а что нет. У меня есть всякие системы системы мониторинга, .но для их нормального использования мне нужно сидеть за компьютером. Я хотел сделать нечно простое, что просто показывает, что on, а что off. У меня есть iPhone и я решил, что вполне логично сделать нечно для него.

Таким образом родился крохотный проект — bmon — bessarabov’s monitoring system.

Эта штукенция состоит из 2-х частей:

  • система мониторинга — запускатеся по crontab выполняет все perl тесты, определяет, что не работает и записывает в файл
  • система отображения — perl cgi-bin скрипт, который на основе файлов с результатами работоты тестов формирует html страницу

Не отходя от кассы, вот ссылка на bmon.zip.

В архиве есть дока, там я понятно (я старался) написано, как запускать эту штуку + весь код (там всего ничего) так же достаточно подробно закомментирован.

Хочу подчеркнуть, что это не идеальное творение, но для моих целей подходит идеально =)

Вот пример, как я исползую perl тесты, для проверки:


# Если гугл не пигуется, значит интернет сломался
ok (ping(host => “google.com”, count => 3, size => 1024, timeout => 3 ), “internet is down”);

# Проверяем, работает ли сайт (в случае, если все нормально должен получить статус 200)
$mech->get( “http://example.com” );
is($mech->status(), 200, “example.com is down”);

А вот несколько синшотов:

img_0001

img_0002

img_0003

img_0006

img_0007

Еще раз ссылка на эту программу.

Буду рад, если вам эта штуку пригодится, и вдвойне буду рад за любой feedback =)

Tags: , , ,

Tuesday, March 24th, 2009 Uncategorized 1 Comment

Подключение по ssh с x11 forwarding по умолчанию

Я очень часто подключаюсь к разным линукс машинам с помощью вот такой команды:

ssh host -X -C

  • -X — включается проброска x11 трафика
  • -C — осуществляется сжатие трафика

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

Вообщем, мне надоело каждый раз вводить параметры, и я решил один раз разобраться, как сделать так, чтобы это все было по умолчанию. Ответ нашелся в man 5 ssh_config. Всего-то нужно создать файл ~/.ssh/config, следующего содержания:

ForwardX11 yes
Compression yes

UPDATE 24.03.2009 — изначально я писал, что в файл ~/.ssh/config стоит писать так же CompressionLevel 9, но это неправильно. Вот фрагмент man ssh: Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks. . Действительно, с этой настройкой работает медленее, так что ее лучше не указывать.

Tags: , ,

Sunday, March 22nd, 2009 Uncategorized Comments Off

С днем рождения, меня =)

Сегодня, 20 марта, точно так же как и в прошлом году, у меня день рождения. 27 лет.

Friday, March 20th, 2009 Uncategorized 2 Comments

Список подарков

В связи с приближающимся моим днем рождением (уже завтра, 20-ого), актуализировал свой wishlist — http://hachoo.ru/users/bessarabov/ =)

Thursday, March 19th, 2009 Uncategorized Comments Off