Linux Club – Telegram
Linux Club
4.24K subscribers
665 photos
305 videos
73 files
773 links
Заказать рекламу: https://telega.in/c/Linux_Club_nomer_1

Полезные советы, обучающие видеоуроки, статьи по linux.
Download Telegram
🚀 LPIC-101

1.10 Поиск файлов locate и find
1.9 Команда top для управления процессами
1.8 Менеджеры пакетов yum и apt
1.7 Программа Cron (крон)
1.6 Log файл и команды для работы с ими
1.5 Права доступа в файловой системе
1.4 Команды для работы с файлами и файловой системой
1 3 Команда sudo в Linux и создание нового пользователя
1.2 Редакторы vi и nano
1.1 Виртуальная машина и создание пользователя Рут права

#linux

🐧 Linux Club ©
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
🚀 Linux совет

Оператор | в Linux передаёт только стандартный вывод (stdout) одной команды в другую. Ошибки (stderr) при этом теряются.

Пример:


$ cat data.conf | grep "No such file"


Если файла нет — grep ничего не поймает, потому что ошибка не передаётся дальше.

Решение — использовать |&:

$ cat data.conf |& grep "No such file"

Теперь в конвейер попадут и stdout, и stderr.
Фактически |& — это сокращение для:

$ cmd-1 2>&1 | cmd-2


#linux

🐧 Linux Club ©
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15😢2👍1🥱1
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8😁7👍3
🚀 Linux // Антипаттерн → Паттерн #1: безопасный bash-скрипт

Иногда «быстрый» деплой превращается в rm-rf шоу; ниже — короткая замена «на коленке» на каркас, который не стреляет в ногу.

До (ломкий скрипт)

#!/bin/bash
TMP=/tmp/work
mkdir -p $TMP
cp -r data $TMP
rm -rf /var/www/*
cp -r build/* /var/www/
echo "done"


После (надёжный каркас)

#!/usr/bin/env bash
set -Eeuo pipefail
IFS=$'\n\t'
umask 077

tmpdir="$(mktemp -d)"
cleanup(){ rm -rf -- "$tmpdir"; }
trap cleanup EXIT INT TERM

src="data"
dst="/var/www"

mkdir -p "$tmpdir/stage"
rsync -aHAX --delete --info=stats1,progress2 "$src"/ "$tmpdir/stage/"
rsync -aHAX --delete --inplace --info=stats1,progress2 "$tmpdir/stage/" "$dst"/

printf 'ok %s\n' "$(date -Is)"


Что меняется:

🟢 set -Eeuo pipefail — стоп на ошибках и неинициализированных переменных.
🟢 mktemp + trap — временная площадка и гарантированная уборка.
🟢 rsync --delete вместо rm -rf + cp — атомарнее и безопаснее.
🟢 umask 077 — приватные права на промежуточные файлы.

📌 Сохрани пост, чтобы не потерять.

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105
🚀 Linux // Микро-тест #1

Что корректно запустит команду в новых user+mount+pid namespaces с root внутри и рабочим /proc?

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
🚀 Статьи по Linux // Механизм запуска процесса в Linux

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

Изучил я этот механизм, когда разрабатывал Zapper — инструмент Linux, удаляющий все параметры командной строки из любого процесса без прав root.


📌 Читать тут

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
🚀 Теория: PID 1 в контейнере

В контейнере приложению часто достаётся PID 1; он игнорирует завершающие сигналы (кроме KILL/STOP) и должен забирать зомби — из-за этого docker stop нередко зависает

Проверка (30 сек)
cat /proc/1/comm
grep -E 'SigIgn|SigCgt' /proc/1/status
ps -o pid,ppid,stat,cmd | grep ' Z '


Быстрое решение

🟢 docker run --init … (tini) или dumb-init в ENTRYPOINT.
🟢 В shell-entrypoint — exec app ….
🟢 Свой супервизор: PR_SET_CHILD_SUBREAPER + форвардинг сигналов.

📌 Сохрани пост, чтобы не потерять.

#linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Media is too big
VIEW IN TELEGRAM
🚀 Разжёванный курс по Linux для чайников

Самоучитель по Linux — этот курс объяснит всё по-человечески: от установки до повседневных задач, без воды и без занудства. Подойдёт тем, кто хочет работать уверенно в Linux на ноуте или десктопе.

Что внутри:

Установка и выбор дистрибутива — какой взять и почему.

Навигация: файловая система, базовые команды, удобные трюки.

Пакетный менеджмент: apt / dnf / flatpak — что и когда использовать.

Работа с файлами, правами и пользовательскими учётками (chmod, chown, umask, sudo).

Простая автоматизация: bash-скрипты и cron.

Резервные копии и восстановление — как не потерять важное.

GUI-лайфхаки: удобные программы и настройка рабочего стола.

Мини-чеклист безопасности для обычного пользователя.


#linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥5
Когда после оптимизации Linux-сервера ты перезагружаешься и больше не можешь подключиться по SSH

#linux

🐧 Linux Club ©
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14😢10🤔1🤨1
🚀 Оптимизация сетевого стека Linux для высокой пропускной способности и низкой задержки

При больших нагрузках стандартные буферы и алгоритмы TCP становятся узким местом – падает пропускная способность и растёт jitter.

Шаги решения

1. Проверяем и расширяем ring-буферы:

 
   ethtool -g eth0                    # просмотр текущих размеров
   ethtool -G eth0 rx 4096 tx 4096   # ставим приемный и передающий буфер по 4096
  


2. Тонкая настройка параметров в sysctl:

 
   cat <<EOF | sudo tee /etc/sysctl.d/99-net-performance.conf
   net.core.rmem_max = 16777216
   net.core.wmem_max = 16777216
   net.ipv4.tcp_rmem = 4096  87380  16777216
   net.ipv4.tcp_wmem = 4096  65536  16777216
   net.ipv4.tcp_congestion_control = bbr
   net.core.netdev_max_backlog = 5000
   EOF

   sudo sysctl --system
  


3. Активируем BBR (kernel ≥ 4.9):

 
   sudo modprobe tcp_bbr
   sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
   sysctl net.ipv4.tcp_available_congestion_control
   # убедиться, что bbr в списке и стоит по умолчанию
  


4. Полезный трюк – отключаем GRO/GSO для снижения задержек:
   При пиковых нагрузках или туннелировании (VXLAN, GRE):

 
   sudo ethtool -K eth0 gro off gso off
  


Зачем и когда применять

Большие передачи данных (бэкапы, CDN, видео)
Высокая загрузка веб-кластеров
Сети с высокой RTT (между ЦОД, VPN)

📌Важно: сначала тестируйте на стенде, мониторьте nload, sar -n DEV, ss -s и сравнивайте результаты.

#linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104
foundations.of.linux.debugging.disassembling.and.reversing.pdf
3 MB
Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64

Год:
2023
Автор:
Дмитрий Востоков
Язык:
Английский

Рассматриваются различные темы - от инструкций на языке ассемблера Intel x64 и написания программ на языке ассемблера до указателей, оперативной отладки и статического двоичного анализа скомпилированного кода на C и C++. Эта книга идеально подходит для разработчиков настольных систем Linux и облачных приложений.


#Eng #Cpp #Linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁6😢2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2215🔥2👍1
🚀 Rsync: подробное руководство для админов

Покажу, как синхронизировать деревья без боли: слеш в пути, режимы лок/SSH/межсервер, -a под микроскопом, безопасные флаги, нестандартные порты и антиграбли. Будут примеры.

📌 Читать тут

#linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥1
🚀 Скрипт как сервис без root (user-systemd)

Надёжный запуск, авто-рестарт и логи в journal — без sudo. Подходит для ботов, воркеров, долгих скриптов.

# ~/.config/systemd/user/myjob.service
[Unit]
Denoscription=My job (user service)
StartLimitIntervalSec=0

[Service]
WorkingDirectory=%h/projects/myjob
ExecStart=%h/projects/myjob/run.sh
Restart=on-failure
RestartSec=2
CPUQuota=50%
MemoryMax=256M
NoNewPrivileges=yes

[Install]
WantedBy=default.target


Запуск и автозапуск:

systemctl --user daemon-reload
systemctl --user enable --now myjob.service
# чтобы стартовал и после перезагрузки без логина:
loginctl enable-linger "$USER"


Проверка логов/статуса:

systemctl --user status myjob
journalctl --user -u myjob -e


📌 Сохрани пост, чтобы не потерять.

#linux

🐧 Linux Club
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1🤣1