LINUX.ORG.RU

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

Как избавться от (python) pdb?

 ,

Привет

В последнее время при падении питоновской программы (как я понял), запускается некий pdb и просит что-то ввести. Проблема в том, что это тормозит всю установку emerge, и требует ручного вмешательства.

Как избавиться от pdb?

Пример:

$ emerge --unmerge noto-cjk
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

 media-fonts/noto-cjk
    selected: 20150615
   protected: none
     omitted: none

All selected packages: =media-fonts/noto-cjk-20150615

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in: 5 4 3 2 1
>>> Unmerging (1 of 1) media-fonts/noto-cjk-20150615...

...

--Return--
> /usr/lib64/python3.6/site-packages/portage/util/_eventloop/asyncio_event_loop.py(76)_internal_caller_exception_handler()->None
-> pdb.set_trace()
(Pdb)

Kroz
()

простой веб на питоне

 ,

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

chenbr0
()

Помогите адаптировать команду под Python notify-send | grep

 

Всем доброго времени. Помогите пожалуйста адаптировать команду notify-send | grep под Python. В Python - дилетант.

Python скрипт рассчитывает значения названия/количества/стоимости с построчным выводом в консоль или в файл >> result-ap.txt

Выводятся следующие значения:

print (nomination[amount] + ' = ' + str(price/1000))

Например: "коробка	2	= 12.80"

Задача выводить построчно через notify-send определённые значения (price/1000), с обрезанием ненужных символов.

Получилось настроить только в Bash и пуляет он всё сразу, так как grep_ает с готового файла, без tail -f, но работает.

В grep -v -w ххх.хх

соответственно подставляются любые «ненужные» значения.

notify-send --urgency=critical "$(echo "123" | grep -v -w 100.0 /home/baza1/result-ap.txt echo 123456789 | rev | cut -c1-13 | rev)" -t 0

Просьба помочь настроить построчный вывод в notify-send или notify2 из терминала в Python скрипте, с текущими настройками. Пробовал так:

import os
import subprocess

os.system ('notify-send "Hello world!" -t 0')

Пример (Hello world!), в скрипте работает без проблем, пишет в файл и выдаёт после каждой строки уведомление: Hello world!

Ну а так конечно не работает:

send = str(price/1000)
os.system ('notify-send  "$(send)" -t 0')

или

os.system ('notify-send  "$(echo "123" | grep -v -w 100.0 echo 123456789 | rev | cut -c1-13 | rev str(price/1000))" -t 0')

Понимаю что нужны print-for-re-split()-rsplit()..., но не понимаю как реализовать... Пробовал ещё Python.sh С notify2 вообще ничего непонятно.

Заранее Благодарен за помощь.

asston
()

Не включается комп с ядром 4.15

 

У меня Xubuntu 18.04(Ubuntu) и комп не хочет грузиться на ядре 4.15. Таже беда была на Xubuntu 16.04. Приходится удалять ядро 4.15 и загружатся на ядре 4.13. Как быть? Как грузиться на ядре 4.15? Слышал, что у кого-то с пятой перезагрузки компа может включиться комп

Вообщем решение следующее - это баг ядра и конфликтует сч моим железом.

stafik1993
()

однострочник на python

 

Гм вот такая вот задачка простейшая:

есть некий словарь

test = { "name1" : 1, "name2": 2, "name10" : 10 }

Нужно для какого-то условия ( например value > 5 ) умножить значения value *2. Можно ли это сделать в 1 строчку ?

Jopich1
()

Redis сначала работает прекрасно, но потом дико тормозит 100% CPU!

 , ,

Рэдис использую как кэш временный на 1 день, без сохранения снапшотов. Сайт с посещаемостью от 50к. Изначально запускаю редис и он работает быстро - так как и нужно, но потом где-то через час он упирается в 100% CPU и начинает ниистово тормозить. Перезапускаю - и он снова работает великолепно. Слышал о том что это возможно из-за ключей удалённых какой-то мусор накапливается… Незнаю куда двигаться.

Server

redis_version:5.0.0 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:589bbec69921e7d1 redis_mode:standalone os:Linux 4.4.0-142-generic x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:5.4.0 process_id:10690 run_id:2bf978f1c4ac625d6f476055026dee521a6e2be6 tcp_port:6379 uptime_in_seconds:633 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:6720524 executable:/root/redis-server config_file:/etc/redis/redis.conf

Clients

connected_clients:7 client_recent_max_input_buffer:215082 client_recent_max_output_buffer:102496 blocked_clients:0

Memory

used_memory:626516840 used_memory_human:597.49M used_memory_rss:619220992 used_memory_rss_human:590.54M used_memory_peak:626679184 used_memory_peak_human:597.65M used_memory_peak_perc:99.97% used_memory_overhead:5102146 used_memory_startup:791928 used_memory_dataset:621414694 used_memory_dataset_perc:99.31% allocator_allocated:627069472 allocator_active:649281536 allocator_resident:657899520 total_system_memory:16826458112 total_system_memory_human:15.67G used_memory_lua:13079552 used_memory_lua_human:12.47M used_memory_scripts:3805152 used_memory_scripts_human:3.63M number_of_cached_scripts:7252 maxmemory:1200000000 maxmemory_human:1.12G maxmemory_policy:allkeys-lru allocator_frag_ratio:1.04 allocator_frag_bytes:22212064 allocator_rss_ratio:1.01 allocator_rss_bytes:8617984 rss_overhead_ratio:0.94 rss_overhead_bytes:18446744073670873088 mem_fragmentation_ratio:0.99 mem_fragmentation_bytes:18446744073702256816 mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_clients_slaves:0 mem_clients_normal:151170 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0

Persistence

loading:0 rdb_changes_since_last_save:21619 rdb_bgsave_in_progress:0 rdb_last_save_time:1550223763 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:-1 rdb_current_bgsave_time_sec:-1 rdb_last_cow_size:0 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok aof_last_cow_size:0

Stats

total_connections_received:3976 total_commands_processed:28536173 instantaneous_ops_per_sec:70602 total_net_input_bytes:553074494 total_net_output_bytes:102416450 instantaneous_input_kbps:887.71 instantaneous_output_kbps:58.73 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 evicted_keys:0 keyspace_hits:28500429 keyspace_misses:2099 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 migrate_cached_sockets:0 slave_expires_tracked_keys:0 active_defrag_hits:0 active_defrag_misses:0 active_defrag_key_hits:0 active_defrag_key_misses:0

Replication

role:master connected_slaves:0 master_replid:0c163b3898c1ce935bbf4a1938a635c22422c5f2 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0

CPU

used_cpu_sys:3.392000 used_cpu_user:71.864000 used_cpu_sys_children:0.000000 used_cpu_user_children:0.000000

Cluster

cluster_enabled:0

Keyspace

db0:keys=7209,expires=0,avg_ttl=0

taram
()

Как монтировать устройство в lxc без перезагрузки?

 ,

Создал контейнер для программирования esp32 и для этого в конфиге прописал:

lxc.mount.entry = /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file

всё работает, но когда вытаскиваю и вставляю плату, ttyUSB0 больше не доступен из lxc. Есть ли способ как-то решить эту проблему?

devalone
()

Зачем тут нужны snap пакеты?

 ,

Зачем Убунта ставит скайп и дискорд через снапы, когда они все, вроде, не заброшены, написаны непротухших библиотеках и вообще даже производитель их в .dep пакетах раздает? Я бы понял, если бы они уже лет 10 как не обновлялись - тогда был бы смысл изолировать тухлятину в один такой пакет и забыть о проблемах с ним навсегда. Но зачем это надо тут? Разве apt-get не должен сам понять чего ему не хватает для разрешения зависимостей при установке из убунтовских репозиториев, в которых раньше точно где-то был скайп? Мне места на диске не жалко, но выглядит это как-то, мягко говоря, странным. Вроде, годный линукс для смертных был, а выкинули тут такое...

By the way. Если я пишу какую-то программу на Qt, то в снап я должен запихать все .so файлы от которых зависит моя программа и все .so файлы от которых зависят все .so файлы? А если я там использую капельку java, то мне еще надо запихнуть свое jre со всеми его зависимостями на 200+ мегабайт? Так что-ли?!

fghjklld
()

Редактор текста в bash, без применения vi, sed, и т.д.

 , , ,

Добрый день, такой вопрос. Есть потребность в создании программы, для редактирования текста в потоке(аналог sed но своими ручками). Решил использовать фичу read -e -i , чтоб построчно выводить файл и менять. Встал в тупик, написав только это(в цикле не работает read). Точнее он работает, но строки пустыми выводит. Как фиксить и кто поможет? Заранее спасибо. Текст скрипта:

#!/bin/bash

while true
do
	ABSOLUTE_FILENAME=`readlink -e "$0"`
	DIRECTORY=`dirname "$ABSOLUTE_FILENAME"`
	read -e -p "Enter path to the file: " -i $DIRECTORY FILE
	echo $FILE
	read -p "PRESS 
	y - show file
	e - exit
	" work
	while read -p line 
	do
		case $work in
			y|Y) read -e -p "Edit: " -i $line text;echo $text;
			sleep 1;;
			e|E) break;;
		esac
	done < $FILE 
	break
done

SerGraph
()

Добавить атрибуты в OpenLDAP

 

Всем привет! Мы юзали старый SUN Directory Server Enterprise Edition и потребовалось переехать на OpenLDAP, всем понятно наверное почему. Для SUN Directory у меня был ldiff с уникальными атрибутами, которые мне требуется запилить по аналогии в OpenLDAP.

dn: cn=schema
objectClass: top
objectClass: ldapSubentry
objectClass: subschema
cn: schema
aci: (target="ldap:///cn=schema")(targetattr !="aci")(version 3.0;acl "anonymo
 us, no acis"; allow (read, search, compare) userdn = "ldap:///anyone";)
modifiersName: cn=admin,cn=administrators,cn=dscc
modifyTimestamp: 20140825092336Z
attributeTypes: ( firstName-oid NAME 'firstName' DESC 'First name of a person'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( privateEmail-oid NAME 'privateEmail' DESC 'Private email of
 a person' SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 X-ORIGIN 'user defined' )
attributeTypes: ( userOid-oid NAME 'userOid'  SYNTAX 1.3.6.1.4.1.1466.115.121.
 1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( isTrusted-oid NAME 'isTrusted' DESC 'Determines if user is t
 rusted' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'user defi
 ned' )
objectClasses: ( myUser-oid NAME 'myUser' DESC 'user for my entity' SUP
 top STRUCTURAL MUST ( uid $ isTrusted $ nsAccountLock $ firstName ) MAY ( la
 stName $ userPassword $ privateEmail $ otpContact $ otp
 AuthnFlag $ privatePhone $ userOid ) X-ORIGIN 'user defined' )
nsSchemaCSN: 53fb0098000000000000

У OpenLDAP вот такой формат ldif для организации схемы:

olcAttributeTypes: ( 0.9.2342.19200300.100.1.25
  NAME ( 'dc' 'domainComponent' )
  DESC 'RFC1274/2247: domain component'
  EQUALITY caseIgnoreIA5Match
  SUBSTR caseIgnoreIA5SubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
Как мне переделать мои атрибуты в файлике ldif под OpenLDAP мне в упор непонятно

  • 1. Я не понимаю какой мне OID указывать в случае с OpenLDAP типа 0.9.2342.19200300.100.1.25, когда для SUN Directory у меня указывался OID в формате userOid-oid
  • 2. Я не понимаю что такое SINGLE-VALUE X-ORIGIN и нужны ли они мне в OpenLDAP
  • 3. Для моего Sun Directory путь размещения атрибутов:
    dn: cn=schema
    objectClass: top
    objectClass: ldapSubentry
    objectClass: subschema
    cn: schema
    а какой dn и objectClass мне в ldif для OpenLDAP указать?
trider
()

OpenVPN docker контейнер - нет доступа снаружи

 ,

Установил docker контейнер pritunl с web-интерфейсом который:

 # docker pull andrey0001/pritunl
docker run --privileged --name pritunl --restart unless-stopped --net=host -d -t andrey0001/pritunl

Он запущен удачно:

# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS               NAMES
45e6ccf57df4        andrey0001/pritunl   "/bin/start-pritun..."   35 minutes ago      Up 9 minutes                            pritunl

Но недоступен снаружи web-интерфейс ни по 80 порту, ни по 443. Хотя

# netstat -ntpl | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      13451/pritunl-web

# netstat -ntpl | grep 443
tcp6       0      0 :::443                  :::*                    LISTEN      13451/pritunl-web

В iptables всё по нулям, никаких правил нет, но web-интерфейс доступен только с самого сервера через links или lynx, но там нельзя пройти авторизацию наверное из-за навороченного html.

# links внешний_ip


В логе самого докер контейнера pritunl никаких ерроров или варнингов нет...
gigantischer
()

cron. Как сдвинуть старт периодического задания на 37 секунд

 ,

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

cron. Каждую минуту стартует задание.

Каким способом можно сдвинуть старт такого ежеминутного задания на 37 секунд?

Использовал гуглопоиск, но ничего вменяемого, кроме предварительного «sleep 37» не сыскалось.

Может быть, кто-нибудь знает альтернативные варианты?

LaLe
()

Подскажите резолвер DNS

 , ,

Нужна легкая, быстрая, надежная, мультипоточная тулза для обработки списков содержащих миллионы доменов.
То есть получить linux.org.ru -> 178.248.233.6 от первого же отозвавшегося сервера. Или, если ответ не пришел, записать и это. Ну и конечно, если пришел ответ ответ что такого не существует.
Спасибо.

E2-E4
()

Как *самому* создать антиспам для Postix'a на питоне или ещё чём-то?

 

Как *самому* создать антиспам для Postix'a на питоне или ещё чём-то? Это вообще возможно?

IVANJEZZ
()

Получение токена регистрации

 ,

Всем доброго дня. Появилсь задачка - написать скриптик, который был на входе получал данные, и их запросами отправлял на некоторый сервер, дабы с ними там что-то происходило. Всё посто и реализовано. Но есть одно НО...

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

Трудность в том, что не получается найти как можно зайти туда curl'ом, и получить в ответ нужный так токен.

Никто не сталкивался с такой задачей? Поля снилса и пароля - snils, password, а вот отловить, куда как сформировать запрос дальше - не получилось.

PearlyDragon
()

Подключение к tor из pycurl

 

Добрый день подскажите в чем может быть проблема, при ображении к тор из pycurl получаю такую ошибку

* SOCKS5 communication to vokt.ru:80
* Received invalid version in initial SOCKS5 response.
* Closing connection 0
An error occurred:  (7, 'Received invalid version in initial SOCKS5 response.')
b''

врядли проблема в pycurl, так как я пробовал бесплатный сокс и все работает.

Перемещено jollheef из admin

serrrgggeee
()

вложенные точки монтирования в linux containers

 ,

Вот какое дело — есть непривилегированный контейнер с centos 6, к нему подключена внешняя точка монтирования

lxc.mount.entry = /mnt/Storage mnt/Storage none bind,optional,create=dir

Проблема — если кто-то в /mnt/Storage в родительской ОС примонтирует что-то (например, образ iso), то после запуска контейнера mnt/Storage в нем не виден.

Подозреваю, что дело в хитрых (или не очень) настройках cgroups, прошу совета по этому делу.

demidrol
()

Ldap+asterisk правила набора

 ,

Здравствуйте Хочу через лдап сделать ограничение звоноков на номера по заданному шаблону. Подскажите, пожалуйста, как настроить в атериске чтобы при исходящем звонке запрос делался в лдап для сверки разрешения пользователю на исходящий звонок?

alex772
()

Почему ping в скрипте под обычным юзером и под root может работать по-разному?

 , ,

Господа,

что то я зачастил.

Но спасибо Вам большое за помощь.

Дело в том, что после некой аварии я пытаюсь сам, своими силами, наладить правильный бэкап.

У меня Ubuntu 16.04, на которой поднят KVM, и в одной из виртуалок крутится GitLab.

И у меня возникает такая задача: раз в день, если виртуалочка с GitLab выключена - надо её диск скопировать, а потом саму виртуалочку запустить командой virsh start.

Я сделал всё прямо, как железная дорога:

вот содержимое sh - файла, который я хочу запускать по крону:

if /bin/ping -c 1 192.168.10.57 &> /dev/null

then

echo Cant backup - VM working now

else

echo Try copy...

/bin/cp /VM/GitLab0_Ubuntu.img /backups/

/usr/bin/virsh start GitLab0_Ubuntu

fi

Но вот что интересно.

Я выключил виртуальную машину и стал пробовать скрипт в ручнмо режиме.

Когда я запускаю этот *.sh - файл под обычным пользователем - я получаю по морде отсутствием пермишшенов на /backups/

А когда я пишу

sudo ./backup-gitlab.sh

- я получаю еще более загадочный вывод:

Cant backup - VM working now

PING 192.168.10.57 (192.168.10.57) 56(84) bytes of data.

konst@LB1:/backups$ From 192.168.10.201 icmp_seq=1 Destination Host Unreachable

--- 192.168.10.57 ping statistics ---

1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

То есть, впечатление такое, что скрипт начинает выполнять ветку, соответствующую тому, что ping до нужного хоста есть.

Хотя хост выключен.

Вот скриншот:

http://junecat.ru/Storage/oth/ping-1.jpg

Не знаете ли Вы, почему это может так работать? Ведь ничего не изменилось, кроме того, что второй раз я запускаюсь из под sudo.

И еще раз спасибо всем, кто мне даёт советы. Это - бесценно

SteeL-HeaD
()

проверка доступности ресурса с учетом % потерь

 ,

Здравствуйте, подскажите пж-та, не могу никак сообразить: необходимо с помощью bash-скрипта проверять доступность ресурса http://www.google.com с помощью утилиты ping (отправляется 4 пакета) и в случае если процент потерь составляет 75% и больше (потерялось 3 пакета из 4 или 4 из 4), необходимо выполнить действие 1. Если процент потерь менее 75%, то выполнять действие 2. Не могу понять, как это реализовать. Пока сделал так: ping http://www.google.com -c 4 -q -w 30 &>/dev/null rezult=$? if [ $rezult != 0 ]; then echo «действие 1» else echo «действие 2»

Но данный способ не учитывает % потерь, условие срабатывает, даже если теряется 1 пакет

wiremann
()