LINUX.ORG.RU

Сообщения Sahas

 

Не работает скрипт по CRON'у

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

Вот скрипт /home/backup/rm_old_backups.sh:

#!/bin/bash
export PATH=/bin:/usr/bin
/usr/bin/find /home/backup/user-*.gz -type f -mtime +3 -delete

Вот содержимое /etc/cron.d/rm_old_backups:

2 5 * * * user /bin/bash /home/backup/rm_old_backups.sh

Вот запись в логе:

июл 17 05:02:01 machine-vcs CRON[31081]: pam_unix(cron:session): session opened for user user by (uid=0)
июл 17 05:02:01 machine-vcs CRON[31082]: (user) CMD (/bin/bash /home/backup/rm_old_backups.sh)
июл 17 05:02:02 machine-vcs CRON[31081]: pam_unix(cron:session): session closed for user user

Можно как-нибудь это дело отладить, либо лог записать куда?..

Система Ubuntu 16.04.2

Update: см. Не работает скрипт по CRON'у (комментарий)

 , ,

Sahas
()

Юбилей

50₇

 star, superstar, ,

Sahas
()

Проблема с x86_64-w64-mingw32: ld используется не тот, что надо, и ругается

Для кросс-компиляции поставил x86_64-w64-mingw32 при помощи crossdev, действовал по инструкции https://wiki.gentoo.org/wiki/Mingw, с заменой i686 на x86_64. Пытаюсь собрать пример SDL tutorial example:

x86_64-w64-mingw32-emerge media-libs/libsdl

Пишет:

Emerging (1 of 2) media-libs/audiofile-0.3.6-r3::gentoo for /usr/x86_64-w64-mingw32/

Компилируется и вылетает с ошибкой при попытке линковки:

/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: unrecognized option '--enable-auto-image-base'

Похоже, что используется неправильный линковщик, должен ведь быть x86_64-w64-mingw32-ld? В упор не понимаю, где я накосячил...

/usr/x86_64-w64-mingw32/etc/portage/make.profile указывает на /usr/portage/profiles/prefix/windows/winnt

 , ,

Sahas
()

Старая песня о главном: вызов Python из C++

Есть проект на C++. Надо вызывать некоторые функции (или лучше сказать, методы класса) из библиотеки, написанной на Python.

Я прочесал гуглинтернет и нашёл следующие наиболее распространённые подходы: использование Python C-API и Boost.Python. Дальше я впал в ступор, так как не могу выбрать лучший вариант. С одной стороны, Boost хорош всем, за исключением его «жирности». С другой стороны, C-API — это наиболее «прямой» путь, но есть подозрения, что делать обёртку Python-функций на нём — то ещё приключение...

Поэтому прошу помощи у гуру, кто уже делал что-либо подобное.

Упрощённый пример кода смогу подогнать, если потребуется...

Update: всем спасибо, остановился на pybind11 — просто и со вкусом :)

 ,

Sahas
()

«Кириллические домены — это круто!» — говорили они...

Китайский исследователь Чжэн Сюдун (Xudong Zheng) опубликовал новый метод для проведения фишинг-атак, позволяющих организовать работу подставных сайтов, притворяющихся известными доменами. Метод работает в актуальных версиях Chrome, Firefox и Opera. Проблеме не подвержены Edge, IE, Safari, Vivaldi и Brave.

Атака основана на возможности указания unicode-символов в домене, но отличается от давно известных атак, которые манипулируют интернационализированными доменами. Классическая подмена через внешне сходный IDN-домен успешно блокируется в браузерах путём запрета смешивания символов из разных алфавитов. Например, подставной домен аpple.com («xn--pple-43d.com») не получится создать путём замены латинской «a» (U+0061 на кириллическую «а» (U+0430) , так как смешивание в домене букв из разных алфавитов не допускается.

Для обхода подобной защиты оказалось достаточно зарегистрировать домен, который состоит только из unicode-символов. Для демонстрации метода зарегистрирован домен аррӏе.com, который не имеет отношения к компании Apple и отличается от домена apple.com использованием символа «ӏ», похожего по начертанию на «l», что делает его неотличимым в адресной строке.

При этом в имя домена задаётся только через Unicode-символы (xn--80ak6aa92e.com), используя наборы Unicode-символов для языков, включающих символы, похожие на латиницу. Так как все символы в таком домене относятся к набору для одного языка, защита от смешивания не срабатывает. Далее для такого домена удалось получить SSL-сертификат, что позволило создать иллюзию использования защищённого соединения к аррӏе.com.

Исправление с устранением уязвимости уже включено в кодовую базу Chromium и войдёт в состав выпуска Chrome 58. Для Firefox исправление пока находится в процессе разработки, для блокирования уязвимости предлагается отключить поддержку Punycode (в about:config network.IDN_show_punycode = true)

https://www.opennet.ru/opennews/art.shtml?num=46394

 , ,

Sahas
()

Добавить выполнение команды после каждого ввода в qtconsole

Работал кто-нибудь с qtconsole?

Надо встроить питоновскую консоль в приложение на PyQt, что я вроде как сделал. Теперь хочу, чтобы после каждой успешно выполненной команды в консоли выполнялась бы некоторая другая команда. Как это сделать?

Вот код для втроенной в GUI консоли, который я нашёл на просторах интернета:

class ConsoleWidget(JupyterWidget):
    def __init__(self, customBanner = None, *args, **kwargs):
        super(ConsoleWidget, self).__init__(*args, **kwargs)

        if customBanner is not None:
            self.banner = customBanner

        self.font_size = 6
        self.kernel_manager = kernel_manager = QtInProcessKernelManager()
        kernel_manager.start_kernel(show_banner = False)
        self.kernel_client = kernel_client = self._kernel_manager.client()
        kernel_client.start_channels()

        def stop():
            kernel_client.stop_channels()
            kernel_manager.shutdown_kernel()
            guisupport.get_app_qt().exit()

        self.exit_requested.connect(stop)

    def push_vars(self, variableDict):
        """
        Given a dictionary containing name / value pairs, push those variables
        to the Jupyter console widget
        """
        self.kernel_manager.kernel.shell.push(variableDict)

    def clear(self):
        """
        Clears the terminal
        """
        self._control.clear()

    def print_text(self, text):
        """
        Prints some plain text to the console
        """
        self._append_plain_text(text)

    def execute_command(self, command):
        """
        Execute a command in the frame of the console widget
        """
        self._execute(command, False)

 , , qtconsole

Sahas
()

Работа с графами

Ищу питоновскую библиотеку для работы с графами. Требуется: направленный граф, работа с большим количеством вершин, поддержка произвольного количества атрибутов для вершин, быстрый поиск всех «конечных» листьев, восстановление пути от листа к корню (путь может быть не единственным) и от вершины ко всем её «потомкам».

Нашёл три штуки: networkx, igraph и graph-tool. Кто что про них может сказать и какую лучше для моих целей использовать?

 ,

Sahas
()

Перестала работать звуковая карта

Точнее, даже не определяется. Ноут Acer SWIFT SF314-51-324Q

dmesg | grep snd

[    3.686109] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    3.707963] snd_hda_intel 0000:00:1f.3: no codecs initialized

aplay -l

aplay: device_list:268: no soundcards found...

lspci -v:

00:1f.3 Audio device: Intel Corporation Device 9d70 (rev 21)
	Subsystem: Acer Incorporated [ALI] Device 1140
	Flags: bus master, fast devsel, latency 32, IRQ 127
	Memory at b1220000 (64-bit, non-prefetchable) [size=16K]
	Memory at b1210000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: [50] Power Management version 3
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

Момент, в который звуковуха перестала работать, я не отследил. Но некоторое время назад всё работало. Сейчас не работает как в gentoo, так и в LiveCD Lubuntu 16.04.

У меня две версии, что могла произойти:

1) Карта «сгорела»

2) Виноват hibernate (до этого я его не использовал): карта перешла в «спящий» режим и «не вышла» из него (или что-то подобное). В пользу этого варианта — сообщение на одном из форумов:

The onboard sound card is not damaged or anything and the whole thing apparently had nothing to do with the alsa configuration. The problem was indeed this «wakeup disabled by ACPI» thing. There must have been a sudden «PCI address conflict». I moved my pci wireless card to another slot and sound is back.

Действительно, в dmesg есть такое:

[    0.360146] pci 0000:00:1f.3: System wakeup disabled by ACPI

pci 0000:00:1f.3 — это как раз адрес звуковухи

Куда копать? Как можно проверить карту? Не разбирая ноут... Думал, что с дровами проблема, перерыл весь гугл — решения не нашёл (да и не похоже, что с драйверами проблема — на двух разных системах не работает, хотя раньше работало)

 , , ,

Sahas
()

Ядро сообщает об утечке

Древний комп Athlon64 с Убунтой 16.04, картой NVIDIA GeForce 6200 и nouveau в качестве драйвера к ней. В некоторый (довольно произвольный) момент времени ядро выдаёт:

kernel: [157059.271864] [TTM] Erroneous page count. Leaking pages.

После чего (по-видимому) система намертво виснет (без каких-либо доп. сообщений), «магические» кнопочки не работают, только жёсткий reset. Очень похоже на то, что виснет из-за Nouveau, поскольку с блобом не замечал такого поведения (но зато с блобом не работает как следует OpenGL, а оно нужно). Что можно сделать?

P.S. Ответ «выкинь это старьё» я знаю, и он меня не устраивает.

 , , , ,

Sahas
()

Использование VTK

Использовал ли кто-нибудь VTK? Какие есть подводные камни и глюки? Интересует, в частности, возможность использования в режиме 3D моделирования (создания различных 3D-поверхностей и объектов).

И ещё вопрос: python binding для VTK эквивалентен вызовам из C++-библиотек? Т.е. если написать прототип на питоне, он легко переносится на C++?

Ну и вдогонку: кто-нибудь что-нибудь слышал не понаслышке про OpenCASCADE?

 , ,

Sahas
()

Веб-программисты совсем обленились...

Я просто оставлю это здесь:

«По техническим причинам в Личном кабинете при использовании браузера Mozilla Firefox ниже версии 50 может отсутствовать поле для выбора карты, с которой будет производится оплата, из-за чего кнопка «Перевести» неактивна. Для совершения оплаты / перевода необходимо обновить Ваш браузер до последней версии. Приношу извинения за доставленные неудобства.»

Версия используемого мной браузера: Firefox 45.6.0 ESR

Да, речь об онлайн-банке одного известного в узких кругах банка, а именно, Тинькова. С некоторых пор у них обновился интерфейс. Этот «новый, прогрессивный, модный и молодёжный» интерфейс просто тихий ужас...

 , , ,

Sahas
()

Двойной hibernate

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

«Не удалось выполнить действие „Спящий режим“. Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.»

После повторного включения всё нормально.

Похоже на то, что где-то просто задана слишком маленькая задержка (the reply timeout expired), но мои попытки найти конфиг этого дела ни к чему не привели. Стоит sys-power/pm-utils 1.4.1-r6. DE xfce4

 ,

Sahas
()

В OpenSSH обнаружены множественные уязвимости

 , ,

Sahas
()

Хочу mutex'ы при помощи MPI

Есть программа с межпроцессным взаимодействием на основе MPI. Хочу релизовать простейший mutex: каждый процесс должен выполнять некоторый участок кода «единолично». Как это лучше сделать (при помощи MPI)?

 ,

Sahas
()

Буфер при копировании файлов — всего 8К, почему так?

Собственно, при копировании файлов чтение и запись файла идёт через буфер buf, размер которого зашит в программе и равен 8К (см. mc-4.8.16/src/filemanager/file.c, строка 1799):

        while (TRUE)
        {
            char buf[BUF_8K];

            /* src_read */
            if (mc_ctl (src_desc, VFS_CTL_IS_NOTREADY, 0))
                n_read = -1;
            else
                while ((n_read = mc_read (src_desc, buf, sizeof (buf))) < 0 && !ctx->skip_all)

Собственно, почему такой, и не маловат ли?

Интерес мой возник в связи с использованием mc на GlusterFS: с некоторых пор очень медленно копирует (см. http://darksoft.org/webbzr/mydocs/trunk/annotate/head:/Administration/Server/...):

midnight-commander have very small copy buffer and for this reason performs really bad

Может, стоит увеличить размер буфера? Я сделал себе 2М и скорость копирования больших файлов возросла почти на 2 порядка :)

 , ,

Sahas
()

За информацию о способах обойти блокировку сайта будут штрафовать

«Роскомнадзор дополнил поправки в закон «Об информации...»: «зеркала» предложено приравнять к заблокированным сайтам, а за пропаганду средств обхода блокировки — ввести штрафы»

Кстати, там же пишут: «За неисполнение требований о пожизненной блокировке ресурсов уже пострадал провайдер «Юмос-Центр». Его услугами на заседании правительственного совета по кино воспользовался премьер Дмитрий Медведев: он смог зайти на «пожизненно» заблокированный торрент-трекер RuTracker.org.

Представитель Роскомнадзора объяснил тогда, что Медведеву удалось попасть на сайт из-за того, что «Юмос-Центр» находился в стадии ликвидации, а потому не ограничил доступ к трекеру. Однако, как выяснил РБК, письмо в Федеральное агентство связи о прекращении действия лицензии провайдер направил только после скандала с участием премьера.»

Насколько мне известно (из вторых рук), этот горе-премьер зашел на rutracker.ru, после чего в мгновение ока несчастные Юмосы были ликвидированы (хотя сами по себе и не собирались). Без суда и следствия, как говорится...

 , ,

Sahas
()

В России может быть создан государственный удостоверяющий центр для выдачи SSL-сертификатов

!Ъ: Ъ

Ъ:

«Администрация президента обсуждает, как дополнительно обезопасить передачу данных в интернете в случае конфликта с иностранными партнерами. Как стало известно „Ъ“, в России может быть создан государственный удостоверяющий центр (УЦ) для выдачи SSL-сертификатов, которые используют интернет-магазины, платежные системы и такие государственные порталы, как сайт Федеральной налоговой службы (ФНС) и gosuslugi.ru. Чтобы сделать использование SSL-сертификатов этого УЦ массовым, основных производителей операционных систем и браузеров — Microsoft, Google, „Яндекс“ и других — могут обязать предустановить в свои продукты специальный корневой сертификат.

...

Собеседник „Ъ“, близкий к АП, сообщил, что предустановка российского сертификата будет решаться на переговорах с компаниями--разработчиками ОС и браузеров и, если они не пойдут навстречу, „мерами законодательного регулирования“.»

Теперь мы не сможем пользоваться собственными сборками нашего любимого линукса, только «Унифицированным Государственным»?

P.S. Ох, мякотка!..

«Для обеспечения безопасности и защиты от сбора информации необходимо не только создать российский УЦ и добавить его в „доверенные“ во все ОС и браузеры, но и использовать во всех ОС, установленных на компьютерах российских пользователей, протокол SSL с российскими алгоритмами шифрования»,— считает господин Маслов. Связи компании с ФСБ он отрицает, но признает, что «около трети штата сотрудников „Крипто-Про“ действительно являются бывшими сотрудниками ФСБ».

 ,

Sahas
()

Что-то сломалось в Firefox'е в Gentoo

Похоже, в новом firefox в Gentoo что-то сломали в юникоде, и теперь не работает функция String.prototype.normalize().

Конкретно проблема появилась с плагином Zotero, ошибка: https://forums.zotero.org/discussion/56028/zotero-error-ref-429681554/

JavaScript Error: «Zotero.Utilities.trim(...).normalize is not a function» {file: «chrome://zotero/content/xpcom/search.js» line: 117}

Говорят, с ванильным firefox'ом всё ок, так что это именно баг в сборке в генте. Сломалось после последнего update, опции сборки firefox:

www-client/firefox-43.0::gentoo was built with the following:
USE="dbus gmp-autoupdate gstreamer hwaccel jemalloc3 jit minimal startup-notification wifi -bindist -custom-cflags -custom-optimization -debug -egl -gstreamer-0 -gtk3 -hardened (-neon) (-pgo) -pulseaudio (-selinux) -system-cairo -system-icu -system-jpeg -system-libvpx -system-sqlite -test" ABI_X86="64" LINGUAS="ru -af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -cy -da -de -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -si -sk -sl -son -sq -sr -sv_SE -ta -te -th -tr -uk -vi -xh -zh_CN -zh_TW"
CFLAGS="-march=native -pipe -Wno-error"
CXXFLAGS="-march=native -pipe -Wno-error"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-rpath=/usr/lib64/firefox"

Upd: с firefox-bin тот же баг

Upd2: кстати, чтобы два раза не вставать: а что это за фигня случилось с контекстным меню в новом firefox? Теперь выпадает длиннющий список, в котором 99% ненужноты и хрен что найдешь... Как это отключить?

Пойду-ка откачусь на стабильную версию 38.5...

Upd3: поставил www-client/firefox-bin-38.5.0, всё работает...

Update4: действительно, проблема решилась путём установки use-флага system-icu. И меню «укоротилось»...

Спасибо Lifun и Lavos!

 , ,

Sahas
()

Установка 64битного Linux из-под 32битного Linux на другой HDD

Можно ли из-под запущенного 32-битного Linux установить систему на другой полностью чистый hdd? Интересует именно возможность установки без использования LiveCD.

Беглый поиск в инете говорит, что можно попробовать сделать это через виртуализацию (например, при помощи VirtualBox и raw-hdd). Может, у кого есть опыт/годные идеи?

Зачем это надо: чтобы можно было параллельно с установкой продолжить работать в 32-битной системе и просто из теоретического интереса.

 , ,

Sahas
()

Я.Маркет всё?

404

 ,

Sahas
()

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