DevOps Portal | Linux
13.4K subscribers
868 photos
112 videos
10 files
882 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
Обновление Телеграмма с обновлённой подсветкой кода для различных языков программирования уже на устройствах Android! Выглядит просто бомбезно, теперь делиться кодом в постах стало ещё проще и эффективнее 👍

На десктопе обновление я обнаружил только в SNAP и Flatpak-версии приложения. В репозиториях того же Archlinux, например, версия 10.3. Так что ждём пока она появится и там ⌛️
👍6🔥1
Лучше новое и не всегда работающее или старое, но стабильное?

Мы все знаем, что есть категории дистрибутивов Linux, в которых всегда все самое свежее. Одним из таких дистрибутивов является Fedora Linux. Там вы всегда получите свежую версию ядра, софта, драйверов. Но не всегда все самое новое означает стабильное.

Недавно я столкнулся с проблемой подключения своей беспроводной клавиатуры Logitech K380 на дистрибутивах Linux с последней версией ядра. Чтобы проблему решить, пришлось менять ядро. О том, как это сделать и в чем суть проблемы я рассказал в статье, которая уже вышла в Дзен.

С другой стороны, есть не совсем приятный опыт взаимодействия с дистрибутивами, где все чуть старее, чем необходимо. Да взять хотя бы тот же Телеграмм: даже в репозиториях Archlinux пока что версия 4.10.3, хотя на Fedora 39 и Ubuntu 23.10 можно через Flatpak или SNAP установить версию 4.10.4 и получить все плюшки этого обновления. Вот и приходится метаться меж двух огней: необходимостью актуального софта и стабильностью работы системы 🤷‍♂️

Что же выберите вы? Напишите свое мнение в комментариях, интересно почитать 💬
👍1
Не можете вспомнить команду в Linux? Я вам помогу!

Вот бывает такое, что команда вылетела из головы. Причем прихватила не только свое название, но и какие-то команды с ключами. Что делать? Воспользуемся утилитой man с нужными ключами:
man -k <ключевое слово>
Например, вы забыли название команды, но помните, что она как-то связана с диском. Поэтому вводим следующую строку в терминал:
man -k disk
В выхлоп попадают все команды, связанные с дисками. Легко найти необходимую, вспомнить ее название и нужные ключи. Правда, все очень просто? Так что, пользуемся и наслаждаемся!
👍6
Проверка работоспособности SSD/HDD в Linux 💾

SMART (технология самоконтроля, анализа и отчетности) - это функция, включенная во все современные жесткие диски и твердотельные накопители для мониторинга и тестирования надежности. Он проверяет различные атрибуты диска, чтобы обнаружить возможность отказа диска. Существуют различные инструменты, которые доступны в Linux и Windows для выполнения интеллектуальных тестов работоспособности. Из этой инструкции вы узнаете, как проверить работоспособность SSD/HDD в Linux с помощью терминала. В последующих постах (или статьях в Дзен) поговорим про то, как это сделать через графический интерфейс в различных средах рабочего окружения.

1️⃣ Проверка работоспособности SSD накопителя с помощью Smartctl 🧠

Smartctl - это утилита командной строки, которая может быть использована для проверки состояния жесткого диска или SSD с поддержкой S.M.A.R.T в системе Linux. Утилита Smartctl поставляется вместе с пакетом smartmontools. Smartmontools доступна по умолчанию во всех репозиториях дистрибутивов Linux, включая Ubuntu, RHEL, CentOS и Fedora.

2️⃣ Как установить smartmontools в Linux? ⬇️

Ubuntu
$ sudo apt install smartmontools
Запустите службу с помощью следующей команды.
sudo /etc/init.d/smartmontools start
RHEL и CentOS
sudo yum install smartmontools
Fedora
sudo dnf install smartmontools
Служба Smartd запустится автоматически после успешной установки. Если вдруг Smartd не запустился, сделать это можно командой:
sudo systemctl start smartd
3️⃣ Проверка работоспособности SSD/HDD

Чтобы проверить общее состояние, введите команду:
sudo smartctl -d ata -H /dev/sda
Что значат эти параметры:

-d - указывает тип устройства.
ata - тип устройства ATA, используйте scsi для типа устройства SCSI.
-H - проверяет устройство, чтобы сообщить о его состоянии и работоспособности.

Возможны два варианта выхлопа: все хорошо и диск исправен, или, если устройство сообщает о неисправном состоянии работоспособности, это означает, что устройство уже вышло из строя или может выйти из строя очень скоро. В этом случае, можно получить дополнительную информацию:
sudo smartctl -a /dev/sda
Вы можете увидеть следующие атрибуты:

- [ID 5] Reallocated Sectors Count - Количество секторов, перераспределенных из-за ошибок чтения.
- [ID 187] Reported Uncorrect - Количество неисправимых ошибок при доступе к сектору чтения/записи.
- [ID 230] Индикатор износа носителя - Текущее состояние работы диска на основе срока службы.

Если вы видите 100 - это лучшее значение. Если видите 0 - это ХУДШЕЕ значение.

Чтобы инициировать расширенный тест (long), выполните следующую команду:
sudo smartctl -t long /dev/sda
Чтобы выполнить самотестирование, введите команду:
sudo smartctl -t short /dev/sda
Чтобы найти результат самопроверки диска, используйте эту команду:
sudo smartctl -l selftest /dev/sda
Чтобы оценить время выполнения теста, выполните следующую команду.
sudo smartctl -c /dev/sda
Вы можете распечатать журналы ошибок диска с помощью команды:
sudo smartctl -l error /dev/sda
Команд кажется много, но все решает практика: стоит только пару раз попробовать вводить их и анализировать выхлоп и все станет просто и понятно. Также, напомню, что чуть позже выпущу статьи про диагностику жестокого диска при помощи графического интерфейса. Они выйдут либо здесь, либо на канале в Дзен.
👍7
Правильное оформление дистрибутива Linux 🎨

Все знают, что отличительной чертой дистрибутивов Linux является возможность широкой кастомизации. Многие думают, что это история исключительно про цвет кнопочек и толщину рамок окон. На самом же деле, стоит набаловаться с установкой тем в том же KDE Plasma, как начинает приходить осознание того, что правильное оформление дистрибутива может стать залогом его удобного использования, сформировать то, что я называю воркфлоу - рабочий поток, говоря по нашему. Приведу несколько простых примеров того, какое значение имеют привычные нам элементы дизайна среды рабочего окружения.

1️⃣ Изображение на заднем фоне (background)

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

2️⃣ Шрифты

Мало кто будет спорить, что правильный выбор шрифтов не позволит глазам быстро устать и вглядываться в экранный текст, излишне напрягая глазные мышцы. Есть целые исследования, посвященные тому, какие шрифты лучше подойдут для определенного типа интерфейса, какие лучше использовать в редакторах кода, а какая гарнитура идеально впишется в графический редактор. Ранее на канале в Дзене выходила подборка десяти шрифтов для терминала.

3️⃣ Светлая или темная темы

Не буду разжигать холивара по поводу того, что лучше, но есть моменты, когда нужно и можно не просто выбрать какой-то один вариант для интерфейса, а сочетать светлую и темную тему в зависимости от степени используемости приложения. Говоря проще, то где вы работаете чаще должно иметь темное оформление, чтобы не утомлять глаза, а не часто используемые приложения можно сделать светлыми, дабы они имели контраст на фоне темных программ.

4️⃣ Темы значков (иконок)

Это не просто красивые ярлычки на рабочем столе или на панели. Используя различные иконки вы можете провести визуальное разделение между часто используемым софтом и теми программами, которые используются крайне редко. Вдобавок верно настроенная тема значков внутри программы позволит быстрее ориентироваться в интерфейсе, особенно если вы только начали его изучать.

5️⃣ Анимации и эффекты

Обычно пользователи для экономии ресурсов отключают анимационные и иные эффекты, но грамотная их настройка позволит привлечь внимание к всплывающим окнам или обозначить какое-то важное событие, случившееся в системе. Кстати, сегодня на канале в Дзен вышла статья про два интересных эффекта для окон в KDE Plasma.

🏁 В итоге получается, что правильное оформление дистрибутива не просто позволит вам получить красивую, но и функциональную среду рабочего стола, благодаря которой выполнять необходимые задачи получится быстрее. Напишите в комментариях про то, как вы относитесь к оформлению дистрибутива и придаете ли вы этому процессу важное значение?
👍4
Кратко о CHROOT 🏡

1️⃣ Что такое chroot?

CHROOT – это системный вызов, который временно перемещает root каталог в новую папку. Как правило, root каталог находится в «/». Но при помощи chroot можно задать другой каталог, который будет служить как root-каталог в окружении chroot. Любые приложения, которые запускаются внутри изолированного окружения, в принципе не могут взаимодействовать с остальной операционной системой. Кроме того, не-рутовый пользователь (non-root), помещённый в chroot-окружение, не сможет перемещаться по иерархии каталогов. Когда нужны chroot-окружения?

2️⃣ Зачем оно нужно?

Chroot-окружение необходимо в самых различных ситуациях. К примеру, оно позволяет собирать, устанавливать и тестировать программное обеспечение в среде, которая отделена от остальной операционной системы. Также его можно использовать для запуска 32-битных приложений в 64-битной среде.

В целом, chroot – это способ временно воссоздать окружение операционной системы из подмножества файловой системы. Это позволяет временно перейти с привычных утилит на их экспериментальные версии, посмотреть, как приложения ведут себя в чистом окружении; также chroot может помочь выполнить операции по восстановлению, развернуть систему или создать дополнительный барьер, чтобы предотвратить потенциальный взлом системы.

3️⃣ Недостатки chroot

Основным недостатком chroot является неудобство в работе, вызванное тем, что в системе могут существовать приличное количество окружений и разных архитектур. Ну и стоит помнить, что даже этот способ не является 100%-тно безопасным и не защищает систему от кривых рук пользователя.

🏁 Постарался по простому объяснить что такое chroot, для чего он нужен и какие у него есть минусы. Если пост понравился, то поддержите его лайком, а любые возникшие вопросы пишите в комментариях.
👍5
Благодарности пост 🙏🏻

Чтобы я делал без своих подписчиков и читателей? Да наверное бы ничего путного 🤗 Подписчик канала и телеграмма по имени Александр уже дважды помогает в разработке сайта проекта: в первый раз он предоставил список всех материалов канала для размещения на сайте, а вчера скинул тексты всей полутысячи статей, опубликованных за практически год. Изображения парсить Дзен не дает, о чем открыто заявил в ответе на запрос, который я отправлял в техподдержку. Но наличие текстов уже в половину облегчило задачу по переносу: их нужно теперь копировать в markdown-файлы, накладывать нужное форматирование и вставлять изображения. Нет у Дзена (и в ближайшее время не появится) удобного инструмента для выгрузки материалов с канала. Поэтому приходится все делать ручками при поддержке подписчиков и читателей.

Александру еще раз говорю большое спасибо!
👍8🔥1
Новая версия LXQt вышла в релиз 🆕 ⬆️

Представлен релиз пользовательского окружения LXQt 1.4 (Qt Lightweight Desktop Environment), развиваемого объединённой командой разработчиков проектов LXDE и Razor-qt. Интерфейс LXQt продолжает следовать идеям классической организации рабочего стола, привнося современное оформление и приёмы, увеличивающие удобство работы. LXQt позиционируется как легковесное, модульное, быстрое и удобное продолжение развития рабочих столов Razor-qt и LXDE, вобравшее лучшие черты обеих оболочек. Код размещён на GitHub и поставляется под лицензиями GPL 2.0+ и LGPL 2.1+. Появление готовых сборок ожидается для Ubuntu (LXQt по умолчанию предлагается в Lubuntu), Arch Linux, Fedora, openSUSE, Mageia, FreeBSD, ROSA и ALT Linux.

Как понятно из названия, это рабочее окружение, которое считается легковесным, то есть, ориентировано на непроизводительные и устаревшие устройства. если память не изменяет, то с LXQt удалось взаимодействовать лишь единожды: во время работы в школе техника внутри кабинета на время подготовки к ЕГЭ убирается. Пришлось доставать свой старый ноутбук, чтобы как-то продолжать вести занятия. На него-то и была установлена Lubuntu (уже и не помню какой именно версии). Окружение являлось работоспособным и вполне покрывало те потребности, которые я поставил перед ноутбуком. Так что, в принципе, если нужно вдохнуть новую жизнь в древнее устройство, то LXQt вполне вам подойдет.

Напишите в комментариях о своем отношении к легковесным окружениям и том, пробовали ли вы LXQt? 💬
👍4
Немного правильного подхода к разработке сайта 💻

Вы можете заметить, что сайт пока что недоступен, так как за вчера начал производить с ним некоторые процедуры, связанные со скорым (надеюсь на это) его запуском:

1️⃣ Обновил дистрибутив на сервере, накатив туда Debian 12 и Python версии 3.11 (хотя уже вышел, кстати, Python 3.12)

2️⃣ В Gitlab-репозитории завел себе тестовую ветку, чтобы выстроить процесс разработки чуть грамотнее, чем было до этого: в очень грубом приближении разделил среды разработки на prod и dev

3️⃣ Настроил доставку кода на prod-сервер, в dev-среде ничего доставлять не нужно, так как там все и так стартует нормально.

4️⃣ Установил в систему нужную версию Python (в Fedora 39 уже есть последняя версия Python, нужные ставятся удобнее, чем в Archlinux даже)

5️⃣ Похвалил себя, так как саморефлексия очень важна.

Сайт будет доступен в ближайшее время, там я заканчиваю внесение последних изменений.
👍6
Основы систем инициализации в Linux: всё, что вы должны знать 💻 🐧

Сегодня мы поговорим о системах инициализации в Linux. Эта тема может показаться сложной для новичков, но не волнуйтесь, мы постараемся объяснить всё максимально просто.

1️⃣ Что такое система инициализации?

Система инициализации - это программа, которая запускает и останавливает другие программы при старте и выключении компьютера. Она играет ключевую роль в процессе загрузки дистрибутива. В мире Linux существует несколько систем инициализации, но мы сосредоточимся на двух основных: SysV и systemd.

1. SysV init:
SysV init - это одна из старейших систем инициализации в Linux. Она использует скрипты в стиле Bash для управления службами. Каждая служба имеет свой собственный скрипт инициализации, расположенный в каталоге /etc/init.d. Вы можете управлять службами, используя команды, такие как service или chkconfig.

Пример запуска службы с использованием SysV init:

sudo service apache2 start


2. systemd:
systemd - это современная система инициализации, которая заменяет SysV init во многих дистрибутивах Linux. Она управляет службами и процессами с использованием юнит-файлов, и она более мощная и гибкая по сравнению с SysV init.

Пример запуска службы с использованием systemd:

sudo systemctl start apache2


2️⃣ Как выбрать систему инициализации?

Большинство современных дистрибутивов Linux используют systemd, но некоторые старые или специализированные дистрибутивы могут все еще использовать SysV init. Вы можете проверить, какая система инициализации используется на вашем компьютере, выполнив команду:

ps -p 1 -o comm=


3️⃣ Что выбрать новичку?

Если вы новичок в мире Linux, то systemd, скорее всего, будет более удобным выбором, так как он более современный и интуитивно понятный. Он также предоставляет множество инструментов для управления службами, журналами и т. д.

Системы инициализации - это важная часть дистрибутивов Linux, и хотя они могут показаться сложными на первый взгляд, они играют ключевую роль в стабильной и эффективной работе вашей системы. Надеюсь, что этот пост помог вам лучше понять эту тему. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях! 💭 👇
🔥7
Две команды для просмотра информации о файлах и папках, которые использую чаще всего ✌️

Во время навигации по клиентским серверам возникает потребность просмотреть различную информацию о файле: права доступа, владельца (пользователь/группа), время последнего изменения или появления, и мн. чего еще. Для этого я использую две команды: одну, чтобы просмотреть сведения массово (грубо говоря, для всей директории), другая нужна, чтобы узнать информацию о конкретном файле или папке. Хочу познакомить вас с этими командами.

1️⃣ Команда ls -la

Думаю, что прочитав введение вы сразу же подумали про команду ls (list), которая вместе с ключами l и a выводит подробную информацию о файлах и папках (в том числе скрытых) в директории. Выхлоп у нее обширный, но давайте посмотрим на него на примере одного файла:

-rw-r--r--. 1 jc   jc      10 ноя  7 11:39  test.txt


Что значит этот набор символов? Давайте расшифруем:

- первый символ - указывает на тип файла. В данном случае, это обычный файл.
- символы rw- показывают права доступа для владельца файла. rw- означает, что владелец (пользователь jc) имеет права на чтение (read) и запись (write) этого файла.
- символы r-- показывают права доступа для группы, к которой принадлежит файл (в данном случае, группа также имеет права только на чтение файла).
- символы r-- показывают права доступа для остальных пользователей, не являющихся владельцем и не принадлежащих к группе (они также имеют права только на чтение файла).
- последний символ . указывает на наличие SELinux-метки, что означает, что файл может иметь дополнительные атрибуты безопасности SELinux.
- 1: число обозначает количество жестких ссылок на файл (в данном случае, у файла есть только одна жесткая ссылка).
- jc: имя пользователя (владельца) файла.
- jc: название группы, к которой принадлежит файл.
- 10: размер файла в байтах.
- ноя 7 11:39: дата последней модификации файла.
- test.txt: имя файла.

Обычно, использую эту команду в самом начале работы с файлами или папками. Так сказать, осматриваю поле предстоящих действий и смотрю, что из содержимого будет интересно. К выбранным файлам и папкам уже можно применить следующую команду.

2️⃣ Команда stat

Название говорит само за себя: команда выводит информацию о конкретных файле или папке. У команды есть параметры, но я их обычно не использую. Беру и просто пишу stat <имя файла или папки>. Выхлоп у нее следующий:

Файл: test.txt
Размер: 10 Блоков: 8 Блок В/В: 4096 обычный файл
Устройство: 0/38 Инода: 744401 Ссылки: 1
Доступ: (0644/-rw-r--r--) Uid: ( 1000/ jc) Gid: ( 1000/ jc)
Контекст: unconfined_u:object_r:user_home_t:s0
Доступ: 2023-11-07 11:39:28.492328539 +0500
Модифицирован: 2023-11-07 11:39:25.705300264 +0500
Изменён: 2023-11-07 11:39:25.705300264 +0500
Создан: 2023-11-07 11:37:20.259833041 +0500


Согласитесь, что информация представлена гораздо лучше, чем при использовании первой команды? Если стоит русская локаль, то выхлоп тоже будет на русском и тут просто бери и читай, выхватывая то, что нужно. Особенно радует числовой вывод прав доступа. После считывания нужных данных уже можно планировать дальнейшие действия с файлами или папками.

3️⃣ Ничего не понятно с правами доступа

Если вы ничего не поняли в этих буквах и цифрах, который означают права доступа к файлу/папке, то на канале в Дзен выходила статья про работу с правами доступа на файлы и папки в Linux. Из нее же вы сможете легко перейти по внутренним ссылкам на цикл статей, посвященных работе с файлами и папками в Linux. Постарался в этих материалах объяснить все доступным языком с примерами.

🏁 Всего две команды позволяют получить очень много информации о файлах и папках в Linux. Польза в средах рабочего окружения от них небольшая (хотя, может вы много работаете в терминале или консольном файловом менеджере), а вот на серверах эти команды просто незаменимы.
👍4
Пост-загадка для новичков (ну и не только)

Посмотрите на клавиатуру, которая лежит перед вами ⌨️ На ней есть только одна буква, которая является работоспособной командой в терминале Linux. Сможете без нажимании всех кнопок написать в комментариях что это за буква?
🚀 Давайте поговорим о мощной команде в bash set -e 🛠

Когда вы запускаете скрипт в bash, set -e делает ваш код более надежным и предсказуемым. Эта команда говорит оболочке "если какая-то команда в скрипте завершится неудачей (ненулевым кодом возврата), то прекрати выполнение скрипта". Вот несколько примеров использования set -e для обеспечения стабильности ваших скриптов:

1. Пример с проверкой наличия файла:

#!/bin/bash
set -e

FILE="/путь/к/вашему/файлу.txt"

# Проверяем наличие файла
if [ ! -e "$FILE" ]; then
echo "Ошибка: Файл $FILE не найден."
exit 1
fi

# Ваш код, который зависит от наличия файла


2. Пример с командой, возвращающей ненулевой код:

#!/bin/bash
set -e

# Пытаемся удалить несуществующий каталог
rmdir /несуществующий/каталог
# Если команда завершится неудачей, скрипт автоматически завершится


3. Пример с ошибкой внутри подскрипта:

#!/bin/bash
set -e

# Ваш код

(
# Подскрипт, возвращающий ненулевой код
command1
command2
command3
) || {
echo "Подскрипт завершился ошибкой."
exit 1
}

# Ваш код, который выполнится только при успешном завершении подскрипта


Эти примеры демонстрируют, как set -e обеспечивает немедленное завершение выполнения скрипта при обнаружении ошибок. Используйте эту команду, чтобы сделать ваши скрипты более надежными и устойчивыми к непредвиденным ситуациям! 🚀💻

#bash #скрипты #программирование
👍4
Стал владельцем iPhone 11 и Apple Watch. Затянет ли меня это в яблочное рабство? ⌚️📱

В конце недели супруге прикупили iPhone 14 Pro Max, а значит ее 11-ый яблочный смартфон перешел ко мне. Чуть позже уже сам отжал яблочные часы на пробу в ношении, так как после покупки они лежали не слишком часто супругой используемые. В итоге, за прошедшие выходные стал владельцем сразу двух устройство от Apple.

Не назвал бы себя яблочником или тем более фанатом техники Apple, до этого момента обладал лишь iPad Mini 2, который спустя какое-то время продал. И с того момента пошла череда устройств от Samsung, Xiaomi и пр. корейско/китайских брендов (это касается и смартфонов, и умных часов, и наушников). Но, как говорят те, кто уже давно втянулся в процесс использования этой техники, тут стоит только начать. В результате, технику Apple критикуют, говорят о ее ненужности, пытаются запретить, но при этом устройства каждый выход новой версии, раскупаются еще до старта продаж.

Каковы первые впечатления от использования iPhone? Непривычно чуть, но есть некоторые моменты, которые удивили и которых нет в смартфонах Andoroid. Они кажутся мелочью, но в сумме составляют так называемый пользовательский опыт. Возможно, что в одном из следующих постов, расскажу про эти впечатления от использования.

Возможно, что это станет шагом к яблочному рабству, а возможно, что оставит в общем равнодушным к iPhone, iPad, Apple Watch и пр. технике. Кто знает? 🤷‍♂️

Напишите в комментариях о том, какое ваше отношение к технике Apple и есть ли у вас она в использовании? 💬
👍2
Как в терминале Linux отобразить ход выполнения операции копирования или удаления? 🗑 📄

Бывает что вы вводите команду cp или rm для копирования или удаления чего-либо и после нажатия Enter курсор просто повисает в терминале. Согласитесь, что было бы приятнее видеть какой-то прогресс в выполнении этой команды. Чтобы сделать это используется ключ --verbose или -v. В контексте Linux и других UNIX-подобных систем, указанные опции обычно относятся к режиму вывода подробной информации о выполняемых командах.

Например, вот так можно работать с копированием:

cp -v <исходные_файлы_или_каталог> <целевой_каталог>


Или удалением:

rm -rf -v <каталог>


Выхлоп будет содержать подробности совершаемых операций. И станет наглядно видно, что происходит и когда это закончится. Согласитесь, что в определенных моментах это удобно? Естественно, ключ --verbose или -v будет работать не только с копированием или удалением.
👍4
Мы не верили в Uncom OS, а она смогла 💪

Помните про такую российскую систему на базе ядра Linux, как Uncom? Если нет, то на канале есть статья про нее (и не одна).

Так вот, думал, что система загнулась, но нет. Она теперь в реестре отечественного ПО.

Интересно, сколько стоит попасть в этот реестр и кому деньги передать? 🤔
👍6
Разницы между DoS и DDoS атаками 💀

Когда-то здесь я публиковал небольшую заметку про то, что такое DDoS-атаки и чем они опасны. Но знали ли вы, уважаемые подписчики, что есть также DoS-атаки, причем разница между двумя этими видами состоит не просто в двойной D. Ниже об этой разнице и поговорим.

DOS (Denial of Service):

DOS атака – это попытка ограничить доступ к ресурсу, делая его недоступным для пользователей. В основе такой атаки лежит перегрузка системы, которая не способна обработать все запросы, поступающие от злоумышленников.

Пример: посылка большого количества запросов от одного источника к серверу, что приводит к его перегрузке и отказу в обслуживании.

DDoS (Distributed Denial of Service):

DDoS атака – это эволюция DOS, где атакующий использует ботнет (сеть зараженных компьютеров), чтобы координированно атаковать цель. Это делает атаку более мощной, трудной для выявления и преследования.

Пример: синхронизированная атака с тысяч компьютеров по всему миру, направленная на один сервер, что делает его недоступным для легитимных пользователей.

Вы наверняка слышали как правительства различных стран или отдельные корпорации периодически заявляются о том, что отбили очередную DDoS-атаку какой-либо группы хакеров. Про DoS-атаки слышно гораздо меньше, даже в интернетах при запросе о самых известных атаках этого вида, большая часть результатов поиска будет посвящена DDoS. Выходит, что именно этот тип атак теперь популярен больше всего и выше вероятность получить такую на свой сервис. Если же вы думаете, что мало кто будет обращать внимание на малоизвестные и непопулярные сервисы, то стоит помнить, что у них гораздо хуже защита, поэтому такие сервисы являются гораздо более привлекательной целью, чем что-то крупное и хорошо защищенное.
👍1
Как не профукать свой проект на Python? 🐍

Конец этой недели выдался интересным в плане рабочих задач. У одного клиента отвалился Airflow - это инструмент, который используется для управления потоками обработки данных. Реализован он на Python с использованием фреймворка Flask.

Почему отвалился? После неудачной попытки обновления этого самого Airflow. Апгрейд самого инструмента прошел успешно, ну а дальше начались проблемы с зависимостями. Оказалось, что проект не был установлен изолировано и обновление одного пакета затронуло много чего на уровне системы. Избежать подобного можно при помощи виртуального окружения или virtual environment. Попробую по простому объяснить что это такое.

Замки из песка и проекты в Python 🏰

У вас есть дистрибутив Linux, в котором много где используется Питон. И вы решили на этом дистрибутиве развернуть питонячий проект. Чтобы состояние проекта не влияло на зависимости Питона на уровне системы или на другие проекты (существующие или которые только появятся) проект нужно разместить в том самом виртуальном окружении - изолированной среде в пределах системы, которая не связана с системными пакетами Python и с пакетами других проектов.

Проекты и разработчиков в такой ситуации можно представить детьми, которые в песочнице строят замки. Одно неловкое движение и твой замок рухнет, но при этом есть риск обрушить еще и замки других детей. Мы ведь этого не хотим, правда? Поэтому свой замок мы обнесем оградой, закрывшись от других замков изолированной средой.

После нас хоть потоп 🌊

Оградившись от других детей и замков мы можем делать со своим творением все, что душа пожелает. Даже если что-то сломается, то это никак не повлияет на других. И наоборот, ошибки других не смогут повлиять на наш замок. Можем сделать несколько таких изолированных песочниц и пробовать в них любые варианты. Что в такой ситуации может произойти страшного? Только что-то глобальное - например, по городу, где расположены наши песочницы прилетит метеорит и разнесет все к черту. Но в таком случае уже будет не до спасения каждого отдельно взятого замка, нужно будет решать проблемы болшего масштаба.

Семь раз отмерь… и сделай виртуальное окружение 🧠

Проблемы с Airflow могло вообще не возникнуть, если бы изначально он крутился в виртуальном окружении. И даже если бы трудности после обновления возникли, то при решении все было бы проще, чем работа с зависимостями и пакетами Питона на уровне системы, когда любые манипуляции с ними грозят тем, что отвалится что-нибудь еще.

Потому, если вы новичок в программировании на Питоне, то виртуальное окружение должно стать вашим лучшим спутником при работе. Изолируйте все по максимуму, чтобы потом не оказаться у разбитого корыта.
👍2