Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
- Telegram Web
Telegram Web
This media is not supported in your browser
VIEW IN TELEGRAM
Еще немного экстремально обоснованного хейта в сторону винды))

Мое требование - нужно переделать все туториалы по установке линукса так, чтобы они заканчивались вот этим шагом 😂

LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁69💊11👍7🔥75👏3❤‍🔥1
История о моменте, когда не понимаешь, что происходит

Запускал я однажды MVP нового проекта на новом домене. Сеть поднял, контейнеры крутятся, nginx настроен. Сидим все в офисе с wi-fi - всё летает, тестировщики даже с иностранными vpn тестируют, все ок.

Пошёл трафик, хоть и небольшой. Через пару дней бизнес: «С телефона сайт не открывается». Проверяю, реально, в мобильной сети таймаут.

Думаю: баг в коде? косяк в nginx? Меняю конфиги, даже делаю location / { return 200 "test"; }, но не помогает. Оказывается, что основной сайт компании при этом работает и с wi-fi, и с мобильного. Что-то тут нечисто 🤔

И тут вкидывают новость: в РФ начали троттлить (ограничивать скорость) пул ip адресов Cloudflare, и работает это тоже неравномерно, в одной сети может быть все ок, в другой нет. Я конечно же подумал: "пф, как же хорошо, что у нас все домены идут через ServicePipe". Но все-таки решил сравнить DNS у доменов:


# Мой MVP-домен
dig +short my-new-domain.tld A
# Основной домен
dig +short main.company.tld A


Результат:

— основной домен: ip провайдера/прокси (ServicePipe), у которого в РФ всё ок
— мой домен: IP-адреса Cloudflare, часть из которых блокировалась

Добавил проверку трассы:


dig +trace my-new-domain.tld
dig +trace main.company.tld


Картина сложилась: мобильные операторы по пути до Cloudflare режут или троттлят соединение, а трафик на ServicePipe доходит без проблем.

В итоге перевели новый домен через тот же провайдер (SP), всё стабилизировалось. И да, ещё и денег заработали 😊

LinuxCamp | #magadrovosex #network #story
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥27👍149❤‍🔥1
btop: next level мониторинг процессов

Что такое btop:

Классика жанра top или htop. Но есть современная альтернатива - btop. Интерфейс более красивый, делится на несколько вкладок, и каждая отвечает за свою часть системы.

Установка:



sudo snap install btop


Работа с процессами:

В btop можно смотреть список процессов, фильтровать и сортировать их, переключаться на дерево иерархии. Управление процессами тоже встроено: можно изменить приоритет или завершить задачу.

Поддерживается работа мышью, клик по нужному процессу сразу открывает меню действий.
Запускается просто командой:


btop


Память и диски:

В отличие от htop, btop показывает полное распределение памяти: занятое, свободное, кэш, буферы и swap. Для дисков можно видеть не только объём, но и скорость чтения и записи в реальном времени.

Сеть:

Встроенный мониторинг сетевых интерфейсов позволяет сразу видеть скорость входящего и исходящего трафика.

На графиках удобно отслеживать пики нагрузки. В htop этого нет, там пришлось бы использовать отдельные инструменты, например iftop или nload.

Вывод:

btop объединяет в одном интерфейсе возможности htop, iotop и nload. При этом он остаётся лёгким по ресурсам и удобным в использовании.

Если нужен инструмент для мониторинга процессов, памяти, дисков и сети btop заметно опережает htop по возможностям.

LinuxCamp | #utils
👍356🔥5❤‍🔥1
Последняя стадия принятия, она такая)

1. Борюсь с багами Nvidia
2. Плачу из-за багов Nvidia
3. Становлюсь одним целым с багами Nvidia

У меня на работе даже был кейс, когда нужно было под каждое отдельное GPU Nvidia в композиторе (picom) добавлять исключения на некоторые граф. эффекты, иначе все артефачило.

LinuxCamp | #memes
😭28😁12🫡71💔1
Логи, краткий гайд по поиску и чтению

Логи — это «черный ящик» вашей системы. Умение с ними работать - ключевой навык для быстрого решения проблем. Разберем основы.

Где всё лежит?

Почти все логи живут в /var/log. Главные файлы:

/var/log/syslog/messages — общий журнал системы (ядра, службы, сеть).

/var/log/auth.log/secure — попытки входа (успешные и нет). Первое место для проверки безопасности.

/var/log/dmesg — сообщения от ядра и драйверов. Смотрите через одноименную команду, фильтруя по уровню, например, только ошибки:

dmesg -l err


Чем смотреть?

tail -f (следить в реальном времени), less (просмотр), grep (поиск).

lnav
(Log File Navigator) — делает работу с логами гораздо удобнее.

Почему lnav?

Открывает несколько файлов сразу и архивы (.gz) напрямую.
Показывает гистограмму сообщений по времени (клавиша i).
Подсвечивает синтаксис для разных форматов логов.

Установка и использование:


sudo apt install lnav


sudo lnav /var/log/syslog /var/log/auth.log


LinuxCamp | #utils
1👍389❤‍🔥5
Зачем нужен Whois

Что это такое

whois - это утилита, которая показывает регистрационные данные о доменах и IP-адресах. Через неё можно узнать, кто владелец сайта, где зарегистрирован домен, какие у него NS-сервера и когда заканчивается регистрация.

Как работает

Запрос отправляется к публичным базам данных, где хранятся сведения о доменах и IP. Ответ может отличаться в зависимости от зоны (.ru, .com и т.д.), а часть информации скрывается из-за политики приватности.

Пример в консоли


whois linux.org


На выходе данные о регистраторе, сроке действия, контактной информации (если она открыта):


Domain Name: linux.org
Updated Date: 2024-05-16T04:04:59Z
Creation Date: 1994-05-10T04:00:00Z
Registry Expiry Date: 2034-05-11T04:00:00Z
Registrar Abuse Contact Email: domain.operations@web.com
Registrar Abuse Contact Phone: +1.9046806694
Name Server: lia.ns.cloudflare.com
Name Server: mark.ns.cloudflare.com
...


Где полезно

Сисадмину, чтобы проверить дату окончания домена. Безопаснику, чтобы понять, кому принадлежит IP. Любому пользователю, чтобы не попасть на фишинговый сайт с поддельным адресом.

Важно помнить

Информация в whois может быть скрыта через защиту приватности, но технические данные (например, NS-записи) почти всегда доступны.

LinuxCamp | #utils #network
👍309🔥6❤‍🔥1
Linux сообщество всегда даст дельный совет))

Если кто не знал, "rm -rf" это у нас сокращение от "Read Manual":

"-r" перенаправит на случайную страницу
"-f" отфильтрует инфу


P.S это неправда и просто так, без понимания не выполняй эту команду, пожааалуйста)

LinuxCamp | #memes
😁95🔥4❤‍🔥2👍2🐳2🤔1
Знакомо, когда "apt upgrade" ползет как черепаха?

Виноват не всегда провайдер. Часто - просто загруженное или далёкое зеркало, с которого вы качаете пакеты. Лечится это за 2 минуты! Давайте разберемся, как заставить пакеты летать:

Debian/Ubuntu

Ставим инструмент для поиска самого шустрого зеркала и сразу применяем его:


# Устанавливаем утилиту для выбора самого быстрого зеркала
sudo apt install netselect-apt

# Выбираем зеркало для стабильной версии Debian
sudo netselect-apt stable

# Делаем резервную копию текущего списка репозиториев
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

# Перемещаем новый файл sources.list в /etc/apt/
sudo mv sources.list /etc/apt/sources.list

# Обновляем индекс пакетов с нового зеркала
sudo apt update


Arch Linux

Тут нам поможет reflector. Он протестирует и отсортирует зеркала по скорости:


# Устанавливаем утилиту reflector
sudo pacman -S reflector

# Генерируем новый список зеркал:
sudo reflector --country "Russia" \
--age 12 \
--protocol https \
--sort rate \
--save /etc/pacman.d/mirrorlist


"age 12" — брать только зеркала, обновлённые за последние 12 часов.

"protocol https" — фильтруем только зеркала с защищённым соединением.

"sort rate" — сортировка по скорости загрузки (можно ещё --sort score или --sort delay).

"save /etc/pacman.d/mirrorlist" — сохраняем новый список зеркал, который будет использовать pacman.

Fedora

Всё ещё проще — включаем встроенную фишку:


config-manager --set-enabled fastestmirror


LinuxCamp | #utils
2👍35🔥1510❤‍🔥1
Эмуляция сетевых проблем в Linux

Зачем это нужно

Иногда надо проверить, как приложение ведёт себя при «плохом интернете»: потерях пакетов, задержках или ограниченной скорости. Для этого в Linux есть tc netem - инструмент управления трафиком.

Как работает

tc (Traffic Control) позволяет добавлять правила для сетевых интерфейсов. С помощью модуля netem можно симулировать нестабильную сеть прямо на локальной машине или сервере.

Пример команды


# Добавляем задержку 200ms на интерфейс eth0
sudo tc qdisc add dev eth0 root netem delay 200ms

# Потери пакетов 10%
sudo tc qdisc change dev eth0 root netem loss 10%


Что можно эмулировать

Задержки, джиттер, потерю пакетов, дублирование и даже случайный порядок доставки. Это удобно для тестирования веб-сервисов, VoIP и игр.

Важно помнить

После тестов правила нужно очищать, иначе плохая сеть так и останется:


sudo tc qdisc del dev eth0 root


Вывод

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

LinuxCamp | #utils
6🔥42👍1911❤‍🔥1🤝1
Самый тупой баг

Рассказываю историю. Несколько дней назад я активно занимался деплоем своего "вайб-веб" приложения на сервак: переносил код и, самое ключевое, настраивал докер файлы. По указанной логике у нас при инициализации контейнера выполняется компиляция проекта:


CMD npm run build


Если все локально собирается, то и удаленно тоже должно (так мне изначально казалось). Для справки (потом будет очень важно):

у меня локальная работа идет на MacOS, сервак же - Linux (debain)


Теперь давайте о проблеме:

— я выполняю на сервере "docker compose up --build -d app"
— у меня в конце срабатывает "npm run build"
— сборка на серваке падает с:


Module not found: Can't resolve '@/app/components/UI/IconButtonn'


Проблема же, кажется, очевидная - не определяется импортируемый модуль. Значит, вероятно, что-то не так либо в экспорте, либо в пути до модуля.

Я смотрю структуру проекта на MacOS - такой путь существует, ну и сборка проходит успешно. Пытаюсь стучать в Cursor, он мне ничего дельного сначала не давал.

Потом.... Через часа 3 где-то, он решил посмотреть скрытый .git каталог и нашел, что названия каталогов на гите отличаются от нейминга на MacOS.

Проблема оказалась в том, что я на локальной системе поменял название каталога с "ui" на "UI", но в гит изменение не попало и на серваке лежал каталог "ui"!

А маку же все равно, для его FS каталоги UI и ui аналогичны. В linux же файловая система чувствительна к регистру, поэтому путь не определялся.

Такие дела. Итого, что я вам советую, друзья:

Обращайте внимание на файловые системы и, в целом, специфику ОС, с которыми вы работаете
👍46🔥15😁84❤‍🔥2
rsync - железный инструмент для копирования

Главное преимущество rsync - он передаёт только изменённые части файлов. Если у тебя есть 100 ГБ данных и изменился один файл на 10 МБ, скопируется только этот кусок. Это экономит время и трафик, особенно при бэкапах или синхронизации между серверами.

Почему быстрее

В отличие от scp и cp, которые всегда переносят файл целиком, rsync использует алгоритм дельт. Он сравнивает файлы и гоняет только разницу. На больших проектах или медленных каналах это ускоряет процесс в разы.

Пример команды


rsync -avz /home/user/ user@server:/backup/


– -a сохраняет структуру и права
– -v показывает процесс копирования
– -z сжимает данные при передаче

Полезные фишки


# Сухой прогон (показать, что будет скопировано)
rsync -avzn /src/ /dst/

# Удалить лишнее в целевой папке
rsync -av --delete /src/ /dst/


Вывод

rsync работает быстрее и экономнее, чем обычное scp, когда нужно не просто скопировать, а поддерживать актуальные копии данных. Он стал стандартом де-факто для бэкапов и синхронизации именно благодаря своей скорости и эффективности.

LinuxCamp | #utils
👍62🔥134
Торвальдс завез новое ядро - 6.17

Линус представил новую версию ядра. Она станет основой для осенних релизов: Ubuntu 25.10 и Fedora 43.

Что нового из интересного?

— файловая система Btrfs стала быстрее;

— добавлены системные вызовы file_getattr() и file_setattr();

— внедрены новые драйвера, собранные на Rust. Он у нас продолжает закрепляться как второй язык для разработки драйверов и модулей ядра;

— в драйверах расширена поддержка некоторых GPU: Qualcomm, Adreno, Mali;

— старая добрая EXT4 тоже не забыта и получила небольшие апдейты;

Если кому будет интересно, больше нововведений и правок у нас расписаны на OpenNet.

Что с 6.18?

Линус уже анонсировал работу над версией 6.18, которую ждём к концу года или началу следующего.

LinuxCamp | #news
🔥267💊6🌭2🤔1
Сисадмин плохо не сделает. Уверен, такая система надежнее швейцарских часов.

Вопрос, почему изначально не так?)

LinuxCamp | #memes
😁74👍9🔥4🤔2❤‍🔥1
LVM и снапшоты: быстрый откат изменений

Если понимаешь что напортачишь на сервере, то лучше использовать стапшот. Благодаря этому можно вернуться без боли в интимных местах вернуть все как было.

Что такое LVM

LVM (Logical Volume Manager) - это слой между физическим диском и файловой системой. Он позволяет разбивать хранилище на гибкие логические тома, которые можно изменять на лету без перекатывания дисков.

Зачем нужны снапшоты

Снапшот - это снимок состояния тома в определённый момент времени. Он создаётся мгновенно и занимает мало места, так как хранит только изменения после создания.

Пример использования

Перед обновлением или экспериментами можно сделать снапшот:


# создаём снапшот на 5G
lvcreate --size 5G --snapshot --name my_snap /dev/vg0/my_volume

# монтируем и работаем с ним
mount /dev/vg0/my_snap /mnt/snap


Если что-то пошло не так можно вернуть систему в исходное состояние.

Важно помнить


- Снапшоты занимают место: если оно закончится, снапшот станет бесполезен.
- Это не замена полноценному бэкапу, а удобный способ быстро откатить изменения.

Вывод

LVM-снапшоты - мощный инструмент для админа. Они позволяют экспериментировать без страха сломать систему и экономят время на откатах.

LinuxCamp | #utils
👍3411🔥6🤔1
YAST — пилот для openSUSE и SUSE

YaST (Yet another Setup Tool) — ваш персональный “центр управления полетами” для операционной системы.

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

Что умеет:

— Настройка системы, пользователей и сети. Добавляй новых пользователей, меняй права, настраивай Wi-Fi, IP и DNS через понятное меню, без ручного редактирования.

— Управление пакетами и репозиториями. Устанавливай программы, подключай репозитории и следи за обновлениями.

— Разметка дисков и установка загрузчика. Хочешь разделить диск или поменять параметры загрузки? Всё можно сделать через удобный интерфейс.

— Службы, файрвол и безопасность. Контролируй, какие сервисы запускаются при старте системы, открывай нужные порты и регулируй уровень безопасности.

Примеры использования


# Запуск основного интерфейса YaST в консоли
sudo yast
# Прямой вызов модуля настройки сети
sudo yast2 lan
# Прямой вызов модуля управления пользователями
sudo yast2 users
# Прямой вызов модуля настройки файрвола
sudo yast2 firewall
# Установка пакета nginx
sudo yast2 --install nginx


Почему YaST важен:

YaST — это универсальный инструмент для администрирования openSUSE. Он значительно экономит время и делает настройку системы доступной для тех, кто предпочитает работать с GUI, а не с командной строкой.

LinuxCamp | #utils
👍206🔥5
Forwarded from ITCamp
Ты думаешь, что управляешь виндой?

— User: «Я админ этой машины».
— Windows: «Максимум — стажёр».

А вот в Линуксе всё проще. Написал sudo и пляши как хочешь. Меняй, ломай, чини – твоё дело. Никаких надоедливых окошек)

ITCamp | #memes
😁517🔥2👍1
Устанавливаем Docker на Ubuntu правильно

Просто копи паста в большинстве случаев будет достаточно. Если ты копировал случайные команды из форумов вроде "curl https://get.docker.com | sh", забудь. Так можно словить старую или небезопасную сборку.

Удаляем старые версии (если были)


sudo apt remove docker docker-engine docker.io containerd runc


Ставим зависимости


sudo apt install ca-certificates curl gnupg lsb-release -y


Добавляем официальный репозиторий Docker

Создаём папку под ключи:


sudo mkdir -p /etc/apt/keyrings


Добавляем GPG-ключ Docker:


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg


Добавляем репозиторий:


echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


Устанавливаем Docker и Compose-плагины



sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y


Проверяем:


docker --version


Если видишь строку вроде "Docker version 27.x.x", значит всё ок.

Разрешаем запуск Docker без sudo


sudo usermod -aG docker $USER


После этого выйди из терминала и зайди снова. Проверяем:


docker run hello-world


Если всё работает — поздравляю, Docker установлен правильно и официально

Что не нужно делать

- Не устанавливай Docker через snap install docker - это урезанная версия.
- Не используй скрипты get.docker.com на продакшене.
- Не ставь docker.io это старая сборка из репозиториев Ubuntu.

Вывод

Эта инструкция полностью соответствует официальной документации Docker, можно просто скопировать все команды.

Ты получаешь последнюю стабильную версию Docker и Compose, всё обновляется из официального репозитория, и система останется чистой.

LinuxCamp | #utils #docker
👍40🔥109
Создание ssh-ключа: копипасти и не думай

Linux / macOS (bash, терминал)

Создать ключ (RSA, 4096 бит, стандартный путь ~/.ssh/id_rsa):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"


Нажми Enter, чтобы принять путь по умолчанию, при желании введи passphrase или оставь пустым. Далее добавить ключ в ssh-agent (рекомендуется, чтобы не вводить passphrase постоянно):

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa


Копировать публичный ключ на сервер (самый простой вариант):

ssh-copy-id user@your_server


Если ssh-copy-id нет, можно так:

cat ~/.ssh/id_rsa.pub | ssh user@your_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"


Проверка подключения:

ssh user@your_server
# либо явно указать ключ
ssh -i ~/.ssh/id_rsa user@your_server


Windows (PowerShell, Windows 10/11 с OpenSSH)

Открыть PowerShell (не Git Bash), затем создать ключ:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Нажми Enter несколько раз, чтобы принять путь по умолчанию (C:\Users\<User>\.ssh\id_rsa), при желании введи passphrase


Запустить агент и добавить ключ:

Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa


Скопировать публичный ключ на сервер (один вариант):

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh user@your_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"


Проверка подключения:

ssh user@your_server
# или с явным ключом
ssh -i $env:USERPROFILE\.ssh\id_rsa user@your_server


Вывод

Теперь у вас есть ssh ключ для безопасного подключения к серверам.

LinuxCamp | #ssh
1👍2411🔥4😁1
Так вышла же новая Ubuntu 25.10!

Ребята из Canonical выпустили Questing Quokka. В целом, ничего революционного, но есть за что зацепиться глазом:

— Beta на базе ядра Linux 6.17

— Использует новое рабочее окружение GNOME 49, в котором разработчики окончательно отказались от поддержки сеансов на базе X11, сделав Wayland единственным вариантом

Это не значит, что X11-приложения остались без поддержки — для них используется XWayland

— Замена GNOME Terminal на Ptyxis (эмулятор терминала ориентирован на работу с контейнерами: Toolbox, Distrobox, Podman)

Радует высокой скоростью отрисовки благодаря Vulkan и OpenGL

— Замена GNU Coreutils на Rust Coreutils (uutils) и sudo на sudo-rs. Эти инструменты написаны на Rust

Вывод

Это НЕ LTS-версия. Её поддержат всего до июля 2026-го. Так что для серьёзных, если нужна стабильность и поддержка, можно использовать 24.04 (выпуск поддержки до апреля 2029 года).

Следующий LTS уже получил имя - Resolute Raccoon (Решительный Енот). Будет в апреле 2026.

LinuxCamp | #news
👍22🔥75💊4
Как выйти из vim не переустанавливая сервер?

vim - это встроенный в Linux текстовый редактор. Он есть почти везде и нужен, когда GUI-редакторов нет под рукой.

Как открыть и выйти


vim file.txt


Ты попадаешь в Normal-режим, тут текст вводиться не будет, клавиши выполняют команды. Чтобы выйти:


:q — выйти
:q! — выйти без сохранения
:wq — сохранить и выйти


(если что-то не работает нажми Esc и попробуй ещё раз).

Как редактировать

Чтобы начать печатать текст, надо перейти в Insert-режим, для этого достаточно нажать что-нибудь из этого:


i — вставить перед курсором
a — вставить после курсора
o — вставить новую строку и остаться на ней


Когда закончил редактирование нажми Esc, чтобы вернуться обратно в Normal.

Как двигаться

В Normal-режиме работают стрелки, но для извращенцев кого-то придумали:


h — влево j — вниз
k — вверх l — вправо


А ещё (команды работают в Normal-режиме, нажмите Esc):


0 — в начало строки
$ — в конец строки
gg — в начало файла
G — в конец файла


Как править к сожалению не миром


dd — удалить строку
yy — скопировать строку
p — вставить
u — отменить
Ctrl + r — вернуть отменённое


Полезная имба


:set number — показать номера строк
:syntax on — включить подсветку


Вывод

vim'ом оказывается можно пользоваться и без использования транквилизаторов, главное сначала разобраться :)
Ставь реакцию, если разобрался!

LinuxCamp | #utils
👍77😁36🔥168🤯4
2025/10/12 20:39:22
Back to Top
HTML Embed Code: