Задать вопрос
  • Как обновить строку в bash?

    @galaxy
    Используйте терминальные символы-команды:
    printf "\r" # вернуться в начало строки
    printf "\033[K" # удалить все до конца строки

    Еще команды
    Ответ написан
    Комментировать
  • Ограничить подключение к БД?

    shushu
    @shushu
    То что они не показываются в панели, еще не значит что оно не применяется к Базе данных.
    Попробуйте установить какой то параметр (например: max_connections), после того как вы установили параметр (это важно) подключится к базе данных и выполнить следующий запрос:

    show variables like 'max_connections';

    Будет ли утсановленное значение ? Если да - то параметр применился - и все работает.
    Ответ написан
    8 комментариев
  • Какое есть ПО для авторизации к ресурсу?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    У nginx есть ldap
    https://github.com/nginxinc/nginx-ldap-auth

    Или просто дайте пользователям VPN это самое оптимальное решение.
    Ответ написан
    Комментировать
  • Скажите что творится на mikrotik?

    aeroseo
    @aeroseo
    Обновить прошивку до актуальной.
    Блокировать входящие на 53-м порту по UDP из WAN
    Ответ написан
    Комментировать
  • Второй HDD перестал отвечать на запросы системы, как отформатировать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если информация на HDD действительно важна, то несите его специалисту для восстановления, но это очень дорого.
    Если не важна, то выбрасывайте и ставьте новый.
    Ответ написан
    1 комментарий
  • Как лучше подключить ПК к интернету?

    flapflapjack
    @flapflapjack
    на треть я прав
    Через провод к маршрутизатору. Wi-Fi эфир может быть загружен микроволновками, беспроводными мышами и другими роутерами.
    По проводу вы получите скорость без ограничений WiFi
    Ответ написан
    Комментировать
  • 2 основных шлюза на Linux ubuntu?

    hint000
    @hint000
    у админа три руки
    Писать скрипт, который будет запускаться по cron'у, проверять доступность и перенастраивать маршрут.
    Само собой (без скрипта) будет работать при двух условиях:
    1) каждый шлюз подключен через свой интерфейс;
    2) должен физически падать линк на одном из интерфейсов, тогда маршрут пойдёт через другой, в соответствии с метрикой; если нет пинга, но есть линк - хоть ты тресни, будет долбиться по минимальной метрике. Согласен, что это довольно тупо для 2020 года, но как есть.

    P.S. ну или всякие протоколы динамической маршрутизации использовать, это отдельный разговор.
    Ответ написан
    Комментировать
  • Как мониторить бэкап бд zabbix?

    @mureevms
    Не уверен, что есть готовые решения. Я бы сделал так. От простого к сложному. Не все пункты обязательны. Можно сделать только первую проверки, можно все. Все пункты достаточно легко скриптуются.
    1. Проверка существования файла. Мы знаем в какое время делается бэкап, поэтому можно делать проверку на существование файла в заданных пределах по времени создания или же отфильтровать по маске даты.
    2. Проверка на не нулевой и адекватный размер. Известно, что архивированный дамп весит, например, 10MB, то проверкой будет соответствие, что файл не меньше этих 10MB.
    3. Проверка на читаемость. Надо разархивировать файл, чтобы проверить не битый ли он.
    4. Проверка существования актуальных данных внутри файла. Прогрепать файл на существование в нем каких-то вхождений.
    5. Проверка разворачивания дампа на отдельном SQL инстансе или базе.

    4 и 5 сомнительные, поскольку в большинстве случаев достаточно первых трех.
    Ответ написан
    Комментировать
  • Куда пойти на удаленную стажировку сисадмином?

    paran0id
    @paran0id
    Умный, но ленивый
    Удалённой работы для сисадминов в целом не очень много, а стажировка в принципе подразумевает тесное взаимодействие, обмен опытом с коллегами, ну и надзор с их стороны. Мне никогда не встречались вакансии, подобные той, которую вы ищете.

    Что же касается сертификации - без опыта она не поможет, а с опытом как бы уже и не нужна.
    Ответ написан
    5 комментариев
  • Почему windows удаляет загрузочную запись linux?

    Demosfen
    @Demosfen
    А это не fast boot так хулиганит, случаем?
    Ответ написан
    Комментировать
  • Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

    Kozack
    @Kozack
    Thinking about a11y
    Смотрите на это под другим углом. Нет строго определённых критериев что верстальщик должен уметь а что нет. У каждой компании они свои. И в ваших интересах уметь то, что нужно для большинства компаний на рынке. Конкретно для этой вы должны уметь поднимать сервер. А в другой вы должны будете работать с git. А в третьей общаться на немецком. А где-то вас могут не взять, уже потому что коммуникативные навыки у вас слабые, и другим работать с вами не комфортно.

    Если на этапе собеседования вы о себе не приврали, то ваш наниматель прекрасно знает, что вы этого не умеете. В таком случае вы вполне можете подойти к старшему разработчику и попросить рассказать о внутреннем стеке, как поднимать сервера, какие библиотеки, инструменты используются, каких версий и так далее. Чтобы вам всё показали, рассказали и научили.
    Ответ написан
    12 комментариев
  • Какую ос для NAS Выбрать?

    shabelski89
    @shabelski89
    engineer
    Я давно пользуюсь ОМВ.
    Ответ написан
    Комментировать
  • Как в коде определить версию Ubuntu?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Стандартное решение это использование autoconf
    Он сам в состоянии определить библиотеки в системе, и назначить нужные дефайны

    https://www.gnu.org/software/autoconf/manual/
    Ответ написан
    Комментировать
  • Как сохранить вывод с консоли в файл?

    idegree
    @idegree
    Senior Workaround Developer
    strace python3 main.py > out.txt 2>&1
    Ответ написан
    Комментировать
  • Что значат скрипты gitlab-ci?

    Oxyd
    @Oxyd
    Linux enthusiast
    Давайте я расставлю пробелов, что-б было нагляднее...
    export SUBDOMAIN=$(echo $CI_COMMIT_REF_NAME  |  cut -d'/' -f2)

    export SUBDOMAIN -- делаем переменную SUBDOMAIN "глобальной", то-есть она сохранится даже после завершения работы скрипта(но только до завершения сеанса командной оболочки).
    Всё что находится между $( ), это ммм... литерал, полученный в результате последовательной обработки значения переменной $CI_COMMIT_REF_NAME
    Вкратце --
    echo $CI_COMMIT_REF_NAME | cut -d'/' -f2
    утилита есho просто печатает на экран значение переменной $CI_COMMIT_REF_NAME . Оператором | мы заставляем её не печатать на экране, а передавать на вход утилите cut, из комплекта GNU coreutils(если меня не глючит мой склероз) cut умеет обрезать строки по определённым правилам. man cut:

    cut - remove sections from each line of files

    SYNOPSIS
    cut OPTION... [FILE]...
    DESCRIPTION
    Print selected parts of lines from each FILE to standard output.
    With no FILE, or when FILE is -, read standard input.
    Mandatory arguments to long options are mandatory for short options too.
    -b, --bytes=LIST
    select only these bytes
    -c, --characters=LIST
    select only these characters
    -d, --delimiter=DELIM
    use DELIM instead of TAB for field delimiter
    -f, --fields=LIST
    select only these fields; also print any line that contains no de‐
    limiter character, unless the -s option is specified
    -n (ignored)
    --complement
    complement the set of selected bytes, characters or fields
    -s, --only-delimited
    do not print lines not containing delimiters
    --output-delimiter=STRING
    use STRING as the output delimiter the default is to use the input
    delimiter
    -z, --zero-terminated

    cut -- читает строки(в вашем случае скорее всего одну строку), в качестве разделителя между полями использует символ / и печатает в результате только второе поле. То-есть если сделать так:
    echo "a/bb/cc/d" | cut -d'/' -f2  #то на выходе мы получим строку bb

    Вот как это выглядит на практике.
    kpFoxAx.png

    Это ответ на вопрос номер 1 ;-)

    Ответ на вопрос номер два... Впрочем вы сейчас сами всё поймёте, когда я из однострочника сделаю многострочник...
    export LINK=$(if  [ $CI_JOB_NAME = "Run with DB" ]; 
                                then 
                                   echo $SUBDOMAIN; 
                             else 
                                   echo "master"; 
                            fi)

    Теперь понятно, что такое fi? Это просто закрывающая скобка к if. -- if наоборот, или fin ;-)
    Ответ написан
    Комментировать
  • Объясните, как работают несколько left join?

    WStanley
    @WStanley
    Back-end Developer
    Доброго!
    Оценок у одной книги может быть несколько, жанров как я понял тоже, вот строки и задваиваются, чтобы увидеть это просто уберите группиворку и выполните запрос. Это поможет понять что происходит. А лучше уберите группировку и по очереди джойните таблицы анализируя результат, все станет понятно.

    Если на пальцах объяснять то к каждому id книги будут прикреплены все оценки этой книги
    book | rating
    ---------------
     1   |    4
     1   |    5

    Если вы джойните еще одну таблицу то картина будет примерно такой
    book | rating | gename
    ----------------------
      1   |  4    |  g1
      1   |  4    |  g2
      1   |  5    |  g1
      1   |  5    |  g2

    Соответственно после группировок у вас:
    book | rating | gename
    ----------------------
      1   |  4.5    |  g1, g2, g1, g2

    А чтоб решить проблему используйте GROUP_CONCAT_DISTINCT
    Он исключит повторяющиеся значения
    book | rating | gename
    ----------------------
      1   |  4.5    |  g1, g2

    p.s. В любой непонятной ситуации убирай группировку
    Ответ написан
    1 комментарий
  • Возможно ли массовое изменение update interval в Zabbix?

    @Dmitrydprog Автор вопроса
    Есть обходной вариант, можно подключиться к БД заббикса и в таблице items выполнить update:
    zabbix=# select name, delay, history, timeout from items where name like '%access%' limit 30;
            name         | delay | history | timeout
    ---------------------+-------+---------+---------
     access.log(5xx)     | 30s   | 90d     | 3s
     access.log(2xx|3xx) | 30s   | 90d     | 3s
     access.log          | 30s   | 90d     | 3s
     access.log(4xx)     | 30s   | 90d     | 3s
     access.log(3xx)     | 30s   | 90d     | 3s
    
    zabbix=# update items set delay = '60s' where name like '%access%';
    UPDATE 5
    Ответ написан
    Комментировать
  • Агрегация интернет-каналов: на ПК создать VM-суммирующий сервер?

    Melkij
    @Melkij
    PostgreSQL DBA
    Получается, что можно сделать свою виртуальную машину (суммирующий сервер)

    Да.

    не придётся собирать Raspberry Pi

    Да.

    не придётся арендовывать сервер

    Нет.
    MPTCP должны уметь хосты и принимающие и отправляющие данные.

    На одном только отправителе - старый добрый LARTC и multihome routing со своими ограничениями
    Ответ написан
  • Как лучше сохраняться данные с сайта в ClickHouse?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Схема в общем-то рабочая, но стоит все же предусмотреть некоторые нюансы:
    Создаю сервер с nginx и ClickHouse на Ubunta в одном месте
    Вы уверены, что одна единственная машина, нагруженная одновременно и nginx и CH и redis и php/python справится с Вашей нагрузкой?
    Я бы сразу закладывал, что раньше позже CH уедет на отдельную машину (а то и на 2), redis + php/python будут жить в парах на множестве машин, а nginx будет балансировать нагрузку с отдельной машины.
    раз в N секунд скриптом на python/php через cron кладет данные в ClickHouse

    Тут сразу 2 момента:
    Во-первых, при миллиарде записей CH вполне может пересчитывать индексы пару минут. +1000 записей за 10 инсертов конечно лучше, чем +1000 записей за 1000 инсертов... но все же заметно хуже чем +1000 записей за 1 инсерт.
    Во-вторых, при пиковой нагрузке у Вас может закончится память, и redis уйдет на диск, потеряв всю скорость от inMemory работы. Конечно Вы тут еще и упретесь в количество активных потоков под php и начнете его балансировать. Так что одно из решений будет уже описанное выше, что на каждой машине с php/python свой redis. А там как повезет с нагрузкой.
    Но все же я бы сразу делал выгрузку из redis в CH умнее, чем тупо каждые N секунд выгружаем все что есть. Лучше если будет выгрузка и по времени (при этом реже) и по количеству данных для записи.
    Ну и еще, задумайтесь сразу как делить данные в redis по принадлежности к интервалу записи
    Ответ написан
    Комментировать
  • Как восстановить данные с диска?

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