Задать вопрос
  • Фриланс недобросовестный заказчик не заплатил за работу, что делать?

    Lucian
    @Lucian
    https://t.me/MakeFreelance
    Привет, жаль конечно, но такова жизнь, я в свое время похожим способом 100к потерял, но мне уже окупилось многократно, т.к. с тех пор больше таких случаев небыло. Рассматривайте эти 10к рублей как получение опыта, по сути вы купили эти знания дешевле чем я в 10 раз. Двигайтесь вперед, там возможностей больше. Посчитайте сколько часов вы потратите чтобы вернуть эти деньги и умножте на свою ставку, оно того точно не стоит.
    Ответ написан
    8 комментариев
  • Mac-auth в Облаке?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    А чей dhcp сервер? Может с него и дергать удобным\возможным способом?
    Ответ написан
    2 комментария
  • Как лучше реализовать систему мониторинга HTTP ответов?

    @q2digger
    никого не трогаю, починяю примус
    Zabbix , там есть инструмент , так и называется Web monitoring, умеет код ответа проверять, умеет время ответа проверять, можно делать сложные сценарии.
    Ответ написан
    Комментировать
  • Возможна ли обработка изображений на AWS S3?

    kawabanga
    @kawabanga
    Я реализовывал один раз так -
    получал от клиента фотографию.
    Грузил ее в s3, добавлял задание в blitline а он уже секунд за 5-6 делал все нужные кропы , в том числе адаптивные. + есть колбэк, и вы на сайте можете знать когда изображение действительно готово.

    бесплатно 2 часа в месяц.
    Ответ написан
    1 комментарий
  • Как ребенка 12лет ввести в it?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Детям интересно видеть как можно более материальное воплощение своего увлечения. Найдите в городе курсы робототехники и пристройте брата туда.
    Ответ написан
    2 комментария
  • Стоит ли выполнять такое тестовое задание?

    Anitamsk
    @Anitamsk
    Frontend Dev
    Однозначно нет, я бы даже сказала что это тестовое задание на "лоха". По факту тестовое задание для веб-мастера - это - сверстать одну из страниц корпоративного сайта(не лендинг), и добавить ей логики посадив на нужную CMS. Даже по одной сверстанной(семантически правильной, адаптивной, подготовленной для продвижения) хватает что бы понять насколько долго человек верстает, или находится в вебе. Если вы вываливаете "дивянку", или относитесь к своей работе - ну сделаю не очень, это ведь тестовое - значит это провал.

    То, что вы скинули выше - банальный заработок для компаний-студий, у них есть штат, и когда есть небольшие проекты(у которых не горит дедлайн), они отдают фрилансерам или новичкам, которые готовы работать за еду или бутерброд. После вам говорят что проект говно, а вы ничтожество, и у вас его парсят через wget(либо вы уже отдали его сами). В итоге профит для компании, и подгорание пятой точки у "наемного работника".

    PS: В свое время сделала по-хитрому) Дали мне такой проект как тестовое задание, я делала его 2 недели, и когда подошло время сдавать его, показала его через teamviewer - работодатель убедился что все норм, попросил его скинуть - я попросила денег. Он офигел от наглости, и в итоге мы договорились о 12 т.р. Но на работу меня так и не взяли)
    Ответ написан
    9 комментариев
  • Как удалить разницу между двумя директориями?

    Может, rsync поможет?
    rsync \
      -av \
      --delete \
      --existing \
      dir1 dir2
    Ответ написан
    1 комментарий
  • Как дорасти до руководящей должности в IT компании?

    Jump
    @Jump
    Системный администратор со стажем.
    Но есть проблема, нет высшего ОБРАЗОВАНИЯ.
    Идите учиться, если хотите на руководящие должности.
    Мне 22. Какие шансы? И не поздно ли пойти в универ?
    Это опечатка насчет 22?
    Может 52года все-таки? Если уже размышляете о том поздно ли пойти в универ.
    Ответ написан
    1 комментарий
  • Почему самопроизвольно изменяется время в debian?

    @chaturanga Автор вопроса
    Решено.
    Оскам меняет время на предыдущее. Очень мудро было закомментировать WARNING в исходниках.

    https://github.com/gfto/oscam/blob/2780c48789c8e14...

    #if defined(CLOCKFIX)
    if (tv.tv_sec > lasttime.tv_sec || (tv.tv_sec == lasttime.tv_sec && tv.tv_usec >= lasttime.tv_usec)){ // check for time issues!
    lasttime = tv; // register this valid time
    }
    else
    {
    tv = lasttime;
    settimeofday(&tv, NULL); // set time back to last known valid time
    //fprintf(stderr, "*** WARNING: BAD TIME AFFECTING WHOLE OSCAM ECM HANDLING, SYSTEMTIME SET TO LAST KNOWN VALID TIME **** \n");
    }

    Ответ написан
    Комментировать
  • Свободное место на сервере?

    @szelga
    tmpfs располагается в памяти, udev -- это представление устройств в виде файлов. судя по размеру, у вас должно быть ещё много пространства неразмечено. смотрите вывод fdisk.
    Ответ написан
    1 комментарий
  • Можно ли создать скрипт, для автоматической настройки сервера linux?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Ansible, Chef, Puppet, Salt) на выбор
    Ответ написан
    Комментировать
  • Разный explain на идентичных таблицах. Как побороть?

    php666
    @php666 Автор вопроса
    PHP-макака
    Тут люди подписались, в общем проблема наблюдается только на 5.7
    Кардинально помог STRAIGHT_JOIN. Ответ нашелся тут.
    Ответ написан
    2 комментария
  • Как идет переход с "классики" на DevOPS?

    Singaporian
    @Singaporian
    Нет никаких годных материалов. Точнее они годные только для опытных DevOps. Потому что это культура подхода, а не инструментарий.
    Переход на DevOps делается в три этапа:
    1) Сначала полностью все автоматизируется. По поводу доставки кода вопросы врядли возникнут - Jenkins и Maven известны даже детям. Ну не обязательно они. У каждого языка свои инструменты. gradle, grunt, waf... Но автоматиризровать надо все, включая деплой SQL (LiquidBase, dbMaintain, sqitch и т.д.). Эта часть освещена очень хорошо в интернетах.
    2) Затем убираются все боттл-нэки в работе админов и программистов. Например внедряется Green/Blue-деплоймент. В точках деплоя собственного ПО средства провиженинга (puppet/ansible/chef) заменяются на средства деплоймента (uDeploy например). Устанавливается мониторинг и логирование. На все это тоже есть свои инструменты (Sensu например).
    3) Начинается работа с людьми - вовлечение программистов в ответственность за результат на стороне Ops и вовлечение сисадминов(operations) в результат на стороне Dev (подгон под FHS и все такое). Ключевой момент в том, что людям придется понять, что их ответственность приходит эхом оттуда, где они своими руками не трогали (для этого даже автоматически создают новые энвайронменты всякими докерами и вагрантами). Закоммитил кривой код в IDE, не учел зависимость в пропертях, поправил конфиги не для всех энвайронментов - будешь отвечать и за статический анализ кода и за проваленные интеграционные тесты и за неудачный деплоймент. В обратную сторону тоже самое. Тогда люди начнут действовать по стандартам и настанет искомый результат.

    Ну и само собой надо найти сильного релиз-инженера. Потому что DevOps - это не "построил и ушел". Кто-то должен все время смотреть за новыми организационными проблемами и чтобы транк не попал на UAT, например, а на SIT ушел тот же тэгированный код, которому на DEV провели smoke-тесты, а не обновленный парой вредных коммитов, набежавших за время смоука.

    Сначала скажите, как звучит конечная задача и что из этого уже есть и чего нет. Может чего детальнее посоветую.
    Ответ написан
    6 комментариев
  • Чем сисадмин отличается от devops?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Наиболее близко отвечает InoMono но советую всем углубиться в ветку комментариев, поскольку изначальный ответ очень мутный, а в комментах есть нормальные и внятные пояснения от него же самого.

    Ответ на вопрос ТС, если кратко: то что пишется в вакансиях "devops инженер" и других "devops-другое слово" по сути - только хотелки конкретной компании по организации devops процессов. Например, им нужен тот кто настроит уже упомянутые ci\cd и, что наиболее важно для бизнеса, сократит время выкатки кода на живую до минимума, убрав, в том числе кучу ручного труда(что есть потери по времени, а значит и деньгам).
    В чем отличие соответственно с сисадмином?
    Сисадмин - это явный ops и от него по умолчанию не требуется заниматься процессами доставки кода.
    Вы можете работать на небольшом заводе, иметь свою серверную с набором серверов, заниматься внешней почтой, веб серверами, ip телефонией на asterisk и еще кучей явно опсовских активностей, и не иметь отношения к доставке какого-либо кода, поскольку у вас в штате есть только один вид программиста - 1с-ник. Вполне может быть что этот программист - тоже вы :D
    Вы можете заниматься развертыванием веб серверов со всеми прилегающими в небольшой веб-студии, и тоже быть только сисадмином. Но тут вы скоро вымрете, вы здесь не нужны: как только возникает потребность доставлять код (особенно если он пишется не одним человеком) - тогда и возникает необходимость налаживать процессы из девопс практик.
    P.S. никто вам не мешает использовать практики Infrastructure as a code и другие из devops и вообще поднимать всю инфраструктуру терраформом. Никто не мешает вам настраивать сервера с помощью chef\puppet\ansible, будучи сисадмином - это ваш плюс, ваш шаг к полной автоматизации вашей работы. Девопс, однако, на вашем заводе вы все равно не построите.
    Ответ написан
    Комментировать
  • Проседание производительности mariadb, linux. Почему растет Load Average до 30-40?

    @yuriyant Автор вопроса
    web программист
    Всем спасибо за помощь и советы!

    Было сделано сразу две манипуляции способствующие решению проблемы. Какая из них решила проблему точно уже не скажу.

    У Битрикс есть таблица с купонами скидок каталога, в ней у нас было 300 тыс. купонов. Так как изменить запрос нет возможности из-за его системности и обновления Битрикс все затрут, то были проведены тесты с данными. Удаление из таблицы 200 тыс. старых купонов позволило ускорить медленный запрос с ~1.3 сек. до 0.01 сек. В таблице осталось 60 тыс. купонов.
    Будем дорабатывать систему автоматической очистки купонов и писать обращение в Битрикс с просьбой оптимизации запроса. Хотя медленный запрос по данным мониторинга и отрабатывал ~3.7 раз в секунду, но это не мешало ему душить процессор.

    Второе мероприятие это переход с mariadb (10.1, 10.3 - обе версии тестировались по несколько дней) на percona 8. Предположение пало на проблему базы данных с нашим набором данных и запросами, была мысль, а вдруг в перконе знаю и устранили ошибку.

    Я все же полагаю, что ключевой фактор тут был указанный Vitaly Karasik на медленный запрос.
    Видимо на наших данных этот запрос вызывал блокировки и высокую нагрузку на CPU из за повышения значений метрик RW Locks S OS Waits, RW Locks X OS Waits, RW Locks S Spin Rounds, RW Locks X Spin Rounds. Купонов становилось больше и в какой-то момент времени их кол. стало критичным для запроса.

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

    UPDATE 09.08.2019

    Базу данных вернул на mariadb 10.3. Выяснился еще один запрос повышающий нагрузку на CPU. У нас около 1 млн. сессий в база данных. Так вот Битрикс в методе Sale\Fuser::getIdByUserId($ID) получения одной записи не выставляет лимит и еще и сортирует всю выборку. Если передается FALSE, то он сортировал в нашем случае около 1 млн. записей + добавлял туда каждый раз еще 1 запись. Обращение в Битрикс отправлено, они его приняли и судя по всему скоро будет выпущено обновление.
    Кому нужно решение сейчас - измените метод прямо в ядре Sale\Fuser::getIdByUserId таким образом.

    $res = FuserTable::getList(array(
                           'filter' => array(
                                   'USER_ID' => $userId
                           ),
                           'select' => array(
                                   'ID'
                           ),
                           'limit' => 1, // Добавить лимит
                           // 'order' => array('ID' => "DESC") // Убрать эту сортировку
                   ));
    Ответ написан
    3 комментария
  • Как несколько Docker контейнеров запускать через Dockerfile (Docker контейнер)?

    tumbler
    @tumbler
    бекенд-разработчик на python
    Но есть проблемы с актуализацией этого файла у конечного пользователя, доставкой, настройкой и версионированием.

    Мне кажется, проще решить проблемы с актуализацией этого файла, чем перепиливать всё на "контейнеры внутри контейнера" на основе Dockerfile: с Docker-in-Docker есть много разных проблем, с которыми часто сталкиваются при эксплуатации gitlab runner. Тут и производительность, и недоступность функционала, и непонятные зависания, и проблемы с местом на диске.
    Ответ написан
    Комментировать
  • Где ошибочка в этой строке?

    WNeZRoS
    @WNeZRoS
    В первом pow не та степень.
    Визуализация выражения
    rbgoxbpbszrkvaiwc7v3hvayljm.png
    Ответ написан
    Комментировать
  • Есть ли возможность накатать абузу на сапорт Hetzner?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Есть такая "бурчательная" соцсеть, на нытьё в которой компании реагируют очень остро - Twitter. На грамотном английском напишите твит о свой проблеме, в котором упомяните @Hetzner_Online и посетуйте на то, что придётся уйти к другому хостеру. Не исключено, что в скором времени вам напишут или реплай или сообщение в директ с обещанием разобраться. Если не откликнутся или таки не разберутся, просто уходите к другому хостеру.
    Ответ написан
    1 комментарий
  • Как удалить определенные символы из строки, включая служебные?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    import string
    
    text = "[('Тестовый текст,)]"
    
    result = ''.join(c for c in text if c not in string.punctuation)

    или более производительный вариант

    t = str.maketrans('', '', string.punctuation)
    result = text.translate(t)
    Ответ написан
    Комментировать