🐧Linux для админов и DevOps


Kanal geosi va tili: Rossiya, Ruscha


Практика Linux, серверов, Bash, Docker, Ansible, Kubernetes, мониторинга и DevOps.
Без воды: команды, разборы ошибок, шпаргалки и реальные кейсы для админов.
По всем вопросам: @Kostyan_00

Bog‘liq kanallar

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


🐧 Как загружается Linux
Понимание этого пути — база для диагностики. Когда система не стартует, вы точно знаете, где искать.
— BIOS/UEFI — проверка железа, выбор загрузочного устройства
— GRUB — меню, выбор ядра, передача параметров
— Ядро — инициализация оборудования, запуск initramfs
— systemd — запуск сервисов и достижение target
— Графическое окружение — рабочий стол и окружение.

🔍 Диагностика
systemd-analyze blame — кто тормозил
journalctl -b -p err — ошибки загрузки
systemctl --failed — что упало

🔥Понравился пост, поддержите реакцией!

#linux #загрузка #grub #systemd


🌐Популярные сетевые протоколы в Linux
Протокол — это набор правил, по которым устройства общаются в сети. Для администратора Linux понимание протоколов — такая же база, как умение работать в терминале.
— IP (Internet Protocol)
Адресация и маршрутизация пакетов. IPv4 и IPv6. Без IP пакет не найдёт получателя. Основа всего.
— TCP
Надёжная доставка с подтверждением. Используется там, где важна целостность: SSH, HTTP, почта. Если пакет потерялся — TCP отправит его снова.
— UDP
Быстрая доставка без гарантий. Для стриминга, DNS, игр. Меньше задержки, но потери возможны.
— HTTP/HTTPS
Веб. HTTPS = HTTP + шифрование TLS. Порты 80 и 443. Основа сайтов, API и вебхуков для Telegram-ботов.
— DNS
Преобразование доменов в IP-адреса. Порт 53. Без DNS не работает почти ничего: ни сайты, ни почта, ни обновления.
— DHCP
Автоматическая выдача IP-адресов. Упрощает жизнь в локальных сетях. Сервер раздаёт адреса, клиенты их получают.

#linux #протоколы #сети #tcp #udp #http #dns #ssh #администрирование


🐧 sort, uniq и wc: как использовать вместе
Эти три команды — классика Linux. По отдельности они просты, но в связке решают мощные задачи: анализ логов, подсчёт уникальных значений, поиск дублей.

▶️sort — сортирует строки.
sort file.txt — по алфавиту
sort -n — числовая сортировка
sort -r — в обратном порядке
sort -u — сортировка с удалением дублей (замена sort | uniq)

▶️uniq — фильтрует повторяющиеся строки.
Важно: работает только с соседними дублями, поэтому сначала нужен sort.
uniq — убрать повторы
uniq -c — посчитать количество каждой строки
uniq -d — показать только дубли
uniq -u — показать только уникальные

▶️wc — считает строки, слова, символы.
wc -l — строки
wc -w — слова
wc -c — байты

🔗 Как использовать вместе:
sort file.txt | uniq -c | sort -nr
Сначала сортируем, потом считаем повторы, затем сортируем по убыванию частоты.

🎯Пост сделан совместно с каналом: Linux|Networks|DevOps

#linux #sort #uniq #wc #терминал #администрирование


Linux | Network | DevOps dan repost
🔎Команда find — ищем всё, что угодно

Команда find — один из самых мощных инструментов Linux. Она умеет искать файлы по имени, размеру, дате, правам, владельцу и даже выполнять действия с найденным. Освоив её, вы забудете про поиск в проводнике.

1️⃣Синтаксис, который нужно запомнить
find
Например:
find /home -name "*.txt"
Ищет все .txt файлы в /home.

2️⃣Поиск по имени
find . -name "report.txt"       # точное имя
find . -iname "report.txt"      # без учёта регистра
find . -name "*.log"            # все .log файлы
find . -name "file?.txt"        # ? — один любой символ
💡Шаблон всегда берите в кавычки — иначе оболочка сама попытается его развернуть.

3️⃣Поиск по типу
find . -type f      # только файлы
find . -type d      # только директории
find . -type l      # только символические ссылки
4️⃣Поиск по размеру
find . -size +100M      # больше 100 МБ
find . -size -1k        # меньше 1 КБ
find . -size 0          # пустые файлы
Единицы:
c
— байты,
k
— килобайты,
M
— мегабайты,
G
— гигабайты.

5️⃣Поиск по времени
find . -mtime -7        # изменены за последние 7 дней
find . -mtime +30       # изменены более 30 дней назад
find . -mmin -60        # изменены за последний час
find . -newer file.txt  # новее, чем file.txt
6️⃣Поиск по владельцу и правам
find . -user devops_user        # принадлежат пользователю
find . -group sudo              # принадлежат группе
find . -perm 644                # точные права
find . -perm /u+w               # доступны на запись владельцу
7️⃣Выполнить действие с найденным
find . -name "*.tmp" -delete              # удалить
find . -name "*.log" -exec gzip {} \;     # сжать каждый
find . -name "*.sh" -exec chmod +x {} \;  # сделать исполняемым
⭐️Полезные приёмы
find . -name "*.txt" 2>/dev/null          # скрыть ошибки доступа
find . -type f -exec du -h {} + | sort -h # отсортировать по размеру

Пост был создан совместно с каналом: Linux для админов и DevOps

#linux #sysadmin #find


🐧 journalctl: читаем логи в Linux.

systemctl управляет службами, а journalctl — их память. Он собирает логи ядра, systemd и приложений. Вот минимум, который стоит знать.

🔍 Быстрый старт
journalctl -f — следить за логами в реальном времени
journalctl -u nginx — логи конкретной службы
journalctl -u nginx -xe — разбор ошибок с пояснениями

⏰ Фильтры по времени
journalctl --since "1 hour ago" — за час
journalctl --since today — за сегодня
journalctl -b -1 — логи предыдущей загрузки

🚦 Только важное
journalctl -p err -b — все ошибки текущей загрузки
journalctl --failed — что вообще упало

🧹 Обслуживание
journalctl --disk-usage — сколько занимают логи
sudo journalctl --vacuum-size=500M — обрезать до 500 МБ
💡 Совет:
Сервис не стартует? Начните с journalctl -u имя_сервиса -xe. Там 90% ответов.

🔥 Понравился пост, поддержите реакцией!
#linux #journalctl #логи #syst


🐧systemctl: как управлять службами в Linux и не сломать систему

Если вы пользуетесь современным Linux (Ubuntu, Fedora, Arch, Debian…), то наверняка сталкивались с systemd. А его главный инструмент — systemctl. Это швейцарский нож для управления сервисами, юнитами и загрузкой. Вот самое необходимое, что стоит держать под рукой.

🔧 Управление сервисами
systemctl start nginx — запустить
systemctl stop nginx — остановить
systemctl restart nginx — перезапустить
systemctl reload nginx — перечитать конфиг без остановки
systemctl status nginx — посмотреть состояние и последние логи

🚀 Автозагрузка
systemctl enable nginx — включить в автозапуск
systemctl disable nginx — выключить из автозапуска
systemctl is-enabled nginx — проверить, включён ли

📋 Список и поиск
systemctl list-units --type=service — все активные сервисы
systemctl list-unit-files --type=service — все установленные
systemctl --failed — что упало? Первым делом сюда!

🛠 Продвинутое
systemctl cat nginx — показать содержимое юнита
systemctl edit nginx — создать drop-in для переопределения настроек
systemctl mask nginx — полностью заблокировать запуск (даже вручную)
systemctl daemon-reload — перечитать юниты после правок

💡 Полезный совет:
Если сервис не стартует, посмотрите systemctl status имя_сервиса и journalctl -u имя_сервиса -xe. Там 90% ответов.

👍Понравился пост, поддержите реакцией!
#linux #systemd #systemctl #администрирование #терминал #шпаргалка


✋Всех приветствую!

🎉Рад сообщить, что у меня вышел новый практический курс — «Astra Linux: переход с Windows без боли».

💡Этот курс создан специально для обычных пользователей, а не для администраторов. Если вас переводят на Astra Linux на работе, в школе или госучреждении, или вы просто хотите освоить российскую ОС для личных задач — этот курс поможет быстро освоиться без стресса и лишней теории.

💼Чему вы научитесь:
— устанавливать Astra Linux на компьютер или виртуальную машину;
— уверенно работать в графическом интерфейсе, который похож на Windows: меню «Пуск», файловый менеджер, настройки;
— узнаете, какие программы есть в Astra Linux для офиса, интернета, почты и работы с флешками, и для чего они используются.
— выполнять базовые действия в терминале: навигация, файлы, поиск, установка программ;
— управлять пользователями и понимать основы прав доступа;
— решать типовые проблемы: зависла программа, пропал интернет, система тормозит, забыли пароль.
Никакой лишней теории — только практические навыки для повседневной работы.

💰 Стоимость курса — 990 ₽, по ссылке вначале поста скидка 200 ₽.
#linux #astralinux #bash


👤useradd — создаём пользователя с умом

Каждый админ знает, что создать пользователя можно одной командой. Но что, если я скажу, что с помощью пары флагов вы можете настроить всё — от домашней папки до даты блокировки аккаунта? Давайте разбираться 😉

💡Базовое использование
sudo useradd username
Это минимум. Пользователь появится, но без домашней директории, без пароля и с оболочкой по умолчанию (обычно /bin/sh). Не очень удобно, согласитесь.

💎Полезные опции, которые реально пригодятся
🏠 -m — создать домашнюю директорию в /home/username. Обязательно для обычных пользователей, иначе войти не сможете.
sudo useradd -m username

💻 -s — задать оболочку. Bash — классика:
sudo useradd -m -s /bin/bash username

👥 -g — основная группа. Если не указать, создаётся одноимённая группа.
sudo useradd -m -g users username

➕ -G — дополнительные группы через запятую. Например, для доступа к Docker и sudo:
sudo useradd -m -G docker,sudo username

🔢 -u — принудительно задать UID. Полезно, когда нужно сохранить идентификатор между системами.
sudo useradd -u 1500 -m username

📅 -e — дата блокировки аккаунта в формате YYYY-MM-DD. Идеально для временных сотрудников.
sudo useradd -e 2026-12-31 -m username

📝 -c — комментарий, обычно полное имя пользователя. Приятно видеть в /etc/passwd не просто ник, а реальное имя.
sudo useradd -c "Иван Петров" -m username

📁 -d — указать другой путь для домашней папки, если стандартный не подходит.
sudo useradd -d /custom/home username

🛠 -r — создать системного пользователя (без домашней папки и без срока действия). Для сервисов и демонов.
sudo useradd -r username

💡 -D — посмотреть настройки по умолчанию для useradd: SHELL, HOME, GROUP и прочее. Чтобы знать, с чем работаете.
useradd -D

⚠️Важное предостережение

Если не указать -m, домашней папки не будет. Многие новички спотыкаются на этом, а потом не могут войти или не могут найти свои файлы. Всегда явно прописывайте флаги — привычка, которая сэкономит вам время.
И не забывайте: после создания пользователя нужно установить пароль — об этом мы говорили в прошлом посте про passwd 😉

Понравился пост, поставьте реакцию👍

#linux #useradd #администрирование #пользователи #команды #шпаргалка


😎passwd — не просто «сменить пароль»

Каждый, кто работал в Linux, знает команду passwd. Но мало кто использует её на полную мощность. А ведь там есть пара фишек, которые реально упрощают администрирование.
💡Стандартное использование
Сменить пароль текущему пользователю:
passwd
Сменить пароль другому пользователю (только root):
sudo passwd username
Всё просто. А теперь — самое интересное 👇

💣Полезные флаги, о которых вы могли забыть
🔒 -l (lock) — заблокировать учётку. Пользователь не сможет войти, даже зная пароль. Будет писать «Authentication failure». Идеально, если сотрудник уволился, а удалять учётку пока рано.
sudo passwd -l username

🔓 -u (unlock) — разблокировать обратно.
sudo passwd -u username

🗑 -d (delete) — удалить пароль. Пользователь сможет зайти без пароля. Полезно для временных тестовых аккаунтов, но держите это на контроле — дыра в безопасности!
sudo passwd -d username

📊 -S (status) — посмотреть статус пароля. Показывает, заблокирован аккаунт или нет, когда пароль менялся последний раз и сколько дней до истечения.
sudo passwd -S username
Пример вывода: username P 09/03/2026 0 90 7 — где P означает, что пароль активен, 90 — срок действия, 7 — предупреждение за неделю.

⏳ -e (expire) — сменить пароль. При следующем входе система заставит пользователя придумать новый пароль. Отличный способ заставить всех сменить пароли после инцидента.
sudo passwd -e username

⚠️Важное предостережение

passwd -d — опасная штука. Забыли закрыть тестовый аккаунт? Готовьтесь к гостям. Всегда проверяйте статус через -S, чтобы случайно не оставить дыру. Ну и помните: passwd — это про локальных пользователей, не путайте с паролями от баз данных или SSH-ключей 😉

#linux #passwd #администрирование #безопасность #шпаргалка #команды


Всех приветствую!✋

🌟Начало осени — хороший повод вернуться к обучению и закрыть пробелы, которые вы давно откладывали. Если вы хотели лучше разобраться в Linux, научиться писать скрипты или увереннее работать с сетями — сейчас подходящий момент.

🎁С 31 августа по 30 сентября время осенней распродажи, и на мои курсы действует скидка 40%.

— Linux: от первых команд до серверов: (Практический старт для тех, кто только начинает. Вы освоите терминал, работу с файлами и поймёте, как устроена система изнутри)
— BASH - скрипты: Магия автоматизации: (Курс для тех, кто хочет перестать делать одно и то же вручную. Научитесь писать скрипты, которые экономят часы работы)
— Linux-Мастер: Администрирование, Bash-скрипты, SSH: (Комплексная программа из трех курсов для тех, кто планирует администрировать Linux-серверы. Всё самое нужное в одном месте)
— Компьютерные сети: Практический курс на основе Cisco: (Разберётесь, как работают сети, научитесь настраивать оборудование Cisco и понимать логику передачи данных)
— Сети и серверы: Linux, Cisco, BASH-скрипты и SSH: (Расширенная программа для тех, кто хочет видеть полную картину: от настройки сети до автоматизации рутинных задач)
— Bash, Git, Docker: три столпа современного Админа: (Три инструмента, без которых сегодня сложно представить работу с инфраструктурой. Программа поможет заложить прочный фундамент)

🎉Выберите курс, который подходит именно вам, и сделайте шаг к новым навыкам.


🏆RAID на пальцах: какой уровень ставить?
Собрали сервер, диски есть, и встал вопрос: как их объединить?

🟢RAID 0 — два диска и больше, данные чередуются. Скорость максимальная, но отказоустойчивости ноль. Умирает один диск — теряется всё. Только для временных данных, которые не жалко.

🟢RAID 1 — два диска, полное зеркало. Выдерживает отказ одного диска. Надёжно, но полезный объём — 50% от общего. Идеально для системных дисков.

🟢RAID 5 — три диска и больше. Выдерживает отказ одного диска. Полезный объём — (N−1) × размер. Универсальный выбор для файловых хранилищ.

🟢RAID 6 — четыре диска и больше. Выдерживает отказ двух дисков. Надёжнее RAID 5, но запись медленнее. Для критичных данных.

🟢RAID 10 — четыре диска и больше. Зеркало + чередование. Высокая производительность и отличная отказоустойчивость. Дорого, но для баз и виртуализации — топ.

💡И запомните: RAID спасает от отказа диска, но не от случайного удаления или вируса. Бэкапы — обязательно!

#RAID #сервер #linux #администрирование #шпаргалка


🦾Мощные приёмы работы с history в Linux (и вы точно не все знали)
История команд — штука удобная, но большинство использует её только стрелочками вверх/вниз. А зря. Вот подборка фишек, которые реально ускоряют работу в терминале.

🔍Поиск без лишней беготни
Забудьте про бесконечный скроллинг.
history | grep "docker"
Ищет только команды с docker. Хотите найти ту самую настройку ffmpeg? Пишите history | grep ffmpeg — и готово. Добавьте -i для регистронезависимости:
history | grep -i "error"

💎Мгновенный повтор: не копируйте, вызывайте

Нашли команду по номеру (он виден слева в history)? Выполните её сразу:
!123
А если забыли sudo перед последней командой — просто введите:
sudo !!

😎Если нужно замести следы
Случайно ввели пароль в открытую? Удалите конкретную строку по номеру:
history -d 456
А если хотите, чтобы команда вообще не попала в историю — поставьте пробел в начале (при условии, что в .bashrc есть HISTCONTROL=ignorespace).

💣Бонус: расширьте память терминала
По умолчанию хранится всего 1000 команд. Добавьте в ~/.bashrc:
export HISTSIZE=10000
export HISTFILESIZE=50000
Попробуйте хотя бы пару приёмов сегодня — и работа пойдёт быстрее.
Понравился пост, поставьте реакцию 👍🏻

#linux #bash #history #терминал #лайфхак


🕵️Вычисляем шпионов в локальной сети с помощью Nmap
Утро начинается не с кофе, а с «левого» девайса в подсети? Или веб‑сервер после обновления молчит на 443‑м порту? Знакомо? Тогда Nmap — ваш инструмент. Это швейцарский нож сетевой разведки, который покажет:
— какие устройства реально в сети;
— какие порты открыты и какие сервисы за ними;
— версию ПО (вдруг там древний OpenSSH 3.0);
— операционную систему хоста;
— и даже найдёт несанкционированные устройства.

💡Зачем это вам?
— инвентаризация сети — вы удивитесь, сколько «лишнего» болтается в локалке;
— поиск чужих роутеров и устройств;
— быстрая проверка сервисов после деплоя;
— диагностика проблем, когда хост не пингуется;
— проверка безопасности — открытые порты = потенциальные векторы атаки.

🔴 Важно: Сканировать чужие сети без разрешения — статья. Уголовная или административная, но весёлого мало. Работаем только со своими сетями или с письменным разрешением.

Установка (Ubuntu/Debian)
sudo apt update
sudo apt install nmap
nmap --version

Первое сканирование подсети

nmap 192.168.1.0/24
Nmap опросит все адреса и покажет, кто ответил. Вот и вся картина.

Быстрое сканирование одного хоста (топ-100 портов)
nmap -F 192.168.1.7

Полный анализ, режим «всезнайка»

nmap -A 192.168.1.7
— Минус: дольше и заметнее.
— Плюс: полная картина. Запускайте на своих серверах — лучший вариант.

Сканирование конкретных портов
nmap -p 22,80,443 192.168.1.7
Удобно проверить, живы ли нужные сервисы после изменения конфигурации.

✏️Шпаргалка по ключам (сохраните себе)
-sS — SYN-сканирование (стелс). Требует root.
-sT — полное TCP-соединение, работает без root.
-sV — определение версий сервисов.
-O — определение ОС (тоже root).
-Pn — пропустить проверку ping (если хост «молчит», но есть).
-p 80,443 — сканировать только указанные порты.
-p- — все 65535 портов.
-F — топ-100 портов.
-T0..-T5 — скорость от медленно (0) до агрессивно (5).
-oN file.txt — сохранить в текстовый файл.
-oX file.xml — сохранить в XML.
-v — подробный вывод.
--open — только открытые порты.
--top-ports 100 — заданное число популярных портов.

▶️Скорость: не гоните лошадей
-T0 — медленно и максимально скрытно.
-T3 — стандарт для большинства задач.
-T5 — максимально, но можно словить ложные результаты или уронить слабое железо.
Для повседневной работы — -T4:
nmap -T4 192.168.1.6

Определение версий сервисов

Вместо «http» увидите «nginx 1.18.0» или «OpenSSH 8.9». Это критично для оценки рисков: устаревшее ПО — известные уязвимости.
nmap -sV 192.168.1.6

Если хост не отвечает на ping — ключ 
-Pn
Файрвол может игнорировать ICMP. Nmap решит, что хост неактивен. Лечится командой:
nmap -Pn 192.168.1.1

Сохранение результатов

nmap -oN output.txt 192.168.1.1
Или XML (для автоматизации):
nmap -oX output.xml 192.168.1.1

Комплексная команда (всё в одном
)
sudo nmap -T4 -sV -O -Pn -oN results.txt 192.168.1.1
Расшифровка:
-T4 — умеренная скорость;
-sV — версии сервисов;
-O — ОС;
-Pn — не пингуем;
-oN results.txt — сохраняем результат.

Понравился пост, поддержите реакцией👍
#linux #nmap #admin #иформационнаябезопасность


✋Всем привет!
Хотел бы порекомендовать вам канал Вороний блог | Linux и IT, который не только схож по теме — а именно Linux, — но и по духу и подходу к делу.

💣На нём автор каждый день публикует короткие викторины на знание Linux, полезные заметки, полноценные гайды и руководства, которые можно оставлять себе в качестве шпаргалки и в нужный момент к ним возвращаться.

🎯Так что советую присмотреться и почитать кое-что интересное:

— Vocalinux - Универсальный голосовой ввод в Linux, MacOS и Windows

— MicroMedia - Портативный десктопный просмотрщик видео и изображений

🦾Если откликнется — подписаться и поддержать его энтузиазм и полезные начала.


🔒Как защитить SSH-сервер от ботов: настройка Port Knocking

Открытый SSH-порт — магнит для ботов. Каждый день тысячи автоматических попыток подбора пароля.
Даже с SSH-ключами постоянный шум от сканеров раздражает. Что делать? Один из надёжных способов — Port knocking («стук в дверь»).

💎 Что это?
SSH-порт закрыт для всех. Открывается он только после того, как вы «постучите» в нужном порядке по трём другим портам. Всё делает демон knockd — слушает последовательность и временно разрешает доступ вашему IP.
🚪 Закрываем SSH в iptables
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP
Теперь никто не может даже начать подключение к 22-му порту.

⚙️Ставим и настраиваем knockd
sudo apt install knockd
Делаем резервную копию конфига:
sudo cp /etc/knockd.conf /etc/knockd.conf.bak
Редактируем /etc/knockd.conf — добавляем свой сетевой интерфейс (например, enp0s3) и меняем -A INPUT на -I INPUT 1, иначе правило не сработает.
Пример рабочей конфигурации:
[options]
UseSyslog
Interface = enp0s3

[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn

[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn

🚀 Включаем автозапуск и запускаем
В файле /etc/default/knockd меняем START_KNOCKD=0 на 1:
sudo systemctl start knockd

🕵️‍♂️Стучим с клиента
Устанавливаем утилиту knock:
sudo apt install knock
Чтобы открыть SSH:
knock 192.168.1.6 7000 8000 9000
Затем подключаемся:
ssh admin@192.168.1.6
Закрываем порт обратной последовательностью:
knock 192.168.1.6 9000 8000 7000
📝 Итог
— SSH-порт полностью скрыт от сканеров
— Атакующие не могут даже начать перебор паролей
— Вы получаете доступ только при помощи секретной последовательности
Понравился пост, поддержите реакцией👍

#ssh #linux #portknocking #iptables #admin


🧠 Викторина: как найти PID процесса по его имени 💡Какая команда точно покажет PID процесса по имени "nginx" (при этом может быть несколько процессов) на большинстве систем?
So‘rovnoma
  •   pgrep nginx
  •   pidof nginx
  •   ps -C nginx -o pid=
  •   Все вышеперечисленное
50 ta ovoz


🔎 Одна команда, чтобы быстро понять логи: journalctl

Если у Вас systemd, то journalctl помогает смотреть логи максимально просто и удобно. Ниже — минималистичный гайд, чтобы быстро начать разбирать проблемы.
▶️Основная команда
Показать всё логи за сегодня и в реальном времени:
journalctl --since today -f
Выводит записи с начала дня и продолжает показывать новые записи в реальном времени (как tail -f, но по журналу systemd).

Быстрые полезные варианты
Логи конкретного сервиса (например, nginx):
journalctl -u nginx

Только ошибки и выше:
journalctl -p err

По времени (за последние 2 часа):
journalctl --since "2 hours ago"

🚀Быстрый пример одной полезной комбинации
Смотреть логи сервиса nginx за последние 1 час в реальном времени:
journalctl -u nginx --since "1 hour ago" -f
🔥 Был ли пост полезен? Поставьте реакцию 👍


🏆 Создайте swap за 1 минуту одним скриптом
Если вы устали каждый раз вводить fallocate, mkswap, swapon и править fstab?
Я написал простой скрипт, который делает всё это одной командой.

✅ Что скрипт делает:
— принимает размер (2G, 512M, …)
— создаёт swap-файл с правильными правами
— создает и включает swap
— добавляет авто-подключение в /etc/fstab (без дублей!)

📥 Как использовать:
nano create-swap.sh # создать файл с кодом
chmod +x create-swap.sh # сделать исполняемым
sudo ./create-swap.sh 2G # запустить
swapon --show # проверить
📌 Важно: скрипт проверяет права root, спрашивает подтверждение, если файл уже есть, и пишет в fstab только при отсутствии записи.

⬇️ Код (копируйте и вставляйте):
#!/bin/bash
if [ -z "$1" ]; then
echo "Ошибка: укажите размер (например 2G)"
exit 1
fi
if [ "$EUID" -ne 0 ]; then
echo "Запустите с sudo"
exit 1
fi
SIZE="$1"
SWAPFILE="/swapfile"
if [ -f "$SWAPFILE" ]; then
echo "⚠️ Файл уже существует."
read -p "Пересоздать? (y/n): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi
swapoff "$SWAPFILE" 2>/dev/null
rm -f "$SWAPFILE"
fi
echo "[+] Создание swap-файла $SIZE..."
fallocate -l "$SIZE" "$SWAPFILE"
chmod 600 "$SWAPFILE"
mkswap "$SWAPFILE" > /dev/null
swapon "$SWAPFILE"
if ! grep -q "$SWAPFILE" /etc/fstab; then
echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab
fi
echo "✅ Swap-файл $SIZE активен."
👍 Сохраните себе, чтобы не потерять.

▶️Смотреть: Видео на YouTube
#linux #swap #администрирование #devops #bashscript


🔎 Три простые команды: как проверить состояние сервера за 60 секунд
Когда нужен быстрый статус сервера — достаточно трёх команд. Они помогут понять, что происходит прямо сейчас, без углубленного разбора.
Время работы и нагрузка
uptime
Покажет время работы, нагрузку CPU за последние 1/5/15 минут и количество запущенных пользователей.

Кто сейчас вошёл в систему
who -u
Покажет список вошедших пользователей и их активность.

Топ по потреблению ресурсов
top -b -n1 | head -n 5
Покажет верхние процессы по загрузке CPU/памяти (однократный снимок, без интерактива).

💡 Быстрый вывод: если команды показывают высокую загрузку или неизвестные процессы — это повод детальнее проверить логи и запланировать план действий.
🔥 Если пост полезен — поставьте реакцию 👍


🩺 Команда «Здоровье сервера» — быстрый осмотр
Каждый раз вручную запускать top, free, uptime, df — долго. Этот скрипт собирает всё на одном экране за секунду. Вы сразу видите, перегружен ли сервер, хватает ли памяти и не забиты ли диски.
Установка:
sudo nano /usr/local/bin/health.sh
Вставьте код ниже. Затем:
sudo chmod +x /usr/local/bin/health.sh
echo "alias health='sudo /usr/local/bin/health.sh'" >> ~/.bashrc
source ~/.bashrc
Теперь просто вводите health.
Код:
#!/bin/bash
echo "=== CPU ==="
top -bn1 | grep "Cpu(s)" | awk '{print "CPU: "$2+$4"%"}'
echo "=== RAM ==="
free -h | awk '/Mem/{print "Доступно / Всего: "$7" / "$2}'
echo "=== Load Average ==="
uptime | awk -F'load average:' '{print $2}'
echo "=== Disks ==="
df -h | grep -E '^/dev/(sd|xvd|nvme|vd)' | awk '{print $1, $2, $3, $4, $5, $6}'
CPU > 80% — нагрузка.
Load > ядер CPU — перегрузка.
Available < 10% RAM — не хватает памяти.
Disks Use% > 90% — срочно чистить.

▶️Видео на Youtube: https://www.youtube.com/watch?v=rWkvZg1gAtA

20 ta oxirgi post ko‘rsatilgan.