Задать вопрос
  • Как в Zabbix свернуть "партянку" триггеров на основной панели "20 событий"?

    @keich
    Инженер по системам мониторинга от IBM
    Не надо смотреть на триггера в виде списка. Надо смотреть триггера и другие события на сервисно-ресурсной модели(СРМ).
    Обычно есть регламент. В котором прописано в какой срок необходимо устранить инцидент(Созданный автоматически после срабатывания триггера). Если у вас срабатывают триггеры по которым никто ничего не собирается делать, то отключайте этот триггер на тех системах, на которых он не актуален. Ну в крайнем случае пусть триггеры имеют уровень критичности как информационные.
    Наиболее оптимальный и сложный поход:
    1) Определить сервисы.
    2) Разработать триггеры и определить события для каждого компонента сервиса.
    Какой конфигурационный элемент, пороги, кого уведомлять, тексты уведомлений, критичность и др.
    3) Разработать СРМ
    4) Разработать корреляцию при необходимости. Разработать правила как меняется статус вышестоящих элементов СРМ.
    5) Задокументировать
    6) Протестировать
    7) Внедрить

    Админы видят свои инциденты на сервис деск. В инциденте есть ссылка на СРМ, на которой видны те области за которые админ не отвечает, но влияют на его область ответственности.
    А еще есть регламенты - как ставить на мониторинг сервисы, кто за что отвечает, кто контролирует исполнение процессов, как устанавливать SLA, как выводить из эксплуатации и т.п. Есть стандарты наименований- например именовать триггеры, что бы было видно к какому сервису он относится.
    Ответ написан
    Комментировать
  • Как закомментировать несколько срок в vim?

    @keich
    Инженер по системам мониторинга от IBM
    Простенький вариант добавить в .vimrc:
    map 0 ^i#<ESC>
    Ответ написан
    Комментировать
  • Как осуществить поиск по ключевому слову в файле всех строк где оно присутствует?

    @keich
    Инженер по системам мониторинга от IBM
    Тяжело понять. Надо на питоне?
    import re
    filename="file.txt"
    pattern="\S*y{2,5}\S* "
    prog = re.compile(pattern)
    with open(filename,"r") as myfile:
        for line in myfile:
            if prog.match(line):
                print(line)


    А может просто grep нужен?
    Ответ написан
    2 комментария
  • Черный экран после установки ubuntu server 16.04?

    @keich
    Инженер по системам мониторинга от IBM
    Информации минимум, но можно сделать следующие, в место того что бы бесконечно переставлять.
    1) На установленной системе, которая не загружается грузимся с инсталяционного образа этого ubuntu server.
    2) Если выскочило выбор языка жмем Esc.Должно появиться меню. В нем есть Rescue a broken system.
    3) Будут несколько вопросов. Последний выбор: попасть в shell. Жмем его.
    3) В shell выполняем команды:
    bash
    update-initramfs -u
    update-grub
    exit
    4) Выбираем reboot.
    Ответ написан
    Комментировать
  • Какой профит от тайловых оконных менеджеров при использовании tmux?

    @keich
    Инженер по системам мониторинга от IBM
    1) Минимальное потребение ресурсов ПК и быстрая загрузка.
    2) Тайловый предполагает не использование мышки.

    Я лично использую i3 на слабоватом ноуте с touchscreen. chrome воспринимает touchscreen и в результате чаще работаю без мышки и без touch pad. В chrome тоже есть горячие клафишы для управления вкладками.

    ice wm можно красивинько оформить и менющки самому наполнить и мало место в памяти и на диске занимает.
    Ответ написан
    Комментировать
  • Как вернуться к началу строки?

    @keich
    Инженер по системам мониторинга от IBM
    #include <string.h>
    #include <stdio.h>
    #include <ctype.h>
    
    int main(int argc, char *argv[])
    {
        int incode_len = strlen(argv[1]);
        int key_len = strlen(argv[2]);
        for (int i = 0, k = 0; i < incode_len; i++, k++)
        {
            if( k >= key_len) k = 0;
            if (isalpha(argv[1][i]))
            {
                if (argv[1][i] >= 'A' && argv[1][i] <= 'Z')
                {
                    int shift = argv[2][k] - 65;
                    printf("%c + %c '%.3d' == ", argv[1][i], argv[2][k], shift);
                    char rightNumber = argv[1][i] + shift;
                    if (rightNumber > 'Z') rightNumber -= 26;
                    printf("%c\n", rightNumber);
                }
            }
        }
    }
    Ответ написан
    1 комментарий
  • Как закинуть файл на удаленный ftp?

    @keich
    Инженер по системам мониторинга от IBM
    Для автоматизации:
    1) Создать ~/.netrc файл со следующим содержанием
    machine 192.168.1.1
    login ftpuser
    password abc123
    2) chmod 600 ~/.netrc
    3) Выполнить команду в консоле или создать sh скрипт для повторного использования
    ftp 192.168.1.1 << EOT
    cd mydir
    put myfile
    EOT
    Ответ написан
    Комментировать
  • Почему происходят периодические отключения экрана?

    @keich
    Инженер по системам мониторинга от IBM
    xset -dpms
    xset s off
    Действует до перезагрузки.
    Ответ написан
    Комментировать
  • Как установить образ виртуальной машины Linux Xubuntu в качестве второй операционной системы рядом с Windows 10?

    @keich
    Инженер по системам мониторинга от IBM
    Я такое не делал, но могу предположить следующие шаги:
    1) В виртуально машине сделать полный бекап
    tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=backups
    и выгрузить его из гостевой ос обычный раздел диска
    2) Загрузиться с USB флешки с live linux.
    3) Создть раздел(если как проще то один и lvm не расмматриваем)
    4) Отформатировать раздел в ext3 или ext4 (mkfs.ext4).
    5) Примонтировать к работающему live linux
    6) Разрхивировать архив, который создали рание. Если он остался на разделах винды, то придется их сначала подмонтировать.
    7) Выполнить опирации по востановлению grub. Инструкции в инете полно. Искать chroot. Вы же в курсе, что после этого вина будет грузиться из grub?!
    8) Проверить /etc/fstab. Там наверняка забиты uuid старых разделов. Новые можно увидить с помощью blkid.
    Может что то еще.
    Ответ написан
    Комментировать
  • Проблемы с mv, вызываемым из скрипта?

    @keich
    Инженер по системам мониторинга от IBM
    Если есть вероятность наличия в названиях файлов всяких спецсимволов, то стоит выполнить скрипт на perl или pyton. Ну если принципиально, то можно так(но в названии файлов не должно быть одинарных ковычек):
    files_xml=$(find $FROM -maxdepth 1 -name "*.xml" -mmin +1 -printf "'%f' ")
    if [ -n "${files_xml}" ]; then
    echo "XML Files found, transferring"
    sendToFTP "$files_xml" && echo $files_xml | sed "s/'\s'/\n/g" | tr -d "'" | xargs -I{} mv {} $SENTPATH
    else
    echo "XML files not found"
    fi
    Ответ написан
    Комментировать
  • Какие сборки Linux лучше для изучения и дальнейшего пользования?

    @keich
    Инженер по системам мониторинга от IBM
    Думаю, что верный ответ: почти любой. Если хочется позаморачиватся, то минимальный debian, но шансы на успех малы. Если знаний мало, то Ubuntu/Mint. Они содержат набор пакетов, облегчающие жинь ползователю. Рекомендую ставить пакеты только из репозиториев и сохранять список пакетов системы состояние которой устраивает на данный момент, что бы после эксперементов вернуться к прежнему состоянию.
    Ответ написан
    Комментировать
  • Как правильно экранировать строку для sed?

    @keich
    Инженер по системам мониторинга от IBM
    Есть вопрос а нужно ли столь строгое выражение для поиска нужной строки? Если много подобных строк с небольшими различиями, то наверное что то вроде этого:

    sed 's/allow="127\\\.\\d.\\\.\\d.\\\.\\d.|::1|0:0:0:0:0:0:0:1"\s*\/>/allow="^\.\\\*$" \/>/g'

    Лучше зарание проверить какие строки попали под выражение:

    grep 'allow="127\\\.\\d.\\\.\\d.\\\.\\d.|::1|0:0:0:0:0:0:0:1"\s*\'
    Ответ написан
    1 комментарий
  • Можно ли определить оставшееся свободное место на диске где расположен файл!?

    @keich
    Инженер по системам мониторинга от IBM
    df с путём до файла в качестве параметра выведет строчку по устройству, на котором расположена папка.(проверял на debian 8 )
    df ./ | awk 'END { print "Free " 100-int($5) "%"}'
    Ответ написан
    Комментировать