Linux Ready | DevOps
11.2K subscribers
1.03K photos
74 videos
549 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Cотрудничество: @energy_c
Download Telegram
Как узнать, кто будит систему от сна!

Иногда ноутбук не засыпает или сам просыпается. Проверим, какие процессы и устройства мешают переходу в сон.

Проверить, кто блокирует сон:
systemd-inhibit --list


Покажет процессы или сервисы, удерживающие систему от suspend или hibernate.

Колонки:
WHO — инициатор блокировки (имя юнита или сервиса)
UID — владелец
WHY — причина блокировки
WHAT / MODE — тип и режим блокировки


Проверить устройства, способные будить:
cat /proc/acpi/wakeup


Покажет список устройств, разрешённых к пробуждению. enabled — устройство разрешено к пробуждению.

Отключить конкретное устройство (пример — XHC, контроллер USB):
echo XHC | sudo tee /proc/acpi/wakeup


Посмотреть, кто будил систему ранее:
sudo journalctl -b -1 | egrep -i "wake|resume|pm:"


Анализ журнала предыдущей загрузки (-b -1) — показывает источник последнего пробуждения.

Проверить активные таймеры systemd:
systemctl list-timers --all


Выводит все задачи, запланированные systemd. (Обычно они не будят систему из suspend, если не настроен RTC-будильник.)

Проверить RTC-будильник:
cat /sys/class/rtc/rtc0/wakealarm


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

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤7🔥7🤝1
👩‍💻 Выдаём SSH-доступ без shell!

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

В этом посте:
• Настраиваем SSH-ключ, который выполняет только одну команду;

• Разрешаем доступ только для проброса портов;

• Ограничиваем ключ по IP и отключаем интерактивный вход;

• Создаём безопасные “ролевые” ключи для деплоя и автоматизации.


OpenSSH позволяет жёстко ограничить ключи: задать одну команду, разрешить только туннель или вход с нужного IP.

🚪 Linux Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤12👍10🤝1
Тестирование команд без их выполнения!

Linux позволяет прогнать команду в холостую и увидеть, что именно она сделает:
find . -name "*.log" | xargs -t rm


Флаг -t заставит xargs вывести команду перед выполнением. Проверили, что всё верно, уберите -t и повторите.

А если хотите совсем безопасно:
echo rm *.log


Shell развернёт подстановку и покажет, какие файлы попадут под действие, команда не выполнится, просто отобразится.

🔥 Для полной уверенности можно использовать find ... -print.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥10🤝6❤1
👩‍💻 Создаём одноразовые токены и временные ссылки прямо из терминала!

Иногда нужно быстро поделиться конфигом, API-ключом или временным файлом — но так, чтобы доступ сам исчез через несколько минут. Это можно сделать без всяких веб-сервисов: просто через openssl, python3 -m http.server и at.

В этом посте:
• Генерируем уникальный токен локально через openssl;

• Создаём временную ссылку на файл с токеном;

• Настраиваем автоудаление через at;

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


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

🚪 Linux Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥11❤6🤝2
Как сгенерировать фейковые данные прямо в Linux!

Когда нужно быстро создать тестовые данные — email-адреса, имена, логи или случайные строки — всё можно сделать прямо из терминала.

1. Простая генерация email-адресов:

for i in {1..5}; do echo "user$i@example.com"; done


Выведет:
user1@example.com
user2@example.com
...


2. Случайные имена пользователей:
for i in {1..5}; do 
name=$(LC_ALL=C tr -dc 'a-z' </dev/urandom | head -c6)
echo "$name"
done


Пример:
jqtzae
mpvksn


3. Фейковые логи (timestamp + IP + сообщение):
for i in {1..10}; do 
echo "$(date '+%Y-%m-%d %H:%M:%S') $(shuf -n1 -e 192.168.0.{1..10}) INFO User logged in"
sleep 0.1
done


Пример вывода:
2025-11-12 10:23:45 192.168.0.7 INFO User logged in
2025-11-12 10:23:45 192.168.0.3 INFO User logged in


4. Генерация случайных идентификаторов (например, для тестовых записей):
for i in {1..5}; do
LC_ALL=C tr -dc 'a-f0-9' </dev/urandom | head -c8
echo
done


Пример:
3fa82a21
9bcd1e6f


🔥 Небольшая практическая подборка приёмов для тех, кто хочет поработать с данными на уровне командной строки.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍12🔥9🤝1
👩‍💻 Работа с сетевыми сокетами и соединениями!

В этом посте — 7 утилит для диагностики сети, анализа соединений и проверки доступности сервисов. Эти инструменты помогают понять, какие процессы используют порты, какие TCP/UDP-сессии активны, а также позволяют перехватывать и изучать сетевой трафик.

🚪 Linux Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10👍9🤝4
Смотрим самые медленные сервисы при загрузке!

Разберём, как одной командой увидеть, какие systemd‑юниты дольше всего стартуют. Это полезно для ускорения загрузки системы и поиска проблемных служб.

Для начала выведем рейтинг самых медленных сервисов при загрузке через встроенный инструмент systemd:
systemd-analyze blame


Теперь покажем, как вывести только первые строки, чтобы удобнее увидеть самые «тяжёлые» юниты:
systemd-analyze blame | head -n 15


Для точечной диагностики выведем подробности конкретного сервиса из списка:
systemctl status NetworkManager.service


Проверка работы:
systemd-analyze blame | head -n 3
# например: 3.912s NetworkManager.service


Очистка:
sudo systemctl daemon-reload


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

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍11🔥7🤝2
👩‍💻 Разбираем Direnv — автоматизированное управление окружением!

Direnv активирует и выключает окружение автоматически при входе и выходе из каталога проекта.

В этом посте:
• Подключаем direnv к shell и настраиваем базовое окружение;

• Создаём .envrc с определёнными переменными, путями и интеграциями;

• Организуем многослойные окружения для dev/stage/prod;

• Добавляем автоматическую документацию и проверку среды при активации.


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

🚪 Linux Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥10👍8🤝4