fa
Feedback
Linux: Системный администратор

Linux: Системный администратор

رفتن به کانال در Telegram

Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀 Авторский канал действующего админа 👨🏼‍💻

نمایش بیشتر
1 940
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
+1430 روز
آرشیو پست ها
🛠 Как узнать, кто перезагрузил сервер? Сегодня покажу вам простой способ выяснить, кто именно инициировал перезагрузку сервера. Иногда бывает так: сервер внезапно ушёл в ребут, и ты не уверен — это был плановый рестарт, баг или кто-то нажал reboot не подумав. Давайте разбираться! 🔍 Шаг 1: Проверяем журнал перезагрузки

last -x | grep reboot
Эта команда покажет дату и время перезагрузки. Но кто? 🔍 Шаг 2: Ищем инициатора в журнале auditd (если он включён)

ausearch -k reboot
или

ausearch -x /sbin/reboot
Это поможет, если у вас включён auditd. Если нет — смотри следующий шаг. 🔍 Шаг 3: Проверка journalctl

journalctl -b -1 | grep -i 'reboot\|shutdown\|poweroff'
Здесь могут быть строки вроде:
systemd-logind[...]: Power key pressed.
systemd-logind[...]: Rebooting system.
или
systemd[1]: Received request to reboot from UID=1000
UID поможет понять, какой пользователь инициировал ребут. 🔍 Шаг 4: Кто был в системе до ребута?

last -F | head
Посмотри, кто был залогинен незадолго до перезагрузки. Возможно, это и есть "виновник". 🧠 Мой совет: Настрой логирование и аудит таких событий заранее — особенно на продакшене. А ещё можешь повесить алерт на неожиданные ребуты через Prometheus + Alertmanager. Полезно? Делитесь в комментах своими кейсами, когда сервер ушёл в ребут «сам по себе» 😅 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🧰 Проверка сетевых подключений с помощью ss Заменим устаревший netstat! Сегодня хочу показать вам, как удобно и эффективно использовать команду ss для анализа сетевых подключений. Это современная альтернатива netstat, которая работает быстрее и дает больше деталей. 🔍 Примеры, которые стоит запомнить:
ss -tuln
Показывает все слушающие TCP/UDP порты без разрешения имён. Часто использую при проверке, какие службы открыты наружу.
ss -tp
Показывает активные TCP-соединения с указанием PID/имени процесса. Очень выручает при отладке приложений, которые что-то "держат".
ss -s
Краткая сводка по соединениям — как netstat -s, но быстрее. Отлично, чтобы быстро глянуть на состояние TCP-стека. 💡 Совет: если у вас в системе много соединений, используйте ss с фильтрами, например:

ss -t state established '( dport = :ssh or sport = :ssh )'
Покажет только установленные SSH-соединения — очень удобно, если сервер используется как bastion. 👨‍💻 А вы уже полностью перешли на ss или ещё пользуетесь netstat по привычке? Делитесь в комментариях своим опытом! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛡 Как быстро заблокировать IP через iptables и не забыть про это Иногда нужно срочно заблокировать IP — скажем, увидели подозрительную активность в логах sshd. Простой способ:

iptables -A INPUT -s 203.0.113.5 -j DROP
Но есть нюанс: при следующей перезагрузке этот IP снова станет "добрым". Чтобы сохранить правило: 1. Для систем на Debian/Ubuntu Установите iptables-persistent:

   apt install iptables-persistent
   
И сохраните правила:

   netfilter-persistent save
   
2. Для CentOS/RHEL Используйте iptables-save и iptables-restore:

   iptables-save > /etc/sysconfig/iptables
   
💡 Совет: если часто блокируете IP вручную — сделайте себе алиас в .bashrc:

alias blockip='iptables -A INPUT -s'
Теперь можно будет писать так:

blockip 203.0.113.5 -j DROP
📌 А вы как чаще блокируете IP — через iptables, firewalld, fail2ban или что-то ещё? Напишите в комментах👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 Как увеличить размер каталога /tmp/ в Linux Привет, коллеги! Сегодня поговорим об увеличении каталога tmp. Каталог /tmp/ используется для временных файлов и обычно располагается в RAM (tmpfs) или на диске. Если /tmp/ переполняется, это может вызвать сбои в работе системы. Давайте разберем, как его увеличить. 🔍 Проверка текущего размера /tmp/ Чтобы узнать, как /tmp/ смонтирован и его размер, используем:

df -h /tmp
или

mount | grep /tmp
Если /tmp/ использует tmpfs, то он находится в оперативной памяти. 🔹 Вариант 1: Увеличение tmpfs (в RAM) Если /tmp/ смонтирован как tmpfs, можно увеличить его размер командой:

mount -o remount,size=4G /tmp
Где 4G — новый размер. Проверяем:

df -h /tmp
⚠️ Это временное изменение! После перезагрузки сбросится. Чтобы сделать его постоянным, добавляем строку в /etc/fstab:

tmpfs /tmp tmpfs defaults,size=4G 0 0
Затем применяем изменения:

mount -o remount /tmp
🔹 Вариант 2: Использование раздела на диске Если нужно хранить данные на диске, можно создать отдельный раздел. 1️⃣ Выбираем диск и создаем раздел (например, /dev/sdb1):

mkfs.ext4 /dev/sdb1
2️⃣ Монтируем его:

mount /dev/sdb1 /tmp
3️⃣ Делаем постоянным, добавив в /etc/fstab:

/dev/sdb1 /tmp ext4 defaults 0 0
🔹 Вариант 3: Использование файла-контейнера Если новый раздел не вариант, можно создать файл и смонтировать его как /tmp/: 1️⃣ Создаем файл (например, 4ГБ):

dd if=/dev/zero of=/swapfile bs=1M count=4096
2️⃣ Форматируем его:

mkfs.ext4 /swapfile
3️⃣ Монтируем его в /tmp/:

mount /swapfile /tmp
4️⃣ Добавляем в /etc/fstab:

/swapfile /tmp ext4 defaults 0 0
🔥 Итог ✔ Быстрое изменение (RAM)mount -o remount,size=4G /tmpПостоянное изменение (RAM) – правка /etc/fstabИспользование диска – монтирование отдельного раздела ✔ Файл-контейнер – если раздел недоступен #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌IPv4 Адресация и Субнеттинг Упрощённо! 1. IPv4-адрес – это 32-битное число, разделённое на 4 октета. Пример: 192.168.1.1. 2
📌IPv4 Адресация и Субнеттинг Упрощённо! 1. IPv4-адрес – это 32-битное число, разделённое на 4 октета. Пример: 192.168.1.1. 2. Классы IP-адресов: - Класс A: 1.0.0.0 - 126.255.255.255 (маска подсети по умолчанию: 255.0.0.0). - Класс B: 128.0.0.0 - 191.255.255.255 (маска подсети по умолчанию: 255.255.0.0). - Класс C: 192.0.0.0 - 223.255.255.255 (маска подсети по умолчанию: 255.255.255.0). 3. Маска подсети помогает делить IP-адрес на сеть и хосты: - Пример: Маска 255.255.255.0 означает, что первые 3 октета — это сеть, а последний — хосты. 4. CIDR (Classless Inter-Domain Routing) используется для гибкого управления подсетями: - Пример: /24 = 255.255.255.0 (256 адресов, из которых 254 доступны для хостов). 5. Субнеттинг позволяет делить сеть на меньшие подсети: - Пример: 192.168.1.0/24 → можно разделить на две подсети /25: - 192.168.1.0 - 192.168.1.127 - 192.168.1.128 - 192.168.1.255. 6. Формулы для расчётов: - Количество адресов = 2^(32 - префикс CIDR). - Количество хостов = (2^(32 - префикс CIDR)) - 2 (один для сети, другой для широковещательного). 7. Широковещательный адрес (Broadcast) – последний адрес в подсети. - Пример: для сети 192.168.1.0/24 широковещательный адрес – 192.168.1.255. 8. Адрес сети – первый адрес в подсети. - Пример: для сети 192.168.1.0/24 адрес сети – 192.168.1.0. 9. Приватные IP-адреса: - Класс A: 10.0.0.0 - 10.255.255.255. - Класс B: 172.16.0.0 - 172.31.255.255. - Класс C: 192.168.0.0 - 192.168.255.255. 10. Зачем субнеттинг? - Эффективное использование IP-адресов. - Сегментация сети для повышения безопасности. - Управление трафиком и уменьшение широковещательных доменов. Практический пример: Сеть: 192.168.10.0/26 Маска подсети: 255.255.255.192 - Количество адресов: 64 (2^6). - Хосты: 62 (64-2). - Подсети: 1. 192.168.10.0 - 192.168.10.63 2. 192.168.10.64 - 192.168.10.127 #Сети@linux_odmin #Шпаргалка@linux_odmin 👉 @linux_odmin

📌 Полезные флаги команды ls, о которых стоит знать Привет, коллеги! Сегодня давайте поговорим о команде ls. Казалось бы, что тут обсуждать? Все знают, что ls показывает файлы в каталоге. Но есть несколько полезных флагов, которые могут упростить вам жизнь. 🔹 ls -lh – выводит список файлов в удобном для чтения формате (размеры в KB, MB и GB). 🔹 ls -la – показывает все файлы, включая скрытые (. и ..). 🔹 ls -lt – сортирует файлы по дате изменения (сначала самые свежие). 🔹 ls -ltr – тоже самое, но в обратном порядке (старые файлы в начале). 🔹 ls -S – сортировка по размеру (самые большие файлы сверху). 🔹 ls -d */ – покажет только каталоги в текущем пути. 🔹 ls -1 – выводит файлы в одну колонку, удобно для скриптов. 💡 Бонус: если хотите раскрасить вывод ls, добавьте в .bashrc или .zshrc:

alias ls='ls --color=auto'
Теперь файлы и папки будут выделяться цветами! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Как проверить, какие процессы используют диск в Linux? Всем доброо вечера! Сегодня разберёмся с ситуацией, когда диск в системе нагружен, а причина не ясна. Как узнать, какие процессы активно читают/пишут данные? 📌 1. Используем iotop Это удобная утилита, показывающая процессы, активно работающие с диском. Установить её можно так:

# Для Debian/Ubuntu:
sudo apt install iotop  

# Для RHEL/CentOS/AlmaLinux/Rocky:
sudo dnf install iotop
Запускаем команду:

sudo iotop
Можно добавить флаг -o, чтобы показать только активные процессы:

sudo iotop -o
📌 2. Анализируем с pidstat Утилита pidstat из пакета sysstat поможет увидеть нагрузку на диск со стороны процессов:

sudo pidstat -d 1
Здесь -d — мониторинг I/O, а 1 — обновление раз в секунду. 📌 3. Используем lsof Чтобы узнать, какие файлы открыты процессами на диске:

sudo lsof +D /путь/к/директории
Например, чтобы посмотреть файлы в /var/log:

sudo lsof +D /var/log
📌 4. fatrace – в реальном времени Хотите увидеть, какие файлы изменяются? Запустите:

sudo fatrace
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠 Оптимизация автозапуска сервисов в Linux: systemd vs rc.local Привет, коллеги! Сегодня расскажу, как грамотно настраивать автозапуск сервисов в Linux. Многие старые админы привыкли добавлять команды в /etc/rc.local, но в современных дистрибутивах (особенно с systemd) этот метод уже неактуален. ❌ Почему не стоит использовать rc.local? 1️⃣ Отсутствие контроля – трудно мониторить выполнение команд и возможные ошибки. 2️⃣ Не универсально – в некоторых дистрибутивах этот файл просто отсутствует. 3️⃣ Не всегда срабатывает – если что-то пойдет не так, вы даже не узнаете, почему. ✅ Как правильно настроить автозапуск через systemd? Допустим, у вас есть скрипт /opt/myscript.sh, который нужно запускать при старте системы. 1️⃣ Создаем юнит-файл:

sudo nano /etc/systemd/system/myscript.service
2️⃣ Добавляем содержимое:
[Unit]
Description=Мой скрипт
After=network.target

[Service]
ExecStart=/bin/bash /opt/myscript.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target
3️⃣ Активируем и запускаем:

sudo systemctl daemon-reload
sudo systemctl enable myscript
sudo systemctl start myscript
Теперь ваш скрипт будет запускаться при загрузке системы и автоматически перезапускаться в случае сбоя! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠 Как проверить производительность диска в Linux? Сегодня я покажу вам, как быстро протестировать скорость работы диска в Linux. Это пригодится, если вы хотите понять, насколько хорошо работает ваш диск, обнаружить узкие места или просто провести диагностику. 📌 1. Используем hdparm Если у вас обычный HDD или SSD без файловой системы (например, только подключенный диск), попробуйте: sudo hdparm -Tt /dev/sdX Где sdX — ваш диск. Этот тест показывает две вещи: • Кэшированное чтение (-T) — скорость, с которой данные читаются из кэша. • Фактическое чтение (-t) — скорость последовательного чтения с диска. Пример вывода: Timing cached reads: 12000 MB in 2.00 seconds = 6000.00 MB/sec Timing buffered disk reads: 500 MB in 3.00 seconds = 166.67 MB/sec 📌 2. Используем dd Простой способ протестировать скорость записи и чтения: Запись файла 1 ГБ: dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct Чтение файла 1 ГБ: dd if=testfile of=/dev/null bs=1M count=1024 iflag=direct Опция oflag=direct (для записи) и iflag=direct (для чтения) позволяет избежать кэширования. 📌 3. Используем fio (более продвинутый тест) Если вам нужны подробные метрики (IOPS, латентность и т. д.), лучше использовать fio: fio --name=test --size=1G --filename=testfile --rw=read --bs=4k --iodepth=32 --numjobs=1 --time_based --runtime=10 --group_reporting Этот тест эмулирует случайное чтение файла testfile размером 1 ГБ с блоками по 4K. 🧐 Какой способ вы используете чаще всего? Может, есть свой любимый инструмент? Пишите в комментариях! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Автоматический перезапуск упавшего сервиса в Linux Привет, коллеги! Сегодня разберём, как автоматически перезапускать сервис, если он вдруг упал. Это полезно для критичных приложений, которые должны работать 24/7. 📌 Метод 1: systemd (современный способ) Если ваш сервис управляется systemd, настройте автоматический рестарт: 1️⃣ Открываем юнит-файл сервиса:

sudo nano /etc/systemd/system/имя_сервиса.service
2️⃣ Добавляем или редактируем секцию [Service]:

[Service]
Restart=always
RestartSec=5
🔹 Restart=always – сервис перезапускается при любой ошибке 🔹 RestartSec=5 – задержка 5 секунд перед рестартом 3️⃣ Применяем изменения:

sudo systemctl daemon-reexec
sudo systemctl restart имя_сервиса
📌 Метод 2: Monit (для расширенного контроля) Если нужен мониторинг с уведомлениями, используем Monit: 1️⃣ Устанавливаем:

sudo apt install monit  # Debian/Ubuntu
sudo yum install monit  # CentOS
2️⃣ Добавляем правило для сервиса:

sudo nano /etc/monitrc
Пример конфига:

check process nginx with pidfile /run/nginx.pid
   start program = "/bin/systemctl start nginx"
   stop program  = "/bin/systemctl stop nginx"
   if 5 restarts within 5 cycles then unmonitor
3️⃣ Перезапускаем Monit:

sudo systemctl restart monit
📌 Метод 3: crontab (самый простой способ) Если сервис падает редко, можно просто проверять его раз в минуту:

* * * * * pgrep -x nginx > /dev/null || systemctl restart nginx
Вывод: systemd – лучший вариант, Monit подходит для расширенного мониторинга, а cron – для простых случаев. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 Как быстро посмотреть историю изменений файла в Linux? Сегодня покажу вам несколько способов, как отследить изменения в файле в Linux. Это может быть полезно для поиска причин ошибок, аудита или простого контроля за конфигурацией. 🔍 1. stat — метаданные файла Хотите узнать, когда последний раз изменялся файл? Используйте команду:

stat /etc/nginx/nginx.conf
Вы увидите три временных метки: - Access (чтение) - Modify (изменение содержимого) - Change (изменение метаданных, например, прав) 📝 2. ls -lt — сортировка по времени Для списка файлов в каталоге по дате изменения:

ls -lt /etc/nginx/
🕵️ 3. diff — сравнение версий Если у вас есть резервная копия файла, можно сравнить:

diff /etc/nginx/nginx.conf /backup/nginx.conf
📜 4. git — контроль версий Лучший способ отслеживать изменения в важных файлах — использовать git:

cd /etc/nginx
git init
git add nginx.conf
git commit -m "Initial version"
После изменений проверяем разницу:

git diff nginx.conf
👀 5. auditd — мониторинг изменений Если нужно следить за изменением файла в реальном времени, добавляем его в аудит:

auditctl -w /etc/nginx/nginx.conf -p wa -k nginx_conf_change
А потом смотрим логи:

ausearch -k nginx_conf_change --start today
📢 Какой способ используете вы? Делитесь в комментариях! 🚀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🖥️ Как проверить, что cron работает корректно? Привет, админы! Сегодня разберём важную тему — как убедиться, что cron действительно выполняет ваши задания. Бывает, что скрипт в crontab прописан, но не работает, и причина может быть неочевидной. 🔎 Проверяем cron пошагово: 1️⃣ Проверяем, работает ли сам демон cron:

systemctl status cron  # Для систем с systemd (Ubuntu, Debian)
service cron status    # Для старых систем
Если он не запущен, запускаем:

systemctl start cron
2️⃣ Смотрим логи cron: На большинстве дистрибутивов логи находятся в /var/log/syslog или /var/log/cron.log:

grep CRON /var/log/syslog
Если сообщений нет, проверьте, включён ли лог cron в rsyslog.conf. 3️⃣ Запускаем задание вручную Скопируйте команду из crontab и выполните в терминале, чтобы убедиться, что скрипт сам по себе работает. 4️⃣ Добавляем вывод в лог Иногда cron просто не видит ошибки. Давайте принудительно записывать их в лог:

* * * * * /path/to/script.sh >> /var/log/mycron.log 2>&1
5️⃣ Проверяем переменные окружения Cron использует ограниченный PATH. Если скрипт использует внешние команды, указываем полный путь:

/usr/bin/python3 /home/user/myscript.py
или задаём PATH в начале crontab:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
6️⃣ Проверяем права и владельца Скрипт может не запускаться из-за прав доступа. Даем права на исполнение:

chmod +x /path/to/script.sh
Если задание в crontab -e, убедитесь, что оно прописано под нужным пользователем. 💡 Бонус: визуальный мониторинг работы cron Если вам надо отслеживать выполнение задач в реальном времени, установите cronitor или healthchecks.io. Эти сервисы сообщат, если задание не отработало. Пользуетесь ли вы чем-то ещё для отладки cron? Делитесь в комментариях! 🚀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔐 Как заставить пользователя сменить пароль при следующем входе в Linux Привет, коллеги! Сегодня разберем полезный трюк: как заставить пользователя сменить пароль при следующем входе в систему. Это особенно актуально при создании новых учетных записей или после сброса пароля. 🔸 1. Используем команду passwd Самый простой способ принудительно заставить пользователя сменить пароль — это выполнить команду:

passwd --expire username
🔹 Что делает эта команда? Она устанавливает дату последней смены пароля в 0, что вынуждает пользователя изменить его при следующем входе. 🔸 2. Используем команду chage Команда chage позволяет гибко управлять политикой паролей. Чтобы заставить пользователя сменить пароль при следующем входе:

chage -d 0 username
🔹 Как это работает? Флаг -d 0 сбрасывает дату последней смены пароля, и система требует его обновления при следующем входе. 🔸 3. Политика паролей для всех пользователей Если тебе нужно настроить принудительную смену пароля через определенное время для всех пользователей, используй:

chage -M 30 username
🔹 Что делает этот параметр? Устанавливает срок действия пароля в 30 дней. После истечения этого срока система потребует его смены. 🔸 4. Проверка настроек пароля пользователя Чтобы убедиться, что правило применилось, можно выполнить:

chage -l username
Это покажет дату последней смены пароля, срок его действия и дату истечения. 🔸 5. Блокировка входа без смены пароля Если ты хочешь полностью заблокировать пользователя, пока он не изменит пароль, можешь сначала принудительно истечь срок пароля:

passwd -l username
А затем снова разрешить вход после смены пароля:

passwd -u username
🔥 Итог 🔹 Используй passwd --expire username или chage -d 0 username, чтобы заставить пользователя сменить пароль. 🔹 Проверяй настройки командой chage -l username. 🔹 Настраивай срок действия пароля глобально через chage -M 30 username. 🔹 При необходимости блокируй вход до смены пароля. Применяй эти методы и будь уверен в безопасности системы! 🔒 💬 Делись своим опытом в комментариях! Какие еще трюки используешь для управления паролями? #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Как быстро поднять временный веб-сервер в Linux? Бывают ситуации, когда нужно быстро расшарить файлы или запустить простой веб-сервер без установки тяжелых пакетов. Например, передать файл коллеге или проверить верстку локально. В таких случаях можно воспользоваться встроенными средствами. 📌 Python Если у вас установлен Python, запустить HTTP-сервер можно одной командой:

python3 -m http.server 8080
Теперь ваш сервер доступен по адресу http://localhost:8080/. Если хотите раздавать файлы из конкретной директории:

python3 -m http.server 8080 --directory /путь/к/папке
📌 PHP Для тех, у кого есть PHP:

php -S 0.0.0.0:8080
Он тоже запустит веб-сервер на 8080 порту. 📌 BusyBox Если на сервере установлен busybox, можно использовать его встроенный HTTP-сервер:

busybox httpd -f -p 8080 -h /путь/к/каталогу
📌 Node.js У кого есть node, можно использовать http-server:

npx http-server -p 8080
или установить глобально:

npm install -g http-server
http-server -p 8080
💡 Все эти методы хороши для временных решений. Но если вам нужен стабильный веб-сервер, лучше использовать NGINX или Apache. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Разбираем `htop`: Альтернатива top для мониторинга системы Привет, коллеги! Сегодня разберем инструмент, который должен быть в арсенале каждого линукс-админа — htop. Это мощная альтернатива top, которая делает мониторинг ресурсов системы удобным и наглядным. 📌 Почему htop круче top? ✅ Цветовая схема — информация подается визуально, что помогает быстрее анализировать нагрузку. ✅ Гибкость — можно настроить отображение колонок, фильтровать процессы, сортировать их по различным параметрам. ✅ Управление процессамиhtop позволяет не только наблюдать, но и управлять процессами (убивать, приостанавливать, менять приоритет и т.д.). ✅ Горячие клавиши — удобный интерфейс для быстрого взаимодействия. 🛠 Установка На большинстве дистрибутивов htop уже есть в репозиториях: 🔹 Debian/Ubuntu:

sudo apt install htop
🔹 CentOS/RHEL:

sudo yum install htop
🔹 Arch Linux:

sudo pacman -S htop
🚀 Основные фишки 🔸 Сортировка процессов — нажмите F6, чтобы выбрать критерий сортировки. 🔸 Завершение процессов — выделяем процесс, жмем F9, выбираем сигнал. 🔸 Дерево процессовF5 (отображает родственные связи между процессами). 🔸 Поиск процессаF3, вводим имя процесса. 🔸 Изменение приоритета (nice)F7`/`F8 для повышения/понижения приоритета. htop — это удобный инструмент для мониторинга и управления процессами в Linux. Пользуетесь ли вы htop или предпочитаете что-то другое? Пишите в комментариях! 👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Как быстро узнать, какие порты открыты в системе? Привет, админы! Сегодня разберёмся, как быстро и эффективно проверить, какие порты открыты в вашей системе. Это особенно полезно при отладке сервисов, проверке безопасности или поиске проблем с сетевыми соединениями. 📌 1. Используем netstat

netstat -tulnp
✅ Покажет все открытые TCP и UDP порты вместе с PID процесса. 🛑 Недостаток: В новых системах netstat заменён на ss. 📌 2. Используем ss (современный аналог netstat)

ss -tulnp
✅ Быстрее, понятнее, доступно в большинстве дистрибутивов. 📌 3. Проверяем с помощью lsof

lsof -i -P -n
✅ Покажет процессы, использующие сеть, без разрешения DNS-имен (быстрее). 📌 4. Альтернативный вариант – fuser

fuser -n tcp 80
✅ Узнаем, какие процессы слушают конкретный порт. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠️ Оптимизация journalctl: освобождаем место и ускоряем систему Сегодня расскажу, как управлять журналами в Linux, чтобы они не разрастались до огромных размеров и не забивали диск. Логи — это хорошо, но когда они занимают десятки гигабайт, это уже проблема. 🔍 Проверяем размер логов Сначала посмотрим, сколько места занимают журналы systemd:

journalctl --disk-usage
Вы увидите что-то вроде:
Archived and active journals take up 2.3G in total.
Если слишком много, пора чистить! 🗑️ Очищаем журналы Удаляем все старые логи, оставляя только 500M:

journalctl --vacuum-size=500M
Можно также ограничить по времени, например, оставить только записи за последние 7 дней:

journalctl --vacuum-time=7d
⚙️ Ограничиваем размер логов Чтобы в будущем избежать разрастания, задаем лимит в /etc/systemd/journald.conf:

[Journal]
SystemMaxUse=500M
SystemMaxFileSize=100M
Применяем изменения:

systemctl restart systemd-journald
🚀 Итог Теперь логи не будут бесконтрольно расти, а система останется в порядке. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 5 полезных команд для диагностики сети в Linux 🌐 Привет, админы! Сегодня покажу вам 5 мощных команд, которые помогут быстро диагностировать проблемы с сетью в Linux. 🚀 1️⃣ ping – проверяем доступность хоста

ping -c 4 google.com
Отправляет 4 пакета на google.com и показывает, есть ли потери. Если пинг не проходит — проблемы с маршрутизацией или DNS. 2️⃣ traceroute – отслеживаем маршрут пакетов

traceroute google.com
Выводит список узлов, через которые проходит трафик. Полезно, если соединение нестабильное. 3️⃣ netstat / ss – смотрим открытые соединения

netstat -tulnp   # для старых систем
ss -tulnp        # альтернатива
Отображает открытые порты, какие процессы их используют и какие соединения установлены. 4️⃣ dig – проверяем работу DNS

dig google.com
Показывает IP-адреса и DNS-записи домена. Если резолвинг не работает — проблема в DNS. 5️⃣ tcpdump – анализируем сетевой трафик

tcpdump -i eth0 port 80
Фильтрует HTTP-трафик на интерфейсе eth0. Можно использовать для отладки запросов. ⚡ Эти команды — must-have для любого админа! Какие из них используете чаще всего? Делитесь в комментариях! 🔥 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠️ Как найти и исправить битые симлинки в Linux? Привет, коллеги! Сегодня поговорим о том, как искать и исправлять битые символьные ссылки в Linux. Если в системе есть сломанные ссылки, это может привести к ошибкам в работе приложений и скриптов. 🔍 Как найти битые симлинки? Используем команду find:

find / -xtype l 2>/dev/null
Она покажет все битые (неработающие) симлинки в системе. Если нужно искать только в определённой директории, указываем путь, например:

find /home -xtype l
🛠 Удаление всех битых ссылок: Если нужно массово удалить сломанные ссылки, используем:

find / -xtype l -delete
⚠️ Осторожно! Перед удалением лучше проверить список, чтобы случайно не снести нужное. 🔄 Как исправить битый симлинк? Если нашли сломанную ссылку, можно удалить её и создать заново. Допустим, у нас есть сломанный симлинк /usr/bin/python, который должен вести на /usr/bin/python3:

rm /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python
🔥 Полезный трюк: Проверка всех симлинков в системе Хотите узнать, какие симлинки куда ведут? Запускаем:

find / -type l -exec ls -l {} +
Теперь вы знаете, как найти, удалить и исправить сломанные ссылки в Linux. 🚀 Как часто у вас встречаются такие проблемы? Делитесь в комментариях! 👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🔥 Защита SSH: 5 простых шагов для безопасного сервера Привет, админы! Сегодня разберёмся, как защитить SSH от взломов и брутфорса. Это критично для любого сервера, ведь атаки на 22-й порт идут постоянно. Держим систему в безопасности! 🛡️ 1️⃣ Меняем стандартный порт По умолчанию SSH слушает 22-й порт, который атакуют боты. Меняем его:

sudo nano /etc/ssh/sshd_config
Находим строку:
#Port 22
Заменяем, например, на:
Port 2222
Сохраняем и перезапускаем SSH:

sudo systemctl restart sshd
Теперь подключаться будем так:

ssh -p 2222 user@server
2️⃣ Запрещаем вход по паролю Используем только ключи для входа:

PasswordAuthentication no
Чтобы изменения применились:

sudo systemctl restart sshd
Перед этим убедитесь, что у вас уже настроен SSH-ключ! 3️⃣ Ограничиваем доступ по IP Если у вас статический IP, можно запретить подключение от всех, кроме своего IP:

sudo nano /etc/hosts.allow
Добавляем строку:
sshd: 192.168.1.100
А в /etc/hosts.deny запрещаем остальным:
sshd: ALL
4️⃣ Включаем Fail2Ban Этот инструмент автоматически блокирует IP-адреса после нескольких неудачных попыток входа:

sudo apt install fail2ban -y
Настраиваем фильтр для SSH:

sudo nano /etc/fail2ban/jail.local
Добавляем:

[sshd]
enabled = true
maxretry = 5
bantime = 3600
Запускаем:

sudo systemctl restart fail2ban
5️⃣ Ограничиваем число подключений Защитим сервер от DoS-атак с помощью iptables:

sudo iptables -A INPUT -p tcp --syn --dport 2222 -m connlimit --connlimit-above 3 -j REJECT
Это ограничит число одновременных подключений к SSH. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin