LINUX.ORG.RU

Избранные сообщения disarmer

Выполнить действие перед размонрированием разделов

Форум — Desktop

Хочу вынести кое-какую директорию на tmpfs(/dev/shm) и перед выключением системы (до того как диски размонтировались) копировать данные с tmpfs на постоянный раздел. Я как понимаю этот самый момент перед размонтированием нужно ловить через systemd? Но не получается нагуглить таргет, перед которым нужно запустить сервис, единственное что нашел это «umount.target», но судя по всему это уже финальная стадия и если в сервисе указать: «Before=umount.target»

то есть шанс попасть уже на размонтированное устройство. Как правильно реализовать? Да и всё происходит на Arch, если это важно.

 ,

ReanGD
()

nginx deny

Форум — Admin

Подскажите, как в nginx забанить сеть ip адресов, к примеру с 123.0.0.1 по 170.9.0.1?

 

Roman_S
()

regexp-ы в perl для работы с русскими буквами в юникоде — как?

Форум — Development

UPDATE: видимо ответ — это http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-b... поэтому отмечаю задачу как решенную; но если кто-то хочет дополнить или исправить то-что-по-ссылке — welcome (в частности, пока что не выяснилось, как чекнуть файл на соответствие utf8) _____________________________________________________________________

проблема в том, что 0xD0, которое префикс русской буквы, съедается, и получается бред:

20 20 20 B1  D0 B0 D0 B7  D0 B5 20 D1  82 D0 B8 D0

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

в консоли:

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

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

можно, в принципе, конвертнуть все в CP1251 (сразу насчет КОИ-8: там [а-я] емнип не даст русский алфавит), но хотелось бы оставаться в юникоде

попытка подать перлу -C7 привела к тому, что он начал бредить постоянно, а не точечно, как сейчас

 , ,

www_linux_org_ru
()

Syncthing 0.8.13 — программа для синхронизации и резервного копирования.

Новости — Интернет
Группа Интернет

Тихо и незаметно состоялся очередной выпуск Syncthing — открытой кросслатформенной программы для синхронизации и резервного копирования. По своим возможностям она аналогична BitTorrent Synс: заявлена синхронизация файлов между узлами в P2P-сети без участия сервера. Для этого используется собственный открытый протокол BEP («Block Exchange Protocol»).

Возможности программы:

  • Синхронизация директорий и файлов по дате последнего изменения (пока без поддержки версионности).
  • Поддержка синхронизации на уровне блоков. При маленьком изменении в большом файле будет синхронизироваться лишь изменившаяся часть.
  • Возможность явно указать, каким узлам будет доступна синхронизируемая директория.
  • Опция «master-slave», благодаря которой другие узлы будут лишь синхронизироваться с данной директорией, но не смогут изменять её содержимое.
  • Управление через отзывчивый веб-интерфейс.
  • Кроссплатформенность. Поддерживаются операционные системы Linux, Mac OS X, Windows, FreeBSD и Solaris. Существует неофициальный клиент для Android.
  • Одинаково хорошая работа в пределах LAN и через Интернет.
  • Безопасность и приватность. Данные хранятся на клиентских машинах, не требуется взаимодействие со сторонним сервером. Поддерживается TLS.
  • Каждый узел в сети идентифицируется по стойкому сертификату.
  • Открытый исходный код приложения и открытый протокол.

Изменения в версии 0.8.13

  • Возможность настроить отображение даты и времени в логах.
  • Корректная обработка спецсимволов в именах файлов на платформе Windows.
  • Более понятные индентификаторы репозиториев и узлов.
  • Исправления в CSS для корректного отображения на небольших экранах (например, мобильных устройствах).
  • Возможность использования заглавных букв в ID репозитория.
  • Исправлен счётчик количества синхронизированных данных (из-за ошибки он мог принимать отрицательные значения).
  • Обработка ошибок записи при сохранении кеша индексов.
  • Улучшения, связанные с диагностикой XDR.
  • Текстовые файлы в zip-архивах с дистрибутивами перекодированы в формат DOS.
  • В дистрибутивы добавлен файл CONTRIBUTORS, поскольку он упоминается в LICENSE.
  • В процесс обхода дерева директорий добавлены проверки на возникновение ошибок.
  • Автоматическое обновление страницы при переключении веб-интерфейса с http на https.

Доступны готовые сборки под все основные платформы, скриншоты, руководство по быстрому запуску и прочая документация.

>>> Подробности

 , ,

anonymous
()

Awesome и русская расклада.

Форум — Desktop

Возможно ли настроить awesome , дабы шорткаты работали и в русской раскладке?

 

Slack
()

nginx с клиентскими сертификатами: No required SSL certificate was sent

Форум — Development

Делаю по инструкции в виртуалке с дебианом: http://blog.nategood.com/client-side-certificate-authentication-in-ngi

При попытке соединения через курл, nginx говорит, что сертификат не передан:

...
<center><h1>400 Bad Request</h1></center>
<center>No required SSL certificate was sent</center>
...

Конфиг nginx:

server {
	listen 443 ssl;
	server_name localhost 10.64.224.47;

	index index.php;

	ssl_certificate /etc/nginx/cert/server/server.crt;
	ssl_certificate_key /etc/nginx/cert/server/server.nopass.key;
	ssl_client_certificate /etc/nginx/cert/ca/ca.crt;
	ssl_verify_client on;

    location / {
        root           /var/www/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  VERIFIED $ssl_client_verify;
        fastcgi_param  DN $ssl_client_s_dn;
	fastcgi_param  SSL_CLIENT_SERIAL $ssl_client_serial;
	fastcgi_param  SSL_CLIENT_CERT $ssl_client_cert;
        include        fastcgi_params;
    }
}

Если сделать ssl_verify_client optional, то курл заходит, но в PHP переменные $SERVER[«VERIFIED»] NONE и остальные пустые.

В гугле находил тред, где говорилось, что может быть надо клиенту установить CN, но я пробовал пустой, IP сервера, пробовал имя сервера, всё равно приходит No required SSL certificate was sent.

Прошу помощи :)

 , ,

xorik
()

Проблема с кодировками: аргумент командной строки и переменная кодируются по-разному?

Форум — Development

Если передаю perl-скрипту параметр - слово кириллицей, то функция, которая использует этот параметр для поиска, не отрабатывает правильно. Если объявляю внутри скрипта переменную, равную той же строке, которую раньше передавал в качестве параметра и получал shift'ом - всё работает.

Изначально у меня скрипт запускался #!/usr/bin/perl -CS и юзал модуль utf8 («use utf8;»), но я попытался поиграться с этим, убирая то одно, то другое - это ничего не даёт. Всё равно полученное из комадной строки и записанное в теле скрипта на уровне байтовом - совершенно разные значения.

Как избавиться от этой «кириллической» проблемы?

 ,

DRVTiny
()

/MANUAL/ Правильная настройка соединения с PostgreSQL, используя Rose::DB, если данные в Utf8

Форум — Development

Делюсь правильной настройкой базового класса для описания подключения к БД PostgreSQL, используя Rose::DB (да, это Perl), если нужно данные хранить в Utf8.

package My::DB;

use strict;
use warnings;

use Rose::DB;
our @ISA = qw(Rose::DB);

__PACKAGE__->use_private_registry;
__PACKAGE__->register_db(
    domain          => '127.0.0.1',
    schema          => 'my_schema',
    type            => 'session',
    driver          => 'Pg',
    host            => '127.0.0.1',
    database        => 'my_database',
    username        => 'my_user',
    password        => 'my_password',
    connect_options => { 'pg_enable_utf8' => 1 } # ВОТ ЭТО ВАЖНО!!!
);


My::DB->default_domain('127.0.0.1');
My::DB->default_type('session');


1;

Оставляю для потомков. Сам весь инет перерыл и недочитал маны.

 , , , rose,

bvn13
()

Гномопакеты

Форум — Talks

Как хорошо ноутбуку проснуться после суспенда вечерним утром. Загорается KDM, приветливо мигая курсором в строке ввода пароля для юзера. Несколько секунд томительного ожидания, предвкушение новой солнечной ночи с любимым арчем - и вот передо мною уже открывается двухколейная железная дорога с обоев, убегающая в неведомые дали... Старый товарищ, Kwallet, просит пароль. Что-ж - я не могу заставлять его ждать, и удовлетворяю его желание. Одно за другим, неспеша, открываются приложения из автозапуска. Всё оживает, приходит в движение, трей наполняется индикаторами, над курсором запрыгал значок Firefox... Всё живёт. Но почему я печален? Что за тревога беспокоит меня? Что-то изменилось. Я ещё не понимаю что; лишь ощущаю это, каким-то внутренним шестым чувством. Хочется избавиться от тревоги, забыть её, ведь всё в порядке. F1, yakuake, 'pacman -Syu'... На лбу выступает холодный пот, красноватые глаза становятся по-настоящему красными. Мне не показалось. В списке пакетов для обновления я замечаю 'gnome-icon-the...', '3.10...', ещё что-то лишнее, выделяющееся, вопиюще безобразное. Я чувствую, что через мгновение потеряю сознание, земля уходит у меня из под ног. Я в панике озираюсь по комнате, но что это - из-за мебели, из приоткрытой двери, со всех сторон я чувствую на себе пристальный взгляд... Взгляды десятков, сотен маленьких глаз пакетов от гнома. Боковым зрением замечаю крошечный гномопакет, который юркнул из-за тумбочки прямо под стол. Моё сердце бешено колотится, в ушах стучит. Я слабею, не могу больше выдерживать взгляд сотен этих маленьких глаз гномопакетов. За мгновение ещё несколько гномопакетиков прыгают в ноутбук, и я, держа пальцы на клавиатуре, буквально чувствую, как вместе с электронами гномопакетики проникают в мою систему. Я слышу вокруг какофонию из перешёптований и шорохов, и коротеньких глухих шажков сотен гномопакетов... Они окружают меня. Они лезут в стенах, по стенам, по потолку, по проводам, уже цепляются за стол... Счёт идёт на секунды. В висках стучит, трудно дышать. Трясущимися руками я хватаю флешку - я знал, что рано или поздно это всё должно случиться. Там уже записан свежий образ арча. Сердце буквально вырывается из груди, в глазах начинает темнеть, я уже сам не понимаю, что кричу и плачу во весь голос. Меня колотит, я почти не контролирую себя, я вижу как гномопакеты уже десятками запрыгивают в ноутбук, ползут с электронами, и захыватывают мой /... Чудом мне удаётся вставить флешку, заодно сбросив с края стола несколько гномопакетов, уже готовых взобраться на него и броситься в мой /. Нет времени на аккуратность - зажимаю кнопку выключения, зажмуриваюсь... Тишина. Робко приоткрываю один глаз - гномопакеты вокруг меня исчезли. Но они не обманут меня, я знаю, что не меньше сотни их уже залезла в мой /. Главное, что я выдержал их волну. У меня есть передышка. Сейчас я загружусь с флешки, и уничтожу грязное старое, уничтожу этих маленьких пакетотварей, осквернивших мой храм... И завтра загрузится другой арч - свежий и чистый, как утренняя роса, и ни одного gnome-пакета при обновлении. В этот раз я устоял. Но они придут ещё. Они ещё вернутся, вернутся...

 ,

evilmanul
()

IOPS и откуда их взять

Форум — Admin

У меня есть некий серверный софт (допустим localbugtrackingwebsite). Он будет выполняться на виртуалке. Админы требуют предоставить требования на IOPS для этой виртуалки. Есть три пользователя. В среднем создается один баг в день и три пользователя его читают по два раза.

я бы мог написать «обеспечте 0,000042 IOPS», но хотелось бы понять, как написать требование технически обоснованно. То, что админы мудаки с таким требованием - я им уже сказал.

StrongDollar
()

Что нынче есть из реального универсального HA для Linux?

Форум — Admin

Что-то всё что попробовал - не впечатляет вообще.

Дано:
2 одинаковых железки.
1 гостевая система.

Надо:
чтобы гостевая система всегда была доступна и никогда не перезагружалась что бы ни происходило с одной из железок. Железки должны быть абсолютно равноправны - т.е. без разницы что из них сдохло и потом было поднято.

Самое приличное что удалось поднять - Xen+Remus+DRBD. Оно даже работает и даже никто не замечает что одна из тачек сдохла.

Но во-первых, имеются некислые проблемы с версиями ядер которые нужны Xen и DRBD. А во-вторых, есть очень некислые проблемы именно с поднятием умершей тачки - master-master в DRBD работает через задницу, миграция на поднятую машину автоматически не происходит и всё такое. В общем, при подключении второй машины весьма велика вероятность завалить гостя.

Кроме того, DRBD и прочие сильно разочаровали в тесте с выдёргиванием шнурка из винта (эмуляция сдыхания диска) - при этом часто херится содержимое диска и на нетронутой машине.

На самом деле VM не критична, в идеале вообще хотелось бы что-то типа kerrighed но без «головной» машины и чтобы при сдыхании одной ноды процессы c неё прозрачно мигрировали на другую.

В общем, вопрос такой - есть чо?

Stanson
()

nginx: забанить клиента по limit_req

Форум — Admin

гугль предлогает разные велосипеды с использованием fail2ban.

Чем плох вариант

        error_page   503  /ban/one.html;
        location = /ban/one.html {
            fastcgi_pass   YYYYYYYYYY;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME $fastcgi_script_name;
        }
        location /XXXX {
                limit_req   zone=one burst=5 nodelay;
        }

По-умолчанию limit_req дает 503. Его перенаправляем через error_page на fcgi-программу которая добавляет REMOTE_ADDR в какой-нибудь ipset, а в iptables дропает все новые коннекты с адресов из этого набора. ipset в виде хеша с таймаутом.

 , ,

vel
()

Тут кто-то хотел имя поменять

Форум — Talks

http://jsfiddle.net/HNzCQ/32/

Примитивно донельзя, но смешно.
Запускаем (Run), жмем «I want fun», пока не надоест.

Можно улучшать алгоритм, грабить корованы и делиться с ближними.

Upd: Теперь слова выкрикиваются. Так веселее. Буквосочетания хранятся в трех массивах, для начала, середины и конца слова соответственно. С частотными таблицами не заморачивался, потому что это не настолько серьезно.

Upd2: Добавлены интересные буквосочетания.

 ,

shimon
()

Выход нативного клиента для Yandex.Disk

Форум — Talks

Сабж. Пока только консольный, но вполне себе рабочий. При написании использовались православные инструменты- QtCreator, KDevelop и gdb.

Скачать бесплатно и без СМС

Полная новость на швабре: Сами найдете, неохота эту мерзость сюда тащить.

 ,

Akamanah
()

А бывают бинарные библиотеки для Haskell?

Форум — Development

Хочу задать дико неприличный вопрос.

Как распространять в Haskell готовые бинарные библиотеки без исходников?

Крайне желательно, чтобы была интеграция с cabal, поскольку будут зависимости от некоторых пакетов из Hackage DB. Зависимость от версии Haskell Platform и операционки не пугает совершенно.

Это, вообще, возможно? Или там все так сурово, что можно распространять библиотеки только в исходниках?

Пишут, что многие используют Haskell коммерчески, а значит, какое-то решение должно существовать. Пока его не нашел.

Линукс тут при том, что все будет работать на линуксе.

 

dave
()

Что использовать для разбора time string в perl?

Форум — Development

Доброго времени суток.

Сабж. Три момента:

  • DateTime::Format::Strptime крайне тормозной. В 60 ( !!! ) раз медленнее, чем если самому парсить строку и преобразовывать через Time::Local. Притом что я ни разу не программист и никакой оптимизации не делал.

    Через DateTime::Format::Strptime :

    use DateTime::Format::Strptime;
    [...]
            my $strp = DateTime::Format::Strptime->new(
                pattern => '%b %e, %Y %H:%M:%S.%N %Z',
                time_zone => 'local',
            );
    
            my $ut_strp = DateTime::Format::Strptime->new(
                pattern => '%s',
                time_zone => 'local',
            );
            my $start_time = $ut_strp->format_datetime( $strp->parse_datetime($start_time_str) );
            my $end_time = $ut_strp->format_datetime( $strp->parse_datetime($end_time_str) );
    

    time { cat test | ./test_strptime.pl > test2 ; }
    
    real    31m27.591s
    user    20m20.728s
    sys     11m2.277s
    

    через велосипед :

    use Time::Local;
    
    [...]
    
    sub str2ut($) {
        my $time_shift;
    
        $_[0] =~ /^(\S+)\s+(\d+),\s+(\d{4})\s([0-9]{2}):([0-9]{2}):([0-9]{2})\.(\d{9})\s+(\S+)$/ || print "can't decode date $_[0]";
        my ( $month, $day, $year, $hour, $min, $sec, $nsec, $tzone ) = ( $1, $2, $3, $4, $5, $6, $7, $8 );
        my %m=(
            "Jan" => 0, "Feb"=>1,"Mar"=>2,"Apr"=>3,"May"=>4,"Jun"=>5,"Jul"=>6, "Aug"=>7,"Sep"=>8,"Oct"=>9,"Nov"=>10,"Dec"=>11,
            "Янв"   => 0, "Фев" => 1, "Мар" => 2, "Апр" => 3, "Май" => 4, "Июн" => 5, "Июл" => 6, "Авг" => 7, "Сен" => 8, "Окт" => 9, "Ноя" => 10, "Дек" => 11
        );
    
        my $time_shift = 0;
    
        return timelocal($sec,$min,$hour,$day,$m{$month},$year) + $time_shift * 60 * 60;
    }
    
    [...]
            my $start_time = str2ut($start_time_str);
            my $end_time = str2ut($end_time_str);
    
    

    time { cat test | ./test_timelocal.pl > test2 ; }
    
    real    0m25.730s
    user    0m23.097s
    sys     0m2.612s
    
  • Time::Piece пробовал, но заставить его работать не получилось
    Error parsing time at /usr/lib/perl/5.14/Time/Piece.pm line 469, <> line 1.
  • Таскать за собой свои велосипеды не хотелось бы

Пример строки:

Aug  6, 2013 17:03:04.453686000 MSK

 

router
()

Красивый Awesome

Галерея — Скриншоты

Сделал новый дизайн. Учитесь, как надо настраивать Awesome, и Conky.

На скриншоте:

  • Arch Linux
  • Awesome
  • Conky

Шрифты везде Droid Sans (наконец-то я нашел идеальный шрифт)

Скриншот с окнами

>>> Просмотр (1366x768, 948 Kb)

 , ,

heinrich2
()

Разработчик для web

Форум — Job

В компанию занимающуюся разработкой нагруженных web-проектов требуется программист.


Обязанности:

  • проектирование и разработка перспективных проектов
  • развитие существующих проектов


Требования:

  • практические знания веб-инструментария (perl, python, php их библиотек и тд)
  • практические навыки работы с веб-технологиями (apache, nginx, их модули и тд )
  • владение реляционными базами данных, SQL
  • владение ОС linux/bsd, консоль


Предпочтения:

  • опыт в проектах 24x7
  • опыт работы с большими, нагруженными базами
  • опыт perl, postgres
  • владение версткой, java-script


Разное:

  • готовность работать с унаследованным perl, php кодом
  • инструментарий новых проектов обсуждается


О нас:

  • нормальный коллектив
  • творческая свобода, рост
  • удобный график работы
  • полный рабочий день в офисе
  • Москва, м. Владыкино/Петровско-Разумовская.



Заработная плата - ОТ 90 000 рублей



Резюме на job@advego.ru

 , , , ,

dinama
()

Как выдернуть из огромного файла только e-mail адреса?

Форум — Development

Возникла адская задачка. Необходимо распарсить файл бэкапа БД, и выдернуть из него _только_ e-mail адреса. Формат разный, могут быть большие и маленькие буквы, _, -, точки - в общем, все возможные варианты. Адресов много, мусора ещё больше.

Формат БД абсолютно упоротый («Инфокуб», если кому интересно).

Вопрос: как это сделать с помощью perl или есть более удобные средства для этого? Объём файла - 440 мегабайт.

В RTFM не отправлять, спрашиваю потому, что надо сделать в ближайшие пару часов.

 ,

ekzotech
()

Сегодня языку Perl исполнилось 25 лет!

Новости — Open Source
Группа Open Source

25 лет назад, 18 декабря 1987г., программист и лингвист Ларри Уолл выпустил первую версию языка программирования Perl.

>>> Подробности

 , , ларри уолл

VeroLom
()