• Почему zabbix шлет повторные уведомления?

    @dredd_krd
    Вы уверены, что триггер не "скачет" в состояние ОК, и сразу обратно в PROBLEM? Посморите в триггерах (Мониторинг -> Триггеры), когда этот триггер срабатывал, сколько длились состояния, и пр. Просто так оповещения он не должен рассылать, только при наступлении события
    Ответ написан
    Комментировать
  • Как безопасно открыть доступ к MySql для разработчиков?

    @dredd_krd
    Можно в конфиге MySQL сделать bind-address=0.0.0.0, и внутри самого MySQL создать пользователя с доступом с конкретного IP. Либо поднять что-либо вроде phpmyadmin, где запретить рутовый доступ. Обезопасить - назвать папку как-нибудь сложно, чтоб подобрать не могли, или опять же разрешить доступ к этому хосту с определённых IP-адресов в "Allow from ...", если IP статические.
    Для разработчиков будет достаточно обоих вариантов.
    Ответ написан
    Комментировать
  • Какие книги есть по сетевым технологиям?

    @dredd_krd
    Так же есть замечательный цикл статей - Сети для самых маленьких. Самому интересно было читать, а так же несколько знакомых нашли для себя в них много чего полезного. Тоже рекомендую глянуть
    Ответ написан
    Комментировать
  • Как постоянно обрабатывать события на php?

    @dredd_krd
    У PHP есть функция, выполняемая в коде: set_time_limit ( int $seconds );. При передаче 0 в параметре конкретно этот скрипт будет жить вечно, пока не появится фатальная ошибка/не крашнется, и т.п..
    Конечно, реализовывать через PHP таких демонов не комильфо, но в качестве исключения ничего плохого в этом не вижу. PHP так же может реагировать на сигналы, умеет управлять своим процессом почти как настоящий демон, поэтому реализовать вполне реально.

    Второй вариант - запускать скрипт постоянно по крону (или по планировщику в виндах), но при единственной проверке в коде, проверки эти будут проходить каждую минуту, что может не подойти (зависит от задачи).
    Я бы написал демона с бесконечным временем выполнения и первое время мониторил бы его работу каким-нибудь другим скриптом, чтоб убедиться, что оно летает и не падает.
    Памяти/процессора он жрёт не много, фактически работать всё будет. А то, что PHP для этого не используется - это просто издержки программерских религий :)
    Ответ написан
    6 комментариев
  • Как настроить IP адрес из подсети 172.16.99.0 с маской 255.255.255?

    @dredd_krd
    Вопрос в том, для чего нужно подключение: если нужно просто на него зайти и отконфигурировать - достаточно прописать, скажем, 172.16.99.111 с маской 255.255.255.0 дополнительным IP-адресом на сетевой, и тогда одновременно останется и интернет, и будет доступен шлюз.
    Если же нужно переключить интернет так, чтобы он приходил с другого устройства - дополнительно к действиям первого пункта меняем ещё и "основной шлюз" на 172.16.99.1
    Конечно, всё это в случае, если GSM-шлюз физически подключен к той же сети, где вы сейчас и находитесь.
    Ответ написан
    Комментировать
  • Как через коммутаторы получить соединение между Linux серверами 2 Гбит\с?

    @dredd_krd
    Если нужно по результирующему линку гонять соединения только между 2-мя серверами, то поможет режим balance-rr (bond_xmit_hash_policy его умеет) - он делит трафик не по адресам/макам/итп, а последовательно каждый следующий пакет отправляет то туда, то сюда.

    Фундаментальный вопрос: какой стандарт портов в сетевых картах и коммутаторах? 1000Base-T или 1000Base-TX?
    Дело в том, что стандарт ТX даёт гигабит в каждом направлении по одному линку, когда T подразумевает гигабит в сумме входящего/исходящего направлений. Сетевухи могут быть TX, но коммутаторов, поддерживающих TX, я видел лишь единицы, и стоили они дорого.
    Так вот прикол в том, что стандарт Т - это узкое место, и если коммутаторы не поддерживают TX (а по тестам я предполагаю, что это так), то одновременно 2 гигабита туда и 2 гигабита обратно не будет никогда.

    Так вот, ответы:
    1. Возможно, нет, надо сначала посмотреть на тип портов и убедиться в том, что "затык" может быть именно в этом
    2. Полностью. Как правило, если соединений много, то layer2+3, layer3+4 и т.п. - они работают замечательно и стараются сбалансировать трафик максимально ровно, однако при одном компьютере (и особенно на одном соединении, которое генерирует iperf!) смысла в них крайне мало, поэтому такой тип трафика нормально балансировать будет только round-robin.

    UPD:
    Посмотрел, в этой модели порты "IEEE 802.3ab 1000BASE-T Gigabit Ethernet", т.е. по каждому гигабит будет в сумме направлений. В таком случае о полных 2-х гигабитах рекомендую временно забыть и проверять iperf-ом трафик не одновременно, а сначала в одну, потом в другую сторону, и следить при этом за равномерностью загрузки линков (с точки зрения коммутатора), включив со сторон серверов round-robin. Если трафик по обоим каналам будет идти равномерно, значит проблема только в типе порта. Значит надо искать коммутатор с поддержкой 1000BASE-TX
    Ответ написан
    8 комментариев
  • Стоит ли менять специальность в ВУЗЕ?

    @dredd_krd
    Прикладные специальности изначально "фундаментальными" (или "основными") не являются. Вычислительные системы уже более специализированы и приближены к глубокому изучению информатики, и т.п., когда экономика (к чему сейчас информатика прикреплена) туда вообще никак не входит.
    На Вашем месте я бы перевелся, т.к. в любом случае это будет сильно ближе к программированию, чем прикладной статус информатики.
    Ответ написан
    Комментировать
  • Как выбрать спутниковый конвертер для Триколор?

    @dredd_krd
    Триколоровский спутник находится в выгодном для нашей долготы месте, в зависимости от города - или строго на юге, или где-то рядом (меньшее влияние атмосферы, меньше облаков, и т.д.), и сигнал у него достаточно хороший.
    Надо посмотреть по карте покрытия, если находитесь в зоне >50dB, то сильно париться насчет качественных конвертеров не надо, лично пробовал совершенно разные конвертеры - все работают великолепно. Сейчас без проблем работают конвертеры Golden Interstar.

    количество выходов на конверторе должно соответствовать количеству подключаемых ресиверов
    Обычно да, но делается это как раз потому, что разные транспондеры могут работать в разных диапазонах и поляризациях, а подключенные последовательно ресиверы могут работать только в одном из 4-х режимов.
    Транспондеры триколора как правило работают в одном и том же диапазоне и поляризации, и поэтому Loop-ы возможны, и работать будут. Loop-ил гирлянду из 4 ресиверов, проблем не было. А вот насчет других спутников уже надо смотреть, и если есть 2 транспондера в разных режимах, каналы с которых хочется смотреть одновременно - тогда уже не обойтись без отдельного кабеля от конвертера.
    Ответ написан
  • Добавление записей к существующей записи в mysql?

    @dredd_krd
    Для изменения строки делается UPDATE, для добавления - INSERT. Вот видимо здесь имеют место попытки именно добавить, а не изменить запись.

    Если же уникальность должна придавать связка слово-страна, то рекомендую добавить уникальный ключ на эти 2 поля, и тогда при инсерте, если такая связка уже существует, поле толкования будет обновляться, а не создаваться ещё одно:
    INSERT INTO `tbl` (`word`, `country`, `interpret`, `translate`) VALUES ('bla', 'bla', 'bla', 'bla') ON DUPLICATE KEY UPDATE `interpret` = VALUES(`interpret`), `translate` = VALUES(`translate`);
    Ответ написан
    Комментировать
  • Как лучше организовать отказоустойчивость между дата-центрами?

    @dredd_krd
    И быстрыми NS-ами буду переключать точку входа в проект, менять А-запись для домена, в последствии автоматизирую это переключение.

    В любых ОС реализовано кэширование DNS. Если возможности его отключить нет, то идея с DNS скорее всего провальна. Да и смотря сколько кэш держит.

    Как мне кажется, можно сделать репликацию master-master между двумя хранилищами, и в коде фронтенда (если же он будет находиться в третьем месте) при сбоях (возможно даже автоматом) переключать БД с одного хранилища на другое. При восстановлении связи отставшая база наверстает упущенное, и можно будет переключать обратно, если она является самой оптимальной по производительности.
    Ответ написан
    Комментировать
  • Как с помощью регулярного выражения или php функции изменить все src, которые содержаться в строковой переменной?

    @dredd_krd
    Если именно "к каждому src необходимо добавить приставку $domen", то
    $description = str_replace("src=\"", "src=\"domen.com/", $description);

    Как раз меняет все вхождения первого параметра на второй параметр.

    Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() (с) man
    Ответ написан
    Комментировать
  • Как получить список подключенных клиентов из Mikrotik?

    @dredd_krd
    Зачем же логи парсить? В микротиках практически всё можно получить по телнету или SSH. Достаточно подключиться туда (по RSH, например), выполнить команду вывода и легко распарсить строго форматированную таблицу.
    По SNMP, если мне не изменяет память, всё это дело получить нельзя.
    Ответ написан
    3 комментария
  • Возможно ли подать питание на raspberry pi по ethernet?

    @dredd_krd
    POE она не умеет, но с помощью паяльника, учитывая потери на кабеле, конечно можно, просто подав по 4-5 и 7-8 парам напряжение, и выведя их потом из витухи в разъем питания.. Костыль, но работает.
    Конечно, в случае, если нельзя подключить внешнее питание туда, где малинка будет находиться.
    А просто на стенде ради интереса запитать по RJ-45 вместо MicroUSB - нельзя.
    Ответ написан
    6 комментариев
  • Почему все время выводится лишь первая запись?

    @dredd_krd
    У меня вопрос. В файле edit.php какой вообще смысл? Если он вытаскивает запись по id и тот же id и выдает обратно тому, кто его же и запросил? Просто чтобы был запрос к базе? Почему тогда сразу не сделать так:
    <?php
    echo '<input value="'.$_POST['ids'].'">';
    ?>

    Единственное, конечно, этот код выдаст пустую строку с предупреждением, если записи с этим id в базе нет.
    Ответ написан
    2 комментария
  • Имеется файл с прошивкой в формате HEX размером 8кб, сколько реально будет занимать места во флешь памяти МК?

    @dredd_krd
    HEX - это обычно байты, преобразованные в 16-ричный формат.. следовательно, 2 символа = 1 байту. Однако там может быть немного технических данных, таких, как заголовок. Насчет этого точно не помню.
    Следовательно, прошивка во флеш памяти будет занимать около 4 кб
    Ответ написан
    1 комментарий
  • Как сделать правильно выборку из базы?

    @dredd_krd
    SELECT `SC_categories`.* FROM `SC_categories` LEFT JOIN (SELECT DISTINCT(`parent`) FROM `SC_categories`) AS `list` ON (`SC_categories`.`category_ID` = `list`.`parent`) WHERE `list`.`parent` IS NULL

    вроде ничего не перепутал..

    UPD1:
    да, проверил, работает

    mysql> select * from `SC_categories`;
    +-------------+--------+
    | category_ID | parent |
    +-------------+--------+
    |           1 |      0 |
    |           2 |      1 |
    |           3 |      2 |
    |           4 |      0 |
    |           5 |      4 |
    |           6 |      2 |
    |           7 |      6 |
    +-------------+--------+
    7 rows in set (0,00 sec)
    
    mysql> SELECT `SC_categories`.* FROM `SC_categories` LEFT JOIN (SELECT DISTINCT(`parent`) FROM `SC_categories`) AS `list` ON (`SC_categories`.`category_ID` = `list`.`parent`) WHERE `list`.`parent` IS NULL;
    +-------------+--------+
    | category_ID | parent |
    +-------------+--------+
    |           3 |      2 |
    |           5 |      4 |
    |           7 |      6 |
    +-------------+--------+
    3 rows in set (0,00 sec)
    Ответ написан
    1 комментарий
  • Как составить запрос MySql?

    @dredd_krd
    Мне кажется, дизайн не совсем верный. Если это логи - это одно, а если рабочая таблица с тикетами - то лучше время создания и время закрытия указать соседними полями, и просто отнимать в селекте, получая это промежуточное время. Это в разы проще и правильнее.
    А так, в качестве велсипеда можно подзапросом выбрать сначала время открытия тикета, потом время закрытия, и отнять.
    Если увижу реальный select тикета с полями и данными, могу составить
    Ответ написан
  • Почему не работает POST?

    @dredd_krd
    Иногда бывает необходимо вместо "<?" писать "<?php".
    А если "пустая страница", т.е. полностью пустая - смотреть в логи apache (access.log), возможно где-то ошибка, а вывод ошибок на экран отключен.
    Ответ написан
    Комментировать
  • Как устранить тормоза таблицы после большого delete?

    @dredd_krd
    Partitions, быстро и просто. Каждый день по скрипту можно добавлять partition на следующий день, а когда нужно удалить какую-нить таблицу - просто дропаешь partition, и остальные данные остаются. Не нужно ни переименовывать таблицы, ни удалять старые. Таблица остается жива и доступна, нет моментов, когда она может быть не доступна (напр., в момент переименования).
    Данные по partition-ам распределяются как раз по значению ключа, поэтому проблем не возникнет.
    Ответ написан
    7 комментариев
  • Сохраняется ли порядок в результате запроса без Order By?

    @dredd_krd
    InnoDB - таблица без особых оптимизаций и сжатий. Если из середины удаляется запись - место под неё просто остается, не дефрагментируясь, и при следующем insert-е запись может упасть в это место в середине (чтоб не пустовало). Когда же где-нибудь в середине место заканчивается, записи начинают падать в конец. Поэтому, насколько я понимаю, при последовательном проходе (при выборке без условий) записи могут выбираться так, как находятся в файле базы, да. Да и сам такое поведение замечал неоднократно.
    Ответ написан