LINUX.ORG.RU

Сообщения rumgot

 

libreoffice пересохранить файл в другом формате из командной строки

Форум — Desktop

Добрый день.
Имеются файлы *.xlsx (MS Excel)
Мне нужно пересохранить их в *.odf.
Как это делает LibreOffice Calc меня вполне устраивает.
Как в скрипте организовать проход всех файлов я знаю, но вот самой команды для пересохранения одного файла в другой формат НЕТ.
Так вот, можно ли используя LibreOffice в командной строке пересохранить один файл формата xlsx в формат odf?

 

rumgot
()

Где в системе находятся файлы шрифтов Nimbus?

Форум — Desktop

Добрый день
Понимаю, что ламерский вопрос, но все же.
Система Ubuntu 14.04
Подскажите пожалуйста, где в системе находятся файлы шрифтов Nimbus, и в состав какого пакета они входят?

 ,

rumgot
()

debian(ubuntu) /etc/network/interfaces как получать по dhcp только ip без dns

Форум — Admin

Добрый день.
Система ubuntu 14.04 со статической конфигурацией сети.
Настроен openvpn в режиме клиента и при подключении помимо ip данный клиент получает настройку dns.
Т.к. Обычный сетевой интерфейс, смотрящий в локальную сеть настроен на dhcp, то в результате в /etc/resolv.conf оказывается два dns адреса.
Как сделать так, чтобы локальный интерфейс получал по dhcp только ip без dns?

 

rumgot
()

Подскажите что за браузер

Форум — General

Здравствуйте
Вот в этом видео https://www.youtube.com/watch?v=Dlnuu9lRicU на 0:42 запускается браузер kecat web browser
Подскажите, что за браузер такой, может у кого ссылка есть на сайт или исходники?
Гугление результатов не дает.

 ,

rumgot
()

c++ Передать метод одного класса в качестве параметра для метода другого кдасса

Форум — Development

Здравствуйте. C++ . Есть две переменные, одна класса А, вторая класса B. Как бы передать нестатический метод 1 первого объекта в нестатический метод 2 второго объекта в качестве калбэк функции. При этом данная калбэк функция должна иметь доступ к членам своего объекта через this.
Пожалуйста, не отсылайте к гуглу. Перечитал несколько руководств, пока не получается.

 ,

rumgot
()

Boost Asio Определение сервером факта отключения клиента

Форум — Development

Boost Asio Определение сервером факта отключения клиента Добрый день.
Имеется код(некоторые очевидные участки скрыты)

...

void client_session(tcp::socket socket) {
    string st;
    try {
        while(true) {
            cout << "Enter st:" << endl;
            cin >> st;
            socket.write_some(buffer(st));
        }
    }
    catch (exception &e) {
        socket.close();
        cout << e.what() << endl;
    }
}
...

int main() {
    ...
    tcp::socket socket(bService);
    bAcceptor.accept(socket);
    thread th(client_session, move(socket));
    th.join();

    return 0;
}
Короче, запускаю этот «сервер»(:-))
1) Подключаюсь к нему с локального ПК или другого(в контексте данного вопроса не имеет значения) командой:
nc localhost 30055
2) На сервере получаю сообщение «Enter st:», и сразу же после его получения(со стороны клиента, закрываю nc комбинацией CRTL+C);
3) На сервере тем временем продолжает отображаться строка «Enter st:»;
4) На сервере ввожу строку «qwe123», нажимаю ВВОД и далее оператор write_some отрабатыет успешно, исключение не выпадает;
5) На сервере ввожу вторую строку «rty456», нажимаю ВВОД и далее при выполнении оператора write_some выпадает исключение(текст e.what(): «write_some: Broken pipe»);

Также приведу сокращенный лог wireshark во время выполнения данных манипуляций:
Клиент -> Сервер [SYN]
Сервер -> Клиент [SYN, ACK]
Клиент -> Сервер [ACK]
- нажимаю CRTL+C со стороны клиента
Клиент -> Сервер [FIN, ACK]
Сервер -> Клиент [ACK]
- на сервере ввожу первую сроку "qwe123" и ВВОД
Сервер -> Клиент [PSH, ACK] (в данном пакете как раз есть введенная строка "qwe123")
Клиент -> Сервер [RST]
- на сервере ввожу вторую строку "rty456" и ВВОД
- в wireshark больше ничего не добавляется, на сервере выпадает
исключение и соответственно отображается строка "write_some: Broken pipe" (e.what())
Вопросы:
1) Почему исключение не выпадает при первом операторе write_some?
2) Eсть ли какие-то параметры tcp::socket, которые влияют на данное поведение и как их использовать?

 ,

rumgot
()

c++ boost регулярные выражения, получить результат в виде C-строки

Форум — Development

Добрый день, имеется следующий код(используются regex классы и функции из boost regex):

...
regex regexTest("([a-zA-Z0-9]{1,20})\n([a-zA-Z0-9]{1,20})");
cmatch rez; //typedef match_results<const char*> cmatch;
char data[] = "ABC123\nABC456";
regex_match(data, rez, regexTest);
...

Вот примеры получения совпадения, соответствующего первым скобкам:

...
string st1 = rez[1].str();
string st2 = *(rez.begin + 1);
...
Вопрос:
А можно ли как-то из получить результат в виде строки в стиле C, при этом не используя промежуточный string-объект?

 ,

rumgot
()

c++ mutex узнать состояние (заблокирован или нет)

Форум — Development

Добрый день.
Использую std::mutex из c++11
Подскажите пожалуйста, как узнать состояние мьютекса (заблокирован или нет)? Пока единственное, что приходит в голову:

...
std::mutex m;
...
void someThreadFunc() {
    ...
    bool mutexOtherThreadBlock = true;
    bool isLock = m.try_lock();
    if (isLock) {
        mutexOtherThreadBlock = false;
        m.unlock();
    ...
}
...
Но данный способ как-то не очень красив. Может кто знает способ лучше?

 ,

rumgot
()

libboost-system совместимость версий

Форум — Development

Имеется самописное приложение на c++ с использованием boost asio.
Система linux mint 17 x64
Установлены:
libboost-system1.54-dev
libboost-system1.54.0
libboost1.54-dev

Все компилируется, работает(при компоновке передаю g++ параметр -lboost_system). Но вот нужно мне перенести данное приложение на другой компьютер с debian 8 x64, там стоит libboost-system1.55.0. Так вот при запуске моего приложения на данной системе, получаю сообщение об ощибке:
error while loading shared libraries: libboost_system.so.1.54.0: cannot open shared object file: No such file or directory
Вопрос: можно ли как-то заставить приложение использовать другую версию libboost-system (в данном случае libboost-system1.55.0) или единственный вариант перекомпилировать программу под нужную версию libboost-system?

 ,

rumgot
()

c++ переменная типа thread

Форум — Development

Здравствуйте.
Иммеется класс в нем переменная-член с типом thread, т.е. соответствующий участок кода заголовочного файла:

...
private:
   thread th1;
...
Вопрос: как теперь запустить данный поток, т.е. указать для него соответствующую функцию и т.д.
Сразу оговорюсь: я знаю как указывать требуемую функцию при определении переменной класса thread в коде с использованием соотвествующего конструктора, интересует именно как сначала объявить переменную как член класса, а потом в одном из методов запустить данный поток.

 ,

rumgot
()

Стартавать Bind после OpenVPN

Форум — Admin

Здравствуйте.
Имеется сервер Debian 7 x64
На нем работают
Bind 9.8.4
OpenVPN 2.3.2

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

Как бы мне по-элегантнее решить данную проблему?

 ,

rumgot
()

df -h построчно обработать на bash

Форум — General

Здравствуйте.
Как в bash построчно обработать вывод df -h ?
Пробовал так, но не то:

LINES=$(df -h)
for line in $LINES; do
    echo $line
done
Так тоже не то:
LINES=$(df -h)
while read line ; do
    echo $line
done < $LINES

 

rumgot
()

Корневой раздел на lvm-разделе

Форум — General

Здравствуйте.
Есть ли у кого доводы против использования lvm-раздела в качестве корневого, может был отрицательный опыт?
Система ubuntu 14.04 x64, корневой раздел на lvm, пока все работает, при необходимости можно легко раздел увеличить.
Также, при необходимости иметь много установленных linux-систем, использовать данный способ очень удобно.
Вопрос касается как десктопных машин, так и серверов.

 

rumgot
()

VirtualBOX на хостинге/сервере предприятия

Форум — Admin

Здравствуйте.
Сразу оговорюсь, я читал ответы на подрбные вопросы в других источниках. Но хочется свежих мыслей.
1) Почему не принято использовать VirtualBox в качестве серьезного решения для виртуализации масштаба хостинга VPS/VDS или хотя бы предприятия?
2) Чем по-вашему он уступает KVM или Xen(производительность, безотказность, высокий uptime, безопасность, удобство gui/командной строки и т.д.?

 , ,

rumgot
()

QT печать размер страницы

Форум — Development

Здравствуйте. Система linux mint 17 kde x64, Qt5.4.0, для печати используется cups, в котором установлены сетевые принтеры(canon ir2520 и canon mf5940dn), а также локальный принтер samsung clp300 и локальный pdf-принтер.
Имеется такой код в слоте по нажатию кнопки:

QPrinter printer;
QPrintDialog printDialog(&printer, this);
printDialog.exec();

qDebug() << printer.pageLayout();
qDebug() << printer.pageRect(QPrinter::Millimeter);
qDebug() << printer.paperRect(QPrinter::Millimeter);

Я выставляю размер страницы(как показано выше) через диалог.

Если указать размера страницы отличный от A4(скажем A5 или A3, если принтер позволяет) в диалоге настройки принтера, размер страницы не меняется, т.е. получаю вывод такой вывод в операторе debug():

"QPageLayout(A4, Portrait, l:14.173 r:13.898 t:14.173 b:14.284 pt)"
QRectF(5,5 200.1x286.96)
QRectF(0,0 210x297)
Данное поведение характерно ТОЛЬКО для сетевых притеров. Для локальных принтеров samsung clp300 и pdf-принтера размер страницы меняется через упомянутый выше диалог корректно, и вызов qDebug() показывает тот размер страницы, который был выбран в диалоге настройки принтера.
В системе windows(Qt5.4.0) этот же код работает как надо для всех принтеров. В чем дело?

 ,

rumgot
()

tc filter ЛОГИЧЕСКОЕ отрицание для SRC

Форум — Admin

Здравствуйте.
Можно ли при добавлении фильтра U32 утилитой tc, использовать логическое отрицание, например для указания подсети.
Т.е. нужно добавить фильтр, который отбирает пакеты, у которых адрес SRC «НЕ ИЗ УКАЗАННОЙ ПОДСЕТИ»?

 ,

rumgot
()

QTableWidget сигналы из виджетов, добавленных через QTableWidget::setCellWidget

Форум — Development

Здравствуйте
Имеется код(приведен фрагмент):
...

QLineEdit * summ = new QLineEdit;
tableWidget->setCellWidget(1, 1, summ);
connect(summ, SIGNAL(textChanged(QString)), this, SLOT(summ_change()));
...
Строк с таким добавлением виджета QLineEdit много, для каждого из этих виджетов устанавливается СЛОТ summ_change().
Как мне потом внутри этого слота определить номер строки того QLineEdit, для которого вызвался СЛОТ?

 ,

rumgot
()

Ssquid 3.4.8 Не сразу меняет скорость у клиента

Форум — Admin

Здравсвуйте

Система debian 7.8 x64 Squid 3.4.8 (ставил из wheezy-backports)

Вот конфиг squid.conf:

acl net5 src 192.168.5.0/24

http_access allow net5
http_access deny all

delay_pools 1
delay_class 1 1

delay_access 1 allow net5 
delay_access 1 deny all

delay_parameters 1 250000/250000

icp_port 0

http_port 3128 transparent

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log

logfile_rotate 0

cache_mem 800 MB
maximum_object_size_in_memory 1000 KB
memory_replacement_policy lru

cache_replacement_policy lru
cache_dir ufs /var/cache/squid3 100000 35 256
maximum_object_size 102400 KB
cache_swap_low 97
cache_swap_high 99

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320

cache_mgr admin@example.org

error_directory /usr/share/squid3/errors/ru-ru

hosts_file /etc/hosts

coredump_dir /var/spool/squid3
Клиент получает по http указанную delay_parameters скорость.
Но вот например, качает клиент какой-нибудь большой файл с прописанной в squid скоростью, затем я в squid.conf решил поменять скорость в delay_parameters, поменял, затем выполняю:
service squid3 reload
сразу уточняю, что пробовал и так:
squid3 -k reconfigure
У клиента скорость закачки того файла не меняется. Но как только закачка завершена, то в новой закачке уже будет новая прописанная скорость.
В squid версии 2.7.STABLE9 (из стандартного debian репозитория) скорость у клиента менялась сразу же после выполнении на сервере команды обновления конфигурации(service squid reload).
Также я пробовал ставить squid3(3.1.20) из стандартного debian репозитория, а не из backports - картина та же.
Вопрос:
Можно ли в squid3 настроить поведение как было в squid 2.7 ?
Возможно у меня в конфиге чего-то не хватает?
Подскажите пожалуйста, кто знает.

 ,

rumgot
()

6to4 обработка траффика iptables и ip6tables

Форум — Admin

Здравствуйте
Имеется сервер. Debian 7 x86_64, ядро 3.2.0-4-amd64
eth1 - белый ip4 адрес eth0 - адрес 192.168.0.1/24(внутренняя сеть)
Настроил 6to4 интерфейс, как описано тут:
6to4.ru
Конфигурация iptables и ip6tables по умолчанию(это временно, не обращайте внимание на то, что для локалки не настроено правил).
ipv6 интернет адреса доступны, все пингуется, также я с другого ipv6-адреса(miredo) могу зайти на данный сервер по ssh.
Теперь про iptables. Допустим я хочу контролировать траффик.
Допустим имеется следующий скрипт для iptables:

#!/bin/bash

#iptables###########################

iptables -F
iptables -X

iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT

#ip6tables###############################

ip6tables -F
ip6tables -X

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT


Насколько я понимаю, в данном случае в iptables(для ipv4) НЕТ правила, которое разрешает входящие пакеты ipv4 с типом 41 (ipv6), сооветственно входящий ipv6 траффик(не настоящий ipv6, а ipv6 упакованный в ipv4, т.е. фактически это входящий ipv4 траффик) должен блокироваться в соответствии с политикой, которая установилась вызовами:
iptables -P INPUT DROP
iptables -P FORWARD DROP

!!!НО. Они проходят. В соответствии с приведенным скриптом для настройки, я спокойно захожу на данный серевер по ssh (через ipv6), или пингую его посредством ping6, пинг проходит, возвращаются ответы.
Желая разобраться добавил в приведенный скрипт следующие строки:
iptables -A INPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 filter INPUT "
iptables -A OUTPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 filter OUTPUT "
iptables -A FORWARD -p 41 -j LOG --log-level debug --log-prefix "p-41 filter FORWARD  "

iptables -t mangle -A PREROUTING -p 41 -j LOG --log-level debug --log-prefix "p-41 mangle PRE "
iptables -t mangle -A INPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 mangle INPUT "
iptables -t mangle -A OUTPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 mangle OUTPUT "
iptables -t mangle -A FORWARD -p 41 -j LOG --log-level debug --log-prefix "p-41 mangle FORWARD "
iptables -t mangle -A POSTROUTING -p 41 -j LOG --log-level debug --log-prefix "p-41 mangle POST "

iptables -t nat -A PREROUTING -p 41 -j LOG --log-level debug --log-prefix "p-41 nat PRE "
iptables -t nat -A OUTPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 nat OUTPUT "
iptables -t nat -A POSTROUTING -p 41 -j LOG --log-level debug --log-prefix "p-41 nat POST "

iptables -t raw -A PREROUTING -p 41 -j LOG --log-level debug --log-prefix "p-41 raw PRE "
iptables -t raw -A OUTPUT -p 41 -j LOG --log-level debug --log-prefix "p-41 raw OUTPUT "

Т.е. в данном случае, я смотрю через syslog, в каких цепочках побывали пакеты с типом протокола ipv6(41).
Результат(патеты с типом 41 были в):
таблица filter: цепочка OUTPUT
таблица mangle: цепочки PREROUTING, INPUT, OUTPUT, POSTROUTING
таблица raw: цепочки PREROUTING, OUTPUT.

Вопрос: Почему входящие пакеты ipv4 с типом протокола 41(ipv6) не попадают в цепочку INPUT таблицы filter? Может нужно подгрузить какой-нибудь модуль ядра?

 , ,

rumgot
()

ffmpeg создание файла-потока

Форум — General

Здравствуйте. Не особенно разбираюсь в вопросе, прошу помочь.
Можно ли с использованием ffmpeg создать файл поток(например flv или swf), чтобы можно было локально открыть этот файл каким-нибудь видеоплеером и видеть как-бы текущую транслируемую картинку.
Входные данные берутся из локального видео файла или напрмер с web-камеры - не суть важно.
Т.е. сделать по большуму счету то, что делается с помощью ffserver, но сделать для локального открытия именно как обычного видео файла.
(Возможно, спрашиваю ерунду, и такое не возможно через локальный файл, растолкуйте, кто разбирается)

 

rumgot
()

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