Задать вопрос
  • Как запретить обновление всех пакетов в Ubuntu?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Не очень понятна суть вопроса. Если просто не ставить и не обновлять ничего, то ничего не обновится. Или хочется, чтобы ничего не было обновлено по зависимостям, в том числе никакие библиотеки, но можно было ставить новые пакеты? Это почти без вариантов, если не сидеть на очень stable-ветке и своём собственном замороженном зеркале пакетов, ведь новая версия пакета в регулярно обновляемом репозитории может зависеть от новых версий библиотек, для которых и старой-то версии уже в репозитории нет.
    Ответ написан
    Комментировать
  • Шаблон скрипта перехода по ссылке каждые Х секунд?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    while True:
      _do_any_work_with_your_url_
      time.sleep(30)


    Для дёргания url смотреть в сторону библиотек urllib или requests.
    Ответ написан
    2 комментария
  • Как сделать несколько воркеров на одну задачу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Самый простой и по рабоче-крестьянски наивный способ - создать один общий для всех воркеров файл и ставить на него эксклюзивную блокировку (flock LOCK_EX) в момент взятия из очереди. Например, пусть у задачи есть поле proc_status, которое имеет значения NEW, RUNNING, FINISHED, FAILED. Тогда ставим блокировку, берём из базы задание в статусе NEW, делаем update set proc_status='RUNNING' и снимаем блокировку - никто другой одновременно с нами ту же задачу не возьмёт. Финальный статус можно ставить без блокировки.

    Вместо блокировки файла можно использовать блокировки в самой базе, если они там есть (с Mongo не имел дела).

    Ещё один не менее простой способ - распределять задачи по идентификаторам. Например, пусть у нас N воркеров, тогда пусть воркер k (где k=0...N-1) обрабатывает только те задания, где id%N=k.

    В общем, способы есть.
    Ответ написан
    Комментировать
  • Сервис по запоминанию паролей к сайтам?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вообще говоря, под условия задачи подходит pass (passwordstore.org). Всем сотрудникам заводить gpg-ключ и учётку в git, далее хранить там пароли в зашифрованном виде для каждого ключа. Для pass есть даже графический интерфейс (qtpass). И на сторону пароли при этом не уходят. Но, к сожалению, это слишком технарски-гиковое решение, может быть слишком сложным в организации для данного контингента (видимо, это такие контент-менеджеры, ведущие всякие группы в соцсетях).
    Ответ написан
    Комментировать
  • Почему header нельзя использовать после оператора вывода?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Потому что в протоколе HTTP заголовки выдаются до любого контента. Если контент уже хотя бы частично выдан, то Header'ы уже выводить нельзя (хотя это можно обойти через ob_start).
    Ответ написан
    5 комментариев
  • .htaccess ErrorDocument 404 с помощью js?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никак. 404 выдаёт сервер, а js выполняется на клиенте.
    Ответ написан
    Комментировать
  • Почему JS решил задачу на рекурсию гораздо быстрее Python/Lua?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Когда-то давно один товарищ обнаружил, что реализация вычисления чисел Фибоначчи через рекурсию на Java работает быстрее, чем её аналог на C. Он не только поудивлялся этому, но и поизучал вопрос. Оказалось, что gcc в каждом вызове функции делал push si; push di; и по окончании pop si; pop di; хотя регистры si и di в скомпилированном коде никак не использовались. Это давало какие-то микроскопические, но всё же расходы времени.

    Любой конкретный тест специфичен, он показывает не то, как быстро работает тот или иной язык (точнее, его конкретная реализация), а какие в этой реализации получились расходы времени на конкретную задачу. В другой задаче, в другой реализации того же языка, просто даже на другом оборудовании может получиться другой результат.
    Ответ написан
    Комментировать
  • Memory_get_usage на хостинге и Денвере отличаются показатели, Почему?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Операционная система, её разрядность, загруженные расширения - всё влияет.
    Ответ написан
    Комментировать
  • Почему не заполняется база данных SQLite?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Включить autocommit или в конце скрипта либо после каждого запроса делать con.commit()
    Ответ написан
  • Насколько надёжный данный шифр?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Классические шифры полагаются на то, что никто не догадывается, как их расшифровать, а подбор вручную может быть не очень простым делом. И то, на самом деле, некоторые из них ломаются очень просто. Например, шифр простой замены ломается частотным анализом, а шифр сдвига - просто перебором разных вариантов сдвига, число которых не превышает длины алфавита.

    С появлением вычислительной техники всё изменилось. Неважно, каким запутанным для человека является шифр, машина может очень эффективно проверить хоть миллион разных "классических" вариантов с самыми разными алгоритмами и ключами. Тут даже алгоритм скрывать бесполезно, если его можно угадать подбором и комбинированием.

    Основа современной криптографии - вычислительная сложность. Можно даже всё знать об алгоритме шифрования - но за разумное время расшифровать не получится. Но старинные методы шифрования "символ-в-символ" вычислительно очень просты и никак не годятся в современном мире.
    Ответ написан
    8 комментариев
  • Нужен ли python для системных администраторов?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Знание языка программирования - а лучше нескольких - это всегда плюс. Помогает как в написании своих скриптов, так и в отладке/переиспользованию чужих. И, конечно, качества и распространённость таких языков влияют. Но это всё равно опционально, в отличие от знания bash. Хотя, конечно, не знать совсем ни одного языка больше похоже на крайность, чем на норму.
    Ответ написан
    Комментировать
  • Почему письма не доходят в Gmail?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для начала проверяем RDNS/DKIM/SPF и всё такое. Большинство почтовиков очень плохо отнесутся к письму с невнятного хоста.
    Ответ написан
    Комментировать
  • Как скопировать значение из ячейки, google sheets?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Копировать A1 в буфер и затем вставлять в B1 как Edit->Paste special->Paste values only.
    Ответ написан
    3 комментария
  • Почему при попытке передачи словаря как аргумента map() появляется ошибка?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Потому что map принимает list в качестве второго аргумента, а приведение dict к list - это список ключей, так что obj в lambda будет строкой.

    Можно посмотреть, что покажут эти print для понимания:

    print (list(a))
    print (list(map(lambda x: x, a)))


    Решение: вместо obj['id'] использовать в lambda-выражении a[obj]['id']
    Ответ написан
    Комментировать
  • Как залить телеграмм бота на пайтоне на сервер?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если на хостинге нет модуля telebot, то его туда надо установить (как правило можно сделать командой pip install telebot). Вот их собственная инструкция на этот счёт https://help.pythonanywhere.com/pages/InstallingNe...
    Ответ написан
  • Почему не работает fdisk в debian 10 buster?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    dpkg -L fdisk покажет все файлы в пакете fdisk.
    which fdisk найдёт полный путь к fdisk по каталогам в $PATH.

    Скорее всего нужный будет в /sbin/fdisk. И скорее всего не файл отсутствует, а в $PATH нет каталога /sbin.
    Ответ написан
    3 комментария
  • Не получается скачать сайт через wget, почему?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для изучения нет никакой нужды "скачивать" этот сайт. Достаточно консоли браузера.
    Ответ написан
  • Не парсится дата с сайта. Что делать?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Эти данные заполняет javascript на сайте (с включённым uMatrix у меня тоже ничего не показало). Надо разобраться, что и как скрипт делает, и воспроизвести его логику. Подозреваю, что нужные данные находятся в параметре vfa формы finanaliz-form, но дальше разбираться мне лень.
    Ответ написан
    Комментировать
  • Как быть с длинными цепочками связей между таблицами?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вполне нормально. Главное построить все нужные индексы. Базы данных специально разрабатывают под то, чтобы они такие запросы выполняли максимально эффективно.

    Уменьшить количество таблиц в join можно с помощью денормализации или кэшированием части таблиц в памяти, но для учебного проекта нет никакого смысла заморачиваться.
    Ответ написан
    Комментировать