LINUX.ORG.RU

Сообщения nervouselectronic

 

Запустить Hessian сервлет в Jetty контэйнере

Изначально задача стояла следующая:
есть два хоста и они должны с легкостью обмениваться между собой данными в обоих направлениях, причем реализация должна быть наиболее простой с точки зрения архитектуры. Я выбрал Hessian протокол
[url]http://www.caucho.com/hessian/.[/url] Это простой в установке и настройке сервис.
Клиент может быть stand alone, а сервер в виде сервлета - ставиться в сервлет контейнер. Но связь нужна такая чтобы по сети работали два автономных приложения через сеть - если же поставить на одну сторону Hessian Server например в Tomcat то он окажеться изолированным от stand-alone приложения с которым нужно связываться, т.е. нужно бы вызывать удаленно методы классов этого приложения, но такого не получиться, т.к. HessianServer стоит отдельно. Тогда возникает следующая мысль - если в само приложение встроить контейнер, в него установить Hessian Server, тем самым обеспечив однородную среду классов и методов. Такое решение есть - Jetty.
[url]http://jetty.mortbay.org/index.html[/url]
Я изучил документацию и написал следующий код:
[CODE]import org.mortbay.jetty.Server;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.ServletHolder;

public class MinimalServlet {
public static void main(String[] args) throws Exception {
Server server = new Server();
Connector connector=new SocketConnector();
connector.setPort(8888);
server.setConnectors(new Connector[]{connector});

ServletHandler handler=new ServletHandler();
handler.addServletWithMapping("com.caucho.hessian.server.HessianServlet", "/hello");
ServletHolder holder = handler.getServlet("com.caucho.hessian.server.HessianServlet");
holder.setInitParameter("home-class", "service.BasicService");
holder.setInitParameter("home-api", "service.Basic");
server.setHandler(handler);

server.start();
server.join();
}
}[/CODE]
При запуске вроде бы все происходит нормально - в консоль пишет:
[CODE]2007-08-06 18:58:53.920::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2007-08-06 18:58:53.998::INFO: jetty-6.1.5
2007-08-06 18:58:53.186::INFO: Started SocketConnector@0.0.0.0:8888[/CODE]
Но при запросе в браузере выдает следующее
[CODE]
HTTP ERROR: 500

INTERNAL_SERVER_ERROR

RequestURI=/hello

Powered by jetty://
[/CODE]
И пишет в консоль:
[CODE]2007-08-06 18:58:53.920::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2007-08-06 18:58:53.998::INFO: jetty-6.1.5
2007-08-06 18:58:53.186::INFO: Started SocketConnector@0.0.0.0:8888
2007-08-06 18:59:02.181::WARN: Nested in javax.servlet.ServletException: init:
java.lang.StackOverflowError
at java.util.HashMap.get(HashMap.java:343)
at org.mortbay.jetty.servlet.Holder.getInitParameter(Holder.java:114)
at org.mortbay.jetty.servlet.ServletHolder$Config.getInitParameter(ServletHolder.j ava:530)
at javax.servlet.GenericServlet.getInitParameter(GenericServlet.java:117)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:187)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:300)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:194)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:300)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:194)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:300)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:194)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:300)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:194)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:300)
at com.caucho.hessian.server.HessianServlet.init(HessianServlet.java:194)[/CODE]
Т.е. на [url]http://localhost:8888/hello[/url] по идее должен работать Hessian Server.
Хотя тот же самый сервлет, установленный на моей машине на Tomcat выдает:
[CODE]Hessian Requires POST[/CODE]
И соответственно работает клиент.
Помогите разобраться в этой проблеме?

nervouselectronic
()

firewall и FTP passive mode

Здравствуйте.

Прописал следующие правила: #!/bin/sh /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z /sbin/iptables -P INPUT DROP /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset /sbin/iptables -A INPUT -m state --state INVALID -j DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset /sbin/iptables -A OUTPUT -m state --state INVALID -j DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset /sbin/iptables -A FORWARD -m state --state INVALID -j DROP /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT /sbin/iptables -t mangle -F /sbin/iptables -t mangle -X /sbin/iptables -t mangle -Z /sbin/iptables -t mangle -P PREROUTING ACCEPT /sbin/iptables -t mangle -P OUTPUT ACCEPT /sbin/iptables -t mangle -P INPUT ACCEPT /sbin/iptables -t mangle -P FORWARD ACCEPT /sbin/iptables -t mangle -P POSTROUTING ACCEPT /sbin/iptables -t nat -F /sbin/iptables -t nat -X /sbin/iptables -t nat -Z /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P OUTPUT ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT

После этого FTP passive mode стал недоступен. В чем может быть дело?

nervouselectronic
()

Обновление SpamAssassin

Доброго времени суток.
На системе RedHat EL 4 установлен следующий пакет spamassassin:
rpm -qa| grep spam
spamassassin-3.0.6-1.el4
разумеется что обновлять spamassassin тоже нужно из rpm пакета.
т.е. качаем с
http://spamassassin.apache.org/downloads.cgi?update=200707251349 свежую
версию
# wget
http://www.sai.msu.su/apache/spamassassin/source/Mail-SpamAssassin-3.2.2.tar.gz
затем делаем rpm пакет, так как написано в документации на том же сайте
# rpmbuild -tb Mail-SpamAssassin-3.2.2.tar.gz
Выполняется(%prep): /bin/sh -e /var/tmp/rpm-tmp.52451
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf Mail-SpamAssassin-3.2.2
+ /usr/bin/gzip -dc /root/Mail-SpamAssassin-3.2.2.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd Mail-SpamAssassin-3.2.2
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Выполняется(%build): /bin/sh -e /var/tmp/rpm-tmp.52451
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd Mail-SpamAssassin-3.2.2
+ LANG=C
+ export LANG
+ unset DISPLAY
+ CFLAGS='-O2 -g -pipe -m32 -march=i386 -mtune=pentium4'
+ export CFLAGS
+ /usr/bin/perl Makefile.PL PREFIX=/usr SYSCONFDIR=/etc
DESTDIR=/var/tmp/spamassassin-root
What email address or URL should be used in the suspected-spam report
text for users who want more information on your filter installation?
(In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system] the administrator of that
system

NOTE: settings for "make test" are now controlled using "t/config.dist".
See that file if you wish to customise what tests are run, and how.

checking module dependencies and their versions...

***************************************************************************
ERROR: the required HTML::Parser (version 3.43) module is installed,
but is not an up-to-date version. at
lib/Mail/SpamAssassin/Util/DependencyInfo.pm line 293.


HTML is used for an ever-increasing amount of email so this dependency
is unavoidable. Run "perldoc -q html" for additional information.


***************************************************************************
NOTE: the optional Mail::SPF module is not installed.

Used to check DNS Sender Policy Framework (SPF) records to fight email
address forgery and make it easier to identify spams. (This is preferred
over Mail::SPF::Query.)


***************************************************************************
NOTE: the optional Mail::SPF::Query module is not installed.

Used to check DNS Sender Policy Framework (SPF) records to fight email
address forgery and make it easier to identify spams. (Mail::SPF is
preferred instead of this module.)


***************************************************************************
NOTE: the optional IP::Country module is not installed.

Used by the RelayCountry plugin (not enabled by default) to determine
the domain country codes of each relay in the path of an email.


***************************************************************************
NOTE: the optional Razor2 (version 2.61) module is not installed.

Used to check message signatures against Vipul's Razor collaborative
filtering network. Razor has a large number of dependencies on CPAN
modules. Feel free to skip installing it, if this makes you nervous;
SpamAssassin will still work well without it.

More info on installing and using Razor can be found
at http://wiki.apache.org/spamassassin/InstallingRazor .


***************************************************************************
NOTE: the optional Net::Ident module is not installed.

If you plan to use the --auth-ident option to spamd, you will need
to install this module.


***************************************************************************
NOTE: the optional IO::Socket::INET6 module is not installed.

This is required if the first nameserver listed in your IP
configuration or /etc/resolv.conf file is available only via
an IPv6 address.


***************************************************************************
NOTE: the optional IO::Socket::SSL module is not installed.

If you wish to use SSL encryption to communicate between spamc and
spamd (the --ssl option to spamd), you need to install this
module. (You will need the OpenSSL libraries and use the
ENABLE_SSL="yes" argument to Makefile.PL to build and run an SSL
compatibile spamc.)


***************************************************************************
NOTE: the optional Compress::Zlib module is not installed.

If you wish to use the optional zlib compression for communication
between spamc and spamd (the -z option to spamc), you need to install
this module.


***************************************************************************
NOTE: the optional Mail::DomainKeys module is not installed.

If this module is installed, and you enable the DomainKeys plugin,
SpamAssassin will perform Domain Key lookups when Domain Key
information is present in the message headers. (Note that new versions
of Mail::DKIM render this module superfluous.)


***************************************************************************
NOTE: the optional Mail::DKIM module is not installed.

If this module is installed, and you enable the DKIM plugin,
SpamAssassin will perform DKIM lookups when a DKIM-Signature
header is present in the message headers. (New versions of this module
support both Domain Keys and DKIM, rendering Mail::DomainKeys obsolete.)


***************************************************************************
NOTE: the optional Archive::Tar (version 1.23) module is not installed.

The "sa-update" script requires this module to access tar update
archive files.


***************************************************************************
NOTE: the optional IO::Zlib (version 1.04) module is not installed.

The "sa-update" script requires this module to access compressed
update archive files.


***************************************************************************
NOTE: the optional Encode::Detect module is not installed.

If you plan to use the normalize_charset config setting to detect
charsets and convert them into Unicode, you will need to install
this module.

REQUIRED module out of date: HTML::Parser
optional module missing: Mail::SPF
optional module missing: Mail::SPF::Query
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Compress::Zlib
optional module missing: Mail::DomainKeys
optional module missing: Mail::DKIM
optional module missing: Archive::Tar
optional module missing: IO::Zlib
optional module missing: Encode::Detect

warning: some functionality may not be available,
please read the above report before continuing!

ошибка: Неверный код возврата из /var/tmp/rpm-tmp.52451 (%build)


Ошибки сборки пакетов:
Неверный код возврата из /var/tmp/rpm-tmp.52451 (%build)

Т.е. не хватает видимо перечисленных модулей, где их найти и как установить? И нужно ли что либо еще для того чтобы собрать пакет для SpamAssassin и обновить существующую версию до свежей с помощью
# rpm -Uhv ...

nervouselectronic
()

Обновление php на работающей системе

Доброго времени суток.
Проблема такая:
Есть сервер RedHat EL 4, на нем стоит httpd-2.0.52
# php -v
PHP 4.3.9
все посталено было из rpm пакетов.
Нужно обновить php до свежей версии, желательно до 5.2.3. Причем обновить с сохранением работоспособности системы (я не имею ввиду даун тайм - без него не обойтись). Обновлять из rpm пакета с помощью -Uhv засада - вылазит очень много зависимостей, которые цепляются за другие зависимости. У меня была ситуация такая но мне пришлось полноситью сносить практически все пакеты и устанавливать их более новые версии из за одного только Apache. Но там установка была свежая и можно было делать все что угодно. Здесь же такого не осуществить. Говорят как то можно ловко обновить php не повредив систему и без особых усилий.
Посоветуйте!!!

nervouselectronic
()

Максимальное количество запросов MySQL и Apache

Доброго времени суток всем!
Каким образом можно узнать следующие параметры для MySQL и Apache:
1) Максимальное количество подключений в единицу времени.
2) Максимальное количество сессий.
3) Максимальное количество транзакций или запросов.
Какие есть параметры отвечающие за пиковые нагрузки на MySQL или Apache?
И каким образом их можно изменить?

nervouselectronic
()

Взаимодействие Java приложений с PHP скриптами через сеть

Доброго времени суток всем!!!
Посоветуйте как можно реализовать взаимодействие Java приложения с PHP скриптами через сеть.
Если уточнить задачу то нужно из Java приложения удаленно запускать скрипты PHP, запускать удаленно функции и передавать им параметры.
Я понимаю что есть XML-RPC, NuSOAP, SOAP, Hessian - все реализации которые я видел - клиентская и серверная часть на PHP, безусловно, вся работа в сети по этим технологиям идет через стандартный XML. Т.е. можно взять уже реализованную серверную часть на PHP а клиентскую написать самому на Java.
Но может все таки есть что то более проще - а именно готовое решение, которое позволит связать два приложения через сеть на Java и PHP.

nervouselectronic
()

Правила iptables для FTP passive mode

Посоветуйте как написать правила для того чтобы FTP passive mode работал нормально. Исходя из политики по умолчанию DROP.

nervouselectronic
()

Как правильно завести Xming

Доброго времени суток всем.
Есть удаленная Linux машина на Red Hat EL 4. Есть PC под виндой. Нужно удаленно рулить Mozilla и т.п. На этом форуме мне посоветовали Xming, который благополучно скачал
Запускаю XLaunch --- Выбираю One Window --- выбираю Start program --- Выбираю Using PuTTY (plink.exe) и набираю тут соответственно ip удаленной машины, логин и пароль (я набирал рутовый) --- в следующем окне все оставляю по умолчанию, т.е. отмечаю крыжек "Clipboard" и все сотальные поля оставляю пустыми --- в следующем окне жму кнопку готово после чего открывается окно Xming в котором появляется командная строка и всю остальную часть окна Xming занимает серый сетчатый фон. Т.е. видно что все подключилось, но хотелось бы увидеть рабочий стол удаленной системы.
Подскажите пожалуйста как это сделать.

nervouselectronic
()

Проблема с Xming

Доброго времени суток всем.
Установил Xming, вроде все натсроено, запускаю - получаю только серое окно крестом курсором и больше ничего не происходит.
В чем проблема?

nervouselectronic
()

Как удаленно юзать Mozilla?

Доброго времени суток всем!!!
Есть удаленная тачка - на ней стоит GNOME и X.
Можно ли как то удаленно юзать на этой удаленной тачке Mozilla?

nervouselectronic
()

Настройка маршрутизации между локальной и внешней сетью

Поставлена следующая задача.

Есть локальная сеть. В локальной сети есть рабочая станция с внутренним ip например 192.168.0.100
Есть сервер который через eth0 открыт во внешнюю сеть и через eth1 во внутреннюю.
Нужно чтобы пакеты приходящие на сервер на порт 1094 форвардились на рабочую станцию во внутренней сети на тот же порт и чтобы работало все в обратную сторону.

Для этого я написал несколько правил

Условно:
ip сервера внешний: 1.2.3.4
ip сервера внутренний: 192.168.0.1
ip рабочей станции 192.168.0.100
порт например 1094

сначала для входящих пакетов (из внешней сети на сервер и потом на локальную рабочую станцию)

iptables -t nat -A PREROUTING -i eth0 -d 1.2.3.4 -dport 1094 -j DNAT --to-destination 192.168.0.100:1094

iptables -t nat -A POSTROUTING -o eth1 -d 192.168.0.100 -dport 1094 -j SNAT --to-source 192.168.0.1

потом для исходящих (с рабочей станции в локальной сети на сервер)

iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.100 -sport 1094 -j DNAT --to-destination ... (непонятно как запомнить тот ip внешний который был в начале)

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.100 -sport 1094 -j SNAT --to--source 1.2.3.4

Помогите в этом вопросе!!!

nervouselectronic
()

Не работает функция mysql_pconnect()

Доброго времени суток всем!
Проблема следующая.

На сервере Fedora Core 5 стоит Apache 1.3.37 MySQL 5.0.37 PHP 5.2.1
Функция mysql_connect() работает а при использовании функции
mysql_pconnect() вылазит error:
PHP Fatal error: Call to undefined function mysql_pconnect()

Посоветуйте как решить эту проблему?

nervouselectronic
()

Tripwire и файлы для пристального надзора

Стоит RedHat4, Tripwire 2.3.1. Поставил полиси по умолчанию, какие файлы не найдены - убрал. Возникает вопрос - и всё, смотреть отчеты и пристально бдить? Надо правильно сконфигурировать полиси? - хорошо. А как? Где можно найти информацию о том какие файлы надо обязательно наблюдать, а на какие можно всецело забить?

nervouselectronic
()

MaxDB. Востановление БД из бэкапа.

Доброго времени суток! Поставил в Линуксе RedHat4 МахDB версии 7.5 Complete Software Packages. Имеется файл бэкапа базы данных, который надо востановить в установленной "чистой" системе. Многочисленное упорное вдумчивое чтение документации не привело к нахождению ответа на вопрос, как это сделать. Подскажите, пожалуйста, решение этой задачи.

nervouselectronic
()

Чудеса с командой du

Создаю папку /home/aaa в ОП RedHat 4. В этой дирректории расположен единственный текстовый файл asa размером файла 217 байт. Результат команды " du -hb --apparent-size /home/aaa/asa" такой: "217 /home/aaa/asa". Команда "du -hb --apparent-size /home/aaa" сообщает следующее: 4313 /home/aaa". Почему 4313, а не 217? И если команда du неподходящая, какой лучше воспользоваться для определения размера папки?

nervouselectronic
()

Как сделать набор необходимых RPM пакетов

Доброго времени суток.
Делаю шаблон гостевой OS redhat-as4 под Virtuozzo, для того чтобы это сделать нужно сделать репозиторий rpm пакетов.
Так вот - VPS который будет держаться на этом template должен выполнять только роль LAMP веб-сервера (Apache MySQL PHP).
Есть пачка rpm пакетом с оригинального дистрибутива Red Hat EL4, нужно из этой пачки выбрать только те которые необходимы для организации LAMP сервера - ну и разумеется некоторые стандартные пакеты без которых трудно жить (cron, syslog, ...)
Как вы посоветуете это сделать, причем нужно учесть все зависимости и чтобы набор был только необходимого, не больше.

nervouselectronic
()

Что держит порт 6009

Сканирую nmap -sT и получаю ... 6009/tcp open X11:9 ...

Залажу на сканируемый сервак и делаю так # netstat -ln -p tcp 0 0 :::6009 :::* LISTEN 2129/X

Понятно что какой то desktop процесс

Посоветуйте как убить эту шнягу.

nervouselectronic
()

Модули iptables

Как узнать список iptables модулей доступных в системе? Дистрибутив RedHat EL 4. Ведь далеко не все модули при прописывании в iptables-config будут подгружаться при перезагрузке iptables.
И как можно установить какой либо модуль, например geoip?
Я понимаю что есть документация и я её освоил
http://people.netfilter.org/~peejix/geoip/howto/geoip-HOWTO-2.html
но неужели нельзя на уже работающей системе, без переустановки, поставить модуль iptables который нужен?

nervouselectronic
()

как указывать в правилах iptables диипазон ip

Подскажите новичку как указывать в правилах iptables именно диапазон ip и диапазон портов, для этого нужно использовать те же ключи -s -d -sport
-dport или какие-то другие?

nervouselectronic
()

Что висит на порте 32769

Сканирую Nmap сервак и получаю вот это:
# nmap -sS -p 1-65535 192.168.0.1
...
PORT STATE SERVICE
22/tcp open ssh
32769/tcp open unknown
С 22 все очевидно, а что может висеть на 32769.
Захожу на сканируемый сервак и делаю следующее.
# netstat -ln -p
tcp 0 0 0.0.0.0:32769 0.0.0.0:* LISTEN 9021/rpc.statd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 9021/rpc.statd

Та жа самая шняга держит порт 32768 по UDP.

Тогда решил посмотреть в процессах и получил:
# ps auwex |grep -w 9021
rpcuser 9021 0.0 0.0 2572 724 ? Ss Jun11 0:00 rpc.statd SELINUX_INIT=YES CONSOLE=/dev/pts/0 TERM=linux INIT_VERSION=sysvinit-2.85 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin RUNLEVEL=5 runlevel=5 PWD=/ LANG=C PREVLEVEL=N previous=N HOME=/ SHLVL=2 _=/sbin/initlog
root 2432 0.0 0.0 3512 548 pts/1 S+ 16:44 0:00 grep -w 9021 HOSTNAME=vz1.rtcomm-sibir.ru TERM=xterm SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=81.176.33.35 1495 22 SSH_TTY=/dev/pts/1 USER=root LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;0 1:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.b tm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31: *.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:* .bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;3 5:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: KDEDIR=/usr MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/ bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root LANG=C SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root LOGNAME=root SSH_CONNECTION=81.176.33.35 1495 195.189.89.12 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/grep

nervouselectronic
()

RSS подписка на новые темы