Уже голову сломал, но не могу понять, почему не работает скрипт удавления старых бэкапов по крону. Причём аналогичный скрипт создания бэкапов работает по крону нормально, и скрипт удаления при запуске из командной строки также нормально работает.
Вот скрипт /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
Можно как-нибудь это дело отладить, либо лог записать куда?..
Для кросс-компиляции поставил 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/
Компилируется и вылетает с ошибкой при попытке линковки:
Есть проект на C++. Надо вызывать некоторые функции (или лучше сказать, методы класса) из библиотеки, написанной на Python.
Я прочесал гуглинтернет и нашёл следующие наиболее распространённые подходы: использование Python C-API и Boost.Python. Дальше я впал в ступор, так как не могу выбрать лучший вариант. С одной стороны, Boost хорош всем, за исключением его «жирности». С другой стороны, C-API — это наиболее «прямой» путь, но есть подозрения, что делать обёртку Python-функций на нём — то ещё приключение...
Поэтому прошу помощи у гуру, кто уже делал что-либо подобное.
Упрощённый пример кода смогу подогнать, если потребуется...
Update: всем спасибо, остановился на pybind11 — просто и со вкусом :)
Китайский исследователь Чжэн Сюдун (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)
Надо встроить питоновскую консоль в приложение на 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)
Ищу питоновскую библиотеку для работы с графами. Требуется: направленный граф, работа с большим количеством вершин, поддержка произвольного количества атрибутов для вершин, быстрый поиск всех «конечных» листьев, восстановление пути от листа к корню (путь может быть не единственным) и от вершины ко всем её «потомкам».
Нашёл три штуки: networkx, igraph и graph-tool. Кто что про них может сказать и какую лучше для моих целей использовать?
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 — это как раз адрес звуковухи
Куда копать? Как можно проверить карту? Не разбирая ноут... Думал, что с дровами проблема, перерыл весь гугл — решения не нашёл (да и не похоже, что с драйверами проблема — на двух разных системах не работает, хотя раньше работало)
Древний комп Athlon64 с Убунтой 16.04, картой NVIDIA GeForce 6200 и nouveau в качестве драйвера к ней. В некоторый (довольно произвольный) момент времени ядро выдаёт:
После чего (по-видимому) система намертво виснет (без каких-либо доп. сообщений), «магические» кнопочки не работают, только жёсткий reset. Очень похоже на то, что виснет из-за Nouveau, поскольку с блобом не замечал такого поведения (но зато с блобом не работает как следует OpenGL, а оно нужно). Что можно сделать?
P.S. Ответ «выкинь это старьё» я знаю, и он меня не устраивает.
Использовал ли кто-нибудь VTK? Какие есть подводные камни и глюки? Интересует, в частности, возможность использования в режиме 3D моделирования (создания различных 3D-поверхностей и объектов).
И ещё вопрос: python binding для VTK эквивалентен вызовам из C++-библиотек? Т.е. если написать прототип на питоне, он легко переносится на C++?
Ну и вдогонку: кто-нибудь что-нибудь слышал не понаслышке про OpenCASCADE?
«По техническим причинам в Личном кабинете при использовании браузера Mozilla Firefox ниже версии 50 может отсутствовать поле для выбора карты, с которой будет производится оплата, из-за чего кнопка «Перевести» неактивна. Для совершения оплаты / перевода необходимо обновить Ваш браузер до последней версии. Приношу извинения за доставленные неудобства.»
Версия используемого мной браузера: Firefox 45.6.0 ESR
Да, речь об онлайн-банке одного известного в узких кругах банка, а именно, Тинькова. С некоторых пор у них обновился интерфейс. Этот «новый, прогрессивный, модный и молодёжный» интерфейс просто тихий ужас...
В принципе, 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
Есть программа с межпроцессным взаимодействием на основе MPI. Хочу релизовать простейший mutex: каждый процесс должен выполнять некоторый участок кода «единолично». Как это лучше сделать (при помощи MPI)?
Собственно, при копировании файлов чтение и запись файла идёт через буфер 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)
«Роскомнадзор дополнил поправки в закон «Об информации...»: «зеркала» предложено приравнять к заблокированным сайтам, а за пропаганду средств обхода блокировки — ввести штрафы»
Кстати, там же пишут: «За неисполнение требований о пожизненной блокировке ресурсов уже пострадал провайдер «Юмос-Центр». Его услугами на заседании правительственного совета по кино воспользовался премьер Дмитрий Медведев: он смог зайти на «пожизненно» заблокированный торрент-трекер RuTracker.org.
Представитель Роскомнадзора объяснил тогда, что Медведеву удалось попасть на сайт из-за того, что «Юмос-Центр» находился в стадии ликвидации, а потому не ограничил доступ к трекеру. Однако, как выяснил РБК, письмо в Федеральное агентство связи о прекращении действия лицензии провайдер направил только после скандала с участием премьера.»
Насколько мне известно (из вторых рук), этот горе-премьер зашел на rutracker.ru, после чего в мгновение ока несчастные Юмосы были ликвидированы (хотя сами по себе и не собирались). Без суда и следствия, как говорится...
«Администрация президента обсуждает, как дополнительно обезопасить передачу данных в интернете в случае конфликта с иностранными партнерами. Как стало известно „Ъ“, в России может быть создан государственный удостоверяющий центр (УЦ) для выдачи SSL-сертификатов, которые используют интернет-магазины, платежные системы и такие государственные порталы, как сайт Федеральной налоговой службы (ФНС) и gosuslugi.ru. Чтобы сделать использование SSL-сертификатов этого УЦ массовым, основных производителей операционных систем и браузеров — Microsoft, Google, „Яндекс“ и других — могут обязать предустановить в свои продукты специальный корневой сертификат.
...
Собеседник „Ъ“, близкий к АП, сообщил, что предустановка российского сертификата будет решаться на переговорах с компаниями--разработчиками ОС и браузеров и, если они не пойдут навстречу, „мерами законодательного регулирования“.»
Теперь мы не сможем пользоваться собственными сборками нашего любимого линукса, только «Унифицированным Государственным»?
P.S. Ох, мякотка!..
«Для обеспечения безопасности и защиты от сбора информации необходимо не только создать российский УЦ и добавить его в „доверенные“ во все ОС и браузеры, но и использовать во всех ОС, установленных на компьютерах российских пользователей, протокол SSL с российскими алгоритмами шифрования»,— считает господин Маслов. Связи компании с ФСБ он отрицает, но признает, что «около трети штата сотрудников „Крипто-Про“ действительно являются бывшими сотрудниками ФСБ».
Upd2: кстати, чтобы два раза не вставать: а что это за фигня случилось с контекстным меню в новом firefox? Теперь выпадает длиннющий список, в котором 99% ненужноты и хрен что найдешь... Как это отключить?
Пойду-ка откачусь на стабильную версию 38.5...
Upd3: поставил www-client/firefox-bin-38.5.0, всё работает...
Update4: действительно, проблема решилась путём установки use-флага system-icu. И меню «укоротилось»...
Можно ли из-под запущенного 32-битного Linux установить систему на другой полностью чистый hdd? Интересует именно возможность установки без использования LiveCD.
Беглый поиск в инете говорит, что можно попробовать сделать это через виртуализацию (например, при помощи VirtualBox и raw-hdd). Может, у кого есть опыт/годные идеи?
Зачем это надо: чтобы можно было параллельно с установкой продолжить работать в 32-битной системе и просто из теоретического интереса.