LINUX.ORG.RU

Сообщения olegd

 

Как заставить mv не сигнализировать об ошибке, если файл не найден?

Форум — General

В скрипте есть команда

mv errors.log errors-$currentBuild.log
Если в текущем цикле errors.log не создаётся, весь скрипт возвращает ошибку. Можно сделать проверку наличия errors.log, наподобие
if [ -e errors.log ] 
    then mv errors.log errors-$currentBuild.log 
fi
но это ещё больше запутает скрипт. Можно сделать так:
mv errors.log errors-$currentBuild.log || true
но мне это решение не нравится тем, что прячет все остальные ошибки.

Существует ли какой-нибудь переключатель для mv или другой способ, чтобы пропускать несуществующие файлы, не генерируя ошибок?

 ,

olegd
()

Писать логи из docker на хост

Форум — Admin

Как писать логи из докера наружу? Самое простое решение — запускать его командой

docker run  --mount=type=bind,source=/var/log/apache2/,destination=/var/log/apache2-docker/ {image_name}

А что будет, если одновременно запустить несколько экземпляров? Будут писать в один файл вперемешку? Или как-то разрулят?

И умеет ли syslog-ng штатно обслуживать такую ситуацию, когда несколько виртуальных машин пишут логи на хост? По каким ключевым словам искать? А то я не могу определить, когда документация говорит о логах самого Докера, а когда о логах программ в гостевой системе.

 , ,

olegd
()

Как в systemd глобально отключить less?

Форум — General

Как сделать, чтобы все программы systemd по умолчанию выводили данные просто в stdout, а не в less -S?

export SYSTEMD_PAGER=''

и

export SYSTEMD_PAGER='cat'
приводят к потере концов строк. Не годится.

 

olegd
()

Как рисовать репорты в Дженкинсе?

Форум — General

Есть сервер Jenkins, который гоняет тесты. Отчёты сохраняются в XML в формате совместимом с JUnit. Требуется красиво их оформить, например, как здесь: https://plugins.jenkins.io/test-results-analyzer

Поставил плагин «Test Results Analyzer», но получил таблицу из одного заголовка. Внизу написано «No build data retrieved. You may need to select a Module.» «Publish JUnit test result report» включён. Чего ему ещё не хватает?

Или можете порекомендовать другой плагин? Нужно рисовать число удачных и неудачных тестов и время выполнения тестов.

Дополнение 1: Проект с матрицей конфигураций (multi-configuration project). Для простого проекта с единственной конфигурацией всё работает. — Ответ: Нужно внимательно следить за параметром «Local module directory» в настройках SVN. Если параметр «» (пустая строка), в пути нужно добавлять директорию, куда идёт чекаут.

Дополнение 2: Похоже, «Test Results Analyzer» не умеет показывать результаты для всех элементов матрицы одновременно. А что умеет?

Дополнение 3: Allure умеет читать результаты из нескольких директорий. Но как показать их на одной странице раздельно? — Костыль: Переименовывать тестовый скрипт. Одноимённые тесты из разноимённых скриптов отобразятся как из разных Packages.

Дополнение 4: И что важнее: как запускать Allure из Jenkins? — Ответ: В «Post-build Actions», как и все подобные плагины. Но нужно правильно указать пути к XML. Например, создавать логи опцией

--junit-xml="$WORKSPACE/allure-results/$var1-$var2-...-$BUILD_NUMBER.xml"
Эта директория ДОЛЖНА ОТЛИЧАТЬСЯ от директории, где Allure создаёт отчёты (по умолчанию — allure-report).

 allure,

olegd
()

Не видит DLL в той же директории

Форум — General

Запускаю консольную программу под WINE — ругается, что не может найти MSVCR120.dll, которая лежит в той же директории. ОС — Ubuntu, версия WINE — 1.6.2.

$ wine getspec.exe
err:module:import_dll Loading library MSVCR120.dll (which is needed by L"Z:\\home\\powtest\\abserv\\zlib.dll") failed (error c000007b).
err:module:import_dll Library zlib.dll (which is needed by L"Z:\\home\\powtest\\abserv\\hdf5.dll") not found
err:module:import_dll Loading library MSVCR120.dll (which is needed by L"Z:\\home\\powtest\\abserv\\hdf5.dll") failed (error c000007b).
Exception EOSError in module getspec.exe at 000000000003E467.
System Error.  Code: 126.
Module not found.

В чём может быть дело?

Заранее спасибо.

Ответ: Возникла путаница из-за того, что на одной Убунте всё работает, на остальных — нет. Убунта, где всё работало, при внимательном рассмотрении оказалась Дебианом с Wine 1.8. В итоге пришлось ставить новый Вайн на все машины.

 

olegd
()

Общая директория для контейнеров докера и пользователей

Форум — Admin

Сейчас делается следующее:

Создал volume:

docker volume create shara

При загрузке (systemd) соответствующая директория монтируется на директорию одного из пользователей, куда все имеют доступ:

mount --bind /home/testcase/common_data/ /var/lib/docker/volumes/shara/_data/

При запуске контейнеров (тоже systemd или вручную) эта директория подключается как /common_data:

docker run -v shara:/common_data image1

Вопросы:

1. Есть ли подводные камни в таком подключении?

2. Можно ли сделать это проще?

Дистрибутив — Ubuntu, если это имеет значение.

 

olegd
()

Не запускается интерактивный шелл в работающем контейнере докера

Форум — General

Разнообразные руководства пишут, что командой вида docker exec NAME sh можно запустить шелл и смотреть, что происходит в виртуальной машине. Но у меня это не работает.

Прочие команды работают нормально.

$ docker exec pensive_hodgkin ls -l /bin/bash /bin/sh /bin/dash
-rwxr-xr-x 1 root root 1099016 May 15  2017 /bin/bash
-rwxr-xr-x 1 root root  117208 Jan 24  2017 /bin/dash
lrwxrwxrwx 1 root root       4 Jan 24  2017 /bin/sh -> dash

Но при запуске шелла просто висит, не реагируя на вводимые команды:

$ docker exec pensive_hodgkin bash
ls


?????

werwerwerljh

^C
С явным указанием пути и с sh вместо bash — аналогично. В чём проблема?

Ubuntu 16.04, Docker 17.05. В обеих машинах.

ОТВЕТ: нужно добавить ключи -it после exec.

 ,

olegd
()

AttributeError: module '__wsgi__' has no attribute 'application'

Форум — Admin

Поставил mod_wsgi-express, попробовал запустить сервер, ранее нормально работавший с Flask, получил ошибку 500.

Запускаю командой:

mod_wsgi-express start-server server.py --port 8081 --host localhost

Получаю следующий лог с ошибкой:

$ cat /tmp/mod_wsgi-localhost:8081:1000/error_log
[Mon Mar 26 03:28:55.639890 2018] [mpm_event:notice] [pid 19429:tid 140449802274688] AH00489: Apache/2.4.18 (Ubuntu) mod_wsgi/4.6.2 Python/3.5 configured -- resuming normal operations
[Mon Mar 26 03:28:55.639969 2018] [core:notice] [pid 19429:tid 140449802274688] AH00094: Command line: 'apache2 (mod_wsgi-express) -f /tmp/mod_wsgi-localhost:8081:1000/httpd.conf -D MOD_WSGI_WITH_LISTENER_HOST -D MOD_WSGI_MPM_ENABLE_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_WORKER_MODULE -D MOD_WSGI_MPM_EXISTS_PREFORK_MODULE -D FOREGROUND'
[Mon Mar 26 03:28:55.978568 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Failed to exec Python script file '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.978608 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Exception occurred processing WSGI script '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.979490 2018] [wsgi:error] [pid 19431:tid 140449802274688] Traceback (most recent call last):
[Mon Mar 26 03:28:55.979518 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi", line 94, in <module>
[Mon Mar 26 03:28:55.979523 2018] [wsgi:error] [pid 19431:tid 140449802274688]     recorder_directory=recorder_directory)
[Mon Mar 26 03:28:55.979530 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/__init__.py", line 1414, in __init__
[Mon Mar 26 03:28:55.979534 2018] [wsgi:error] [pid 19431:tid 140449802274688]     self.application = getattr(self.module, callable_object)
[Mon Mar 26 03:28:55.979552 2018] [wsgi:error] [pid 19431:tid 140449802274688] AttributeError: module '__wsgi__' has no attribute 'application'

mod_wsgi-express ставил через pip. Дистрибутив — Ubuntu 16.04. Сгенерированный handler.wsgi: https://pastebin.com/DPx5kgwK

Что ему не нравится в handler.wsgi?

Update: «Hello,world» из документации: https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-gui... заработал. Похоже, проблема в вызываемом приложении.

Ответ: По умолчанию Апач вызывает «application». В handler.wsgi это задаётся как callable_object = 'application'. В моём случае имя оказалось другим. Проблема решилась автозаменой в server.py. Также можно воспользоваться ключом --callable-object.

 , ,

olegd
()

«А включаешь — не работает»

Форум — General

Написал ini-шник для запуска сервиса, добавил его через systemctl enable, проверил старт-стоп-рестарт через systemctl start, stop и restart. Перезагружаю машину — не запускается. Что я упустил?

Конфиг:

$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service

[Service]
ExecStart=/usr/bin/docker run machine
Более сложный вариант:
$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service

[Service]
ExecStart=/bin/sh -c '/usr/bin/docker run -d machine > /var/run/machine.key'
ExecStop=/bin/sh -c '/usr/bin/docker stop `cat /var/run/machine.key`'

Ручной запуск:

$ curl -I localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
$ sudo systemctl enable machine
$ sudo systemctl start machine
$ curl -I localhost
HTTP/1.0 302 FOUND

Но после ребута сервер сам не запускается.

Добавление в конфиг

[Install]
WantedBy=default.target
или
[Install]
WantedBy=multu-user.target
ничего не меняет.

Дистрибутив — Ubuntu 16.04. Но хотелось бы ответ без привлечения Upstart.

Что сделать, чтобы запускался после ребута?

UPDATE:

journalctl -e после запуска показывает строку «systemd[1]: Started Machine in Docker.» Но сервер не работает.

Ответ: в секции [Service] не хватало

Type=oneshot
RemainAfterExit=yes

 

olegd
()

Лог заголовков активного окна

Форум — Desktop

Существует ли какая-то программа, которая вела бы лог, на каком окне в данный момент фокус? И могла бы суммировать, сколько времени какое окно было активно.

Пока нашёл только самописные программы вроде https://bbs.archlinux.org/viewtopic.php?id=200866

 

olegd
()

Как сделать регулярное выражение регистро-независимым?

Форум — General

В конфиге Metricbeat есть список регулярных выражений (по правилам Lucene), по которым фильтруются добавляемые в поисковик данные. В моём случае это — просто список слов в ASCII. Требуется, чтобы эти слова искались вне зависимости от регистра.

Пока обрабатываю файл-список командой

sed 's/[Aa]/[Aa]/g; s/[Bb]/[Bb]/g; s/[Cc]/[Cc]/g; s/[Dd]/[Dd]/g; s/[Ee]/[Ee]/g; s/[Ff]/[Ff]/g; s/[Gg]/[Gg]/g; s/[Hh]/[Hh]/g; s/[Ii]/[Ii]/g; s/[Jj]/[Jj]/g; s/[Kk]/[Kk]/g; s/[Ll]/[Ll]/g; s/[Mm]/[Mm]/g; s/[Nn]/[Nn]/g; s/[Oo]/[Oo]/g; s/[Pp]/[Pp]/g; s/[Qq]/[Qq]/g; s/[Rr]/[Rr]/g; s/[Ss]/[Ss]/g; s/[Tt]/[Tt]/g; s/[Uu]/[Uu]/g; s/[Vv]/[Vv]/g; s/[Ww]/[Ww]/g; s/[Xx]/[Xx]/g; s/[Yy]/[Yy]/g; s/[Zz]/[Zz]/g'
и вставляю в конфиг. Некрасиво. Громоздко. Можно улучшить?

------------------------------------------------------------

Ответ:

Команду для sed можно записать короче:

sed 's/\([A-Za-z]\)/[\u\1\l\1]/g'

А в самом списке вместо имён можно поставить

'(?i:firefox)'

 ,

olegd
()

Packetbeat не принимает конфиги

Форум — Admin

Помогите, пожалуйста, разобраться с конфигом в YAML.

Настраиваю Packetbeat для Elastic Stack. Пытаюсь сделать так, чтобы писались пакеты только от 2 машин. Постоянно получаю ошибку «beat.go:625: CRIT Exiting: error initializing publisher: error initializing processors: each processor needs to have exactly one action, but found 2 actions»

Пробовал более простые настройки из мануала. Когда записываю фильтр в 1 строку — всё нормально:

processors:
  - drop_event.when.equals.http.response.code: 200
А в 2 строки и больше — ошибка.
processors:
  - drop_event:
    when.equals.http.response.code: 200
processors:
  - drop_event:
    when:
      equals:
        http.response.code: 200
Я чего-то не понимаю в YAML? Какая разница?

Дополнение.

processors:
  - drop_event:
      when.equals.http.response.code: 200
Работает. Вроде, нормально.

Насколько я помню, в других программах в YAML следующая запись:

word1:
  - word2:
    word3: value
была эквивалентна «word1.0.word2.word3: value»

Здесь это не сработало, и многострочная запись соответствует чему то вроде «word1: {0.word2: null, word3: value}»

Кто неправ? Я или packetbeat?

Ответ: я.

 ,

olegd
()

Что умеет Nagios?

Форум — Admin

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

Мне было сказано приспособить для этой цели сервер Nagios. Он так умеет?

Оракл на Red Hat, Nagios на CentOS, остальные машины используют оффтопик.

Заранее спасибо.

P.S. Нужно ставить на все машины Nagios Cross-Platform Agent?

Перемещено leave из general

 ,

olegd
()

Улетают изображения

Форум — Desktop

Есть документ ODT с большим количеством скриншотов, предположительно созданный в OpenOffice 2014 года. Попробовал его открыть в «стабильной» версии LibreOffice 5.2.7.2. Большая часть картинок оказалась в левом верхнем углу первой страницы. Перетаскать их вручную на нужные страницы можно, но долго. Существует ли более быстрый способ? Помимо поставить версию, в которой документ набирали.

P.S. Поправка. Если открыть ODT как ZIP, там 23 файла PNG. В текст вставлено 23 скриншота, с Anchor=«To character», и в самом начале ещё 23 скриншота, тоже с с Anchor=«To character». Чем может быть вызван этот глюк?

P.P.S. Документ оказался создан в LO 5.3.2.2, где открывается нормально. В 5.3.3.2 открылся с тем же глюком.

 , ,

olegd
()

Можно ли запретить выполнение текстовых файлов без «#!» вначале?

Форум — General

Если есть текстовый файл с установленным битом executable и первой строкой, начинающейся с sha-bang, то есть вида:

#!{интерпретатор с путём}
, то он обрабатывается как скрипт указанным интерпретатором.

Если executable установлен, но в первой строке интерпретатора нет, все строки обрабатываются как вызовы программ из командной строки.

Можно ли как-то запретить второе поведение? Помимо установки a-x для всего копируемого с FAT.

olegd
()

Копьютер виснет и мигает светодиодами на клавиатуре от проигрывания видеофайлов

Форум — General

Сегодня решил разобрать видеофайлы, которые я много месяцев скачивал с Ютуба и других сайтов и оставлял в ~ . По очереди запускал их из MC в mplayer-е, проматывал туда-сюда, выходил и в том же MC перемещал в подходящую директорию (на том же физическом диске). Обнаружил, что после примерно получаса-часа таких действий система зависает на очередном видеофайле. Ни на что не реагирует, только мигают светодиоды Caps Lock и Scroll Lock. И так несколько раз.

Плохой контакт шлейфа исключаю — вскрыл корпус, проверил, что всё нормально, на всякий случай выдернул провода и вставил обратно. Не помогло.

Температура процессора по данным BIOS 55⁰C, материнской платы ниже 30, радиатор на видеокарте тоже не горячий, градусов 40 на ощупь.

Проапдейтил видеодрайвер, пока больше не висло.

# lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS780 Host Bridge
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 0)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cayman PRO [Radeon HD 6950]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cayman/Antilles HDMI Audio [Radeon HD 6900 Series]
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

# uname -a
Linux nameless 3.12.13-gentoo #3 SMP Wed May 28 00:54:02 MSK 2014 x86_64 AMD Phenom(tm) II X6 1090T Processor AuthenticAMD GNU/Linux

Использую закрытый драйвер AMD, сменил 14.6_beta1 на 14.6_beta2. mplayer 1.2_pre20130729 (последний стабильный в Gentoo).

Что это могло быть? Как выяснить, в чём дело? Какие логи смотреть? Или что сделать, чтобы эта причина попала в логи?

Заранее спасибо.

 , ,

olegd
()

Enterprise CD ejector

Форум — Talks

Искал сейчас информацию по клонированию машин, наткнулся на замечательное оскорбление. Сотрудник Парагона в блоге на Хабре рекламирует их изделие. Кто-то спрашивает его о возможностях программы. Тот плывет. Спрашивающий приходит к выводу, что программа по возможностям не превосходит dd, и называет ее «очередным энтерпрайзным cd eject».

p.s. Не пил.

olegd
()

Перенос Windows XP в виртуальную машину

Форум — General

Имеется помирающая машина с Windows XP и установленными ценными программами. Требуется перенести ее образ в виртуальную машину (VMWare или VirtualBox — не принципиально) так, чтобы они все продолжили работать как раньше. (Упреждая вопрос — смену MAC-адреса или видеокарты они не заметят.) Как это сделать? Посоветуйте, пожалуйста, руководство, где были бы разобраны все тонкости.

Если ответ включает dd и qemu-img, с какими ключами следует собирать qemu, чтобы там был qemu-img? нашел его

Устанавливать эти же программы на чистую XP нельзя. Из-за нерегулярных и не всегда удачных обновлений сложилась такая комбинация, которая обеспечивает приемлемую работу этого глюкодрома, но которую преднамеренно воспроизвести не получается.

Update: Нашел «VMware vCenter Converter», попробую его.

 , ,

olegd
()

Посоветуйте маломощный компьютер на x86

Форум — Linux-hardware

Требуется маломощный компьютер для проигрывания MP3 и постоянно включённого клиента Скайпа (без X Window). Главные требования — низкая цена и низкое энергопотребление. Очень хорошо, если ему не требуется вентилятор. Процессор — любой x86-совместимый, из-за Скайпа. Память — сотни мегабайт, видимо. Диск — гигабайты, или сколько требуется под ГНУ/Линукс.

Причины, по которым не годятся ARM и другие процессоры, а также Андроид: Постоянно работающий Skype А VPS не сможет играть музыку.

Пытался искать в сети, но слабо представляю, как называется то, что мне нужно. «Неттоп»? «Одноплатный компьютер»? Найденные стоят дороже дешёвого десктопа и жрут десятки ватт. «Роутер»? Не нашёл ни одного на x86.

Заранее спасибо.

P.S. «Низкая цена» значит ниже, чем 1-ядерный десктопный системный блок с интегрированным видео и звуком. Год назад можно было не напрягаясь уложиться в 4000.

olegd
()

ls -1t *.mp3 | mplayer -playlist -

Форум — Multimedia

Консольный Mplayer может читать плейлист со стандартного ввода (пример использования вынесен в заголовок), но при этом перестаёт обрабатывать ввод с клавиатуры. Как-то можно это обойти помимо создания временного файла с плейлистом или дополнительной программы для управления mplayer-ом?

 ,

olegd
()

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