Задать вопрос
  • Каким образом узнать ImageId Ubuntu 20.04?

    @mureevms
    aws ec2 describe-images \
        --filters \
           "Name=owner-id,Values=099720109477" \
           "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*-20.04-*-server-*"  \
           "Name=architecture,Values=x86_64" \
           "Name=creation-date,Values=2023-*" \
        --query 'Images[*].[CreationDate, ImageId]' \
        --region us-east-1 \
        --output table \
        | sort

    Последняя строка в выводе - искомый AMI
    Обратите внимание на параметр region. В разных регионах будет разный image-id.
    owner-id = 099720109477 это Canonical

    Вспомнил о сервисе поиска AMI на сайте ubuntu, там можно отфильтровать по параметрам, в качестве результата выводится последний созданный образ https://cloud-images.ubuntu.com/locator/ec2/
    Ответ написан
    Комментировать
  • Как лучше хранить журнал в долгосрочной перспективе?

    Stalker_RED
    @Stalker_RED
    По сути три больших направления с кучей мелких ответвлений
    1. хранить текстовый лог в отдельном файле/сервисе/логохранилище
    2. хранить лог действий юзеров в отдельной таблице (встречал один проект, где лог действий был в десятки раз больше, чем сами данные, ага).
    3. хранить в той-же таблице предыдущие записи. То есть при редактировании INSERT, а не UPDATE, при этом автоматически проставляется время и автор, а при выборке просто берете последнюю по времени версию.

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

    Особняком стоит упомянуть системы с возможностью одновременного редактирования несколькики пользователями, которые автоматически разруливают коллизии. Самый знакомый всем пример - google docs. Но это довольно сложно в реализации.

    С учетом "использоваться будет, я надеюсь редко" я бы остановился на текстовом логе. Отдельный лог на каждую запись, можно архивировать старые, можно logrotate натравить.
    Ответ написан
    1 комментарий
  • Как лучше хранить журнал в долгосрочной перспективе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как его лучше хранить? Организационная часть. Если вы хотите хранить его так чтобы никто не изменил - то надо строить отдельным сервисом. Иначе те-же люди что и натворили бед смогут зачистить свои следы. Или я не понял корень вашей проблемы.

    Техническая часть. Очевидно что нужна еще одна таблица. С датой аудита. С реквизитами пользователя который делал бизнес-операцию. И две версии данных. "До" и "после" изменения. Данные можно хранить в денормализованном формате (XML или Json) для простоты схемы.
    Ответ написан
    4 комментария
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • Как сделать аутентификацию исключительно через SSH ключ?

    Нет.
    А в чём собственно безопасность? Токен можно выпустить только если залогиниться в твой аккаунт на сайте.
    Если злоумышленник в него залогинился - он легко может добавить свой SSH ключ или вообще коммитить через UI.
    Ответ написан
  • Какую key-value БД использовать с данными в 10 млрд строк записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) У меня устойчивое дежа-вю. Периодически в топик заходят люди с именно этим вопросом. Разница только в количестве. Кому 1 млрд. Кому 10. Можно также поискать и слинковать эти вопросы в один большой вопрос.

    2) MySQL который указан в тегах - нормально справляется с этой задачей. Он и не такое число строк
    умеет хранить. И если взять MariaDb - там есть куча новых engines которые можно крутить для тюнинга
    именно скорости чтения. Разумеется жертвуя чем-то другим. Транзакциями и записью например.

    3) Непонятно что такое минимальное время? Если использовать дисковую БД типа MySQL то деградация времени
    поиска будет примерно зависеть от логарифма количества строк. Тоесть деградация будет но очень медленно.
    Для 10 млрд индекс по key будет содержать порядка 4-5 уровней BTree дерева. Тоесть дисковой системе
    нужно будет сделать до 5 или до 6 рандомных чтений (если нужные данные лежат в таблице). Это достаточно
    быстро для того чтобы моргнуть глазом за это время. Рандомное чтение любого блока из магнитного диска
    класса SATA-3 занимает порядка 20 милисекунд. Тоесть для 5 уровней - это 100 милисекунд. Для дисков
    класса SSD и это время можно уже считать меньше милисекунды. Точно я не знаю надо мерять.

    Испортить это время может сетевой лаг который в данной задаче мы просто не учитываем. Считаем что сеть идеальна.

    4) Непонятно зачем здесь указан Redis. Его задача не хранить 10 млрд а хранить только горячие
    ключи по котороым идет очень частый доступ. Если автор хочет In-memory хранение - то время можно
    еще сильнее улучшить. Его можно свести практически до нуля (я вангую несколько микро-секунд)
    но придется прикупить планок памяти побольше и посчитать сколько памяти
    надо для 10 млрд key/values неизвестной длины. Вообще крутить регулятор в направлении
    микро-секунд нет особого смысла т.к. другие звенья вашего стека (приложение и сеть) могут
    быть на порядки медленнее а это вообще нивелирует всю пользу от такой оптимизации.
    Ответ написан
    41 комментарий
  • Как узнать, для какого процессора предназначен файл?

    bingo347
    @bingo347
    Crazy on performance...
    readelf -h /home/usr/qt-android/mylib.so
    Ответ написан
    Комментировать
  • Как защитить админку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Любая авторизация должна выполнятся на строне сервера, всё что на стороне клиета обходится на раз!
    Как именно - дело Вашею Есть десятки систем авторизациию Имя + пароль - самая распостраненная
    Ответ написан
    1 комментарий
  • Как проложить путь в devops?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    У Девопс инженеров в основном работа удаленная и должна быть, так как в отличие от чистых сисадминов, девопс инженеры не всегда работают напрямую с железом. Но зависит от проекта.

    Девопс инженер - обычно опытный админ, поэтому конечно, было бы лучше сперва поадминить. Но опять таки, зависит от проекта. Где-то может быть куча "джуниорской" работы, которую нужно разгребать. В этих случая я бы посоветовал искать крупные компании, где девопс это целый отдел, а не 1-2 человека, тогда больше вероятность увидеть там джуниор-девопс вакансии.

    Но если интересно писать код - то не следует идти в девопсы. Девопсы это больше администрирование, поддержка инструментов, которые используются для разработки, тестирования и деплоймента и автоматизация єтих инструментов. Но непосредственно написания кода - там немного.
    Ответ написан
  • Как переименовать файлы с определенным условием в Linux?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В Linux есть замечательная утилита rename. Ну, точнее, их две: одна входит в пакет util-linux, другая - скрипт на базе perl-модуля File::Rename. В deb-дистрибутивах нужный нам скрипт устанавливается в составе пакета rename и также имеет имя второе file-rename (а версия из util-linux имеет имя rename.ul). В других дистрибутивах может быть иначе, поэтому смотрим внимательнее параметры запуска (можно запустить rename без параметров и убедиться, что это нужный вариант).

    Синтаксис предельно простой: rename регулярное_выражение_замены_perl имена_файлов

    Синтаксис rename.ul для сравнения: rename что_заменить на_что_заменить имена_файлов

    Вот что можно сделать для решения задачи (в предположении, что других точек, кроме как перед расширением, в имени файла нет):

    rename 's/-\w+\././' *

    Этот скрипт намного удобнее многоэтажных однострочников, да и пригодится в жизни ещё не раз.
    Ответ написан
    7 комментариев
  • Почему запрос возвращает не все репозитории с GitHub?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Потому что кое кто не читает документацию
    63ec08aea3982362368400.jpeg
    Ответ написан
    1 комментарий
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    raid10 на 6 дисков, конечно, если место не поджимает. Быстро, удобно, нет извращений "ой, системный диск пустой и вообще по нулям i/o, вебовый забит под завязку, а диски под базой загружены в потолок".
    raid5 под базой зрелище зело печальное в работе.
    Ответ написан
  • Что делать, если не можешь понять?

    @12rbah
    Что делать, если не можешь понять или запомнить в программировании что-то новое. К примеру пытаешься понять, а результата 0.
    Спросить конкретно что непонятно и повторять до тех пор пока не получиться понять, а не задавать абстрактные вопросы. Ну и важно помнить о целесообразности, условно если вы залезли в исходники линукса и там ничего не понятно, поковырялись два дня и ничего не поняли, то стоит подумать нужно но ли оно вам, если нужно то тогда нужно начать с изучения более простых вещей. А так это нормальная практика по началу, когда читаешь что-то и даже с 10 раза не понимаешь, можно день/два отдохнуть от этой темы и заниматься другими вещами, а потом вернуться.
    P.S. Так а что конкретно непонятно?
    Ответ написан
    Комментировать
  • После подключения бд в Docker все данные стерлись, это нормально?

    @momoru_kun
    'ENGINE': 'django.db.backends.sqlite3',

    Замените 'ENGINE' c django.db.backends.sqlite3 на django.db.backends.mysql
    Сейчас у вас из-за бэкенда БД sqlite просто создается база данных django-app-db1
    Ответ написан
    1 комментарий
  • Добавление ключа luks в initramfs?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    используйте TPM, шифрование без дополнительного подтверждения (пароль, токен и т.п.), либо при возможности внести изменения в конфигурацию загрузки (которое и блокирует TPM) - не имеет смысла.
    Ответ написан
    1 комментарий
  • Как запустить команду при отсутствии пинга?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Лучше воспользуйтесь специализированной программой monit, её создали как раз для этого.
    Ответ написан
    5 комментариев
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Такого рода проблемы все и всегда решаются однотипно.
    1. Необходимо сформулировать критерии наличия проблемы.
    Как именно пропадает интернет, насколько часто, как надолго. Это нужно для диагностики. поиска причины и определения ушла ли проблема после принятия каких либо мер.
    2. Делить проблему на части и проверять части по отдельности.
    Самый эффективный способ делить - это пополам. Отсекаем часть сети и проверяем наличие проблемы в обеих частях (если есть возможность) или в одной из частей.
    3. Когда найден минимальный проблемный участок, который уже нельзя или бессмысленно делить - заменяем его.
    4. Помним, что чаще всего сложные проблемы - это композиция нескольких более простых. которые по отдельности могут не проявляться. В вашем случае может быть проблема, связанная с нагрузкой на роутер, например, которую создает один из услов из-за плохого контакта обжима и большого объёма биттых пакетов. Устранив одну из причин, вы, может быть, сделаете проявления проблемы реже, но не устраните её полностью. К примеру, если замените ротуер, битые пакеты будут всё равно будут нагружать вашу сеть и портить ее производительность, но это будет не так очевидно. Переобжав коннектор вы избавитесь от части нагрузки, но еслив ваш ротуер работал на переделе, то лишний вафай-клиент или тяжелый видос в сети сможет его снова нагрузить до критического снижения производительности.

    Итак, пробежимся по перечисленным пунктам сначала.
    1. Критерии. Поиск критериев - это часть решения. Обычно в этом случае нуно сорать необходимую статистику. Есть куча софта, который это умеет делать, но пинг есть всегда под рукой.
    Для этой тулзы есть две полезных опции: ключ для бесконечного пинга и размер пакета.
    В разных ОС эти ключи немного разные, поэтому ищите их отдельно, у меня нет винды под рукой, поэтому не стану на этом заострять.
    Скаж лишь, что пинговать лучше большими пакетами, жалетально превышающими размер TTL, прописанный в роутере. Тогда такой пинг будет реже проскакивать в периоды хорошей связи, то есть выловит больше пролблем.
    Пинговать нужно в отдельных окнах сразу несколько хостов:
    - ya.ru - этот хост всегда отвечает на пинги и выявит проблемы с DNS
    - 8.8.8.8 - это гугловый DNS-сервер, тоже всегда отвечает на пинги, покажет, что связь с инетом есть даже если DNS, прописанныйна компе не правильно работает.
    - 192.168.0.1 - или какой там IP у вашего роутера. Нужно. чтбы отделить проблемы с инетом от проблем с внутренней связностью до роутера
    - 192.168.0.x - ip одного из компов в сети. Я обычно пингую несколько компов, доступных через баксимальное число потенциально проблемных узлов - ethernet-розеток, свичей, вайфай-соединений... Этот пинг поможет понять где проблема, во внутрисетевой связности или в последней миле.

    Учтите, что проблемы часто бывают комбинированные и каждое сочетание симптомов будет свидетельствовать о раных проблемах.
    Да, тревожным принаком может служить не только пропадание пакетов, но и скачки в длительности их возврата, особенно если такие длительности достигают 500мс и выше. Но и скачки от 3мс до 250мс тоже будут свидетельствовать о каких-то проблемах.

    Запускать пинг на всех компах лучше одновременно и на некоторое время. Например минут на 20. Потом по статистике будет видно сколько где пакетов пропало.

    2. Если критерии наличия проблемы позволяют, то можно попробовать отрубать части сети и смотреть наличие проблемы. Это я в том смысле, что если проблема происходит в среднем раз в пару-тройку часов, то отрубать на многие часы части сети при диагностикем ожет быть неприемлемым.
    Редкеи пробемы дольше отлавливать. Но напоминаю, что критерии можно детализировать, ведь если пакеты у вас пропадат относительно редко, то скачки времени их возврата могут случаться чаще и подсвечивать проблему. Также можно сделать рамер пакета близким к максимальному, это должно тоже в некоторых случаях участить проявление проблемы.
    Иногда не мешает нагрузить сеть комированием по локалке большого файла. В линуксе можнно с помощью утилиты tc послать большой поток рандомных байт на любой сокет..
    3. Плавающие проблемы случаются из-за плохого обжима, перебитого жверью кабеля, перегрызенного UTP в плинтусе, из-за умиращих конденсаторов в блоке питания роутера (БП может не выдавать необходимого при нагрузках тока, но вольтметром такая неисправность не будет различима без нагрузки). Вообще старые (да и не только) роутеры могут страдать поплывшими электролитическими конденсаторами не только в блоках питания.
    Хорошо, когда можно подменить роутер.
    4. ну с четвертым пунктом ничего не пососветуешь, только разделать и тестировать все по отедльности и в разных сочетания и да поможет нам ктулху.

    А для тех, кто дочитал этот опус до конйа - интересная задачка. Что пингуют эти команды, как и почему?
    ping 1.1
    ping 2130706433

    Тех, кто знает, попрошу не спойлерить=)
    Пусть для кого-то будет сюрпризом этот дивный мир=)

    UPD. Простите за адское количество опечаток в тексте. Писал в спешке и с непривычной клавиатуры. Исправлю всё попозже. Не ожидал, что многим ответ придётся по душе. Вроде ж накапитанил как мог.
    Ответ написан
    5 комментариев
  • Как себя ведет wordpress на PostgreSQL?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Работает хорошо и там и там.
    Для вашего случая, скорее всего, никакой разницы не будет.
    Ответ написан
    Комментировать
  • Как себя ведет wordpress на PostgreSQL?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    На хорошо настроенном постгресе будет лучше, чем на плохо настроенном мускуле. И наоборот.
    Ответ написан
    Комментировать