
- Главная
- Каталог
- Интернет технологии
- linux administration
Статистика канала
Linux Administration ||#Видео📱 Первоисточник
strace — это твой рентгеновский аппарат. Он перехватывает все системные вызовы (syscalls), которые процесс отправляет ядру, и сигналы, которые процесс получает. Ты увидишь каждый открытый файл, каждое сетевое соединение, каждую попытку выделить память. Это читерство уровня «бог».
open), прочитать (read), отправить пакет (sendto). strace внедряется между процессом и ядром и печатает всё, что летит туда-обратно.
# strace по умолчанию
strace ./my_broken_program
# Следить только за открытием файлов
strace -e openat ./my_broken_program
# Записать всё в файл для детального анализа (потом можно grep-нуть)
strace -o /tmp/debug.log ./my_broken_program
# Прицепиться к уже работающему процессу (нужен sudo)
sudo strace -p 1234{}
🟢 Видишь каждый чих программы: какие файлы ищет, какие права запрашивает.🟢 Работает с любым бинарником, даже если это закрытый проприетарный софт.🟢 Позволяет понять, почему процесс висит в состоянии D (uninterruptible sleep) или грузит CPU.🟢 Можно фильтровать только интересующие вызовы (сеть, файлы, память).
open, read, write, connect — учатся быстро).
strace -e openat myapp 2>&1 | grep "ENOENT"{}
Вы увидите все попытки открыть файлы, которые закончились ошибкой ENOENT (нет такого файла). Обычно там всплывает полный путь.
2. Понять, почему процесс висит в `D` состоянии (I/O wait)
Процесс не убивается даже kill -9? Он в D (uninterruptible sleep) — ждёт ответа от диска. strace покажет, на каком вызове он застрял:
sudo strace -p PID{}
Скорее всего, вы увидите бесконечный read() или write() на файловой системе, которая не отвечает (например, монтирование NFS упало).
3. Посмотреть, куда программа ходит по сети (без tcpdump)
Вместо сниффера пакетов можно отследить все сетевые подключения:
strace -e connect myapp{}
Увидите IP-адреса и порты, к которым программа пытается подключиться. Полезно, когда подозреваете «звонилку домой» (phone home) в проприетарном софте.
4. Дебаг падения с core dump'ом
Программа упала с Segmentation fault, но core dump не создался? Запусти её под strace, и ты увидишь последние системные вызовы перед фаталом — часто это поможет понять, с чем связан крах (например, попытка записи в закрытый файловый дескриптор).
5. Узнать, почему процесс не слушает порт (типичный сценарий)
Запустил веб-сервер, а он не поднялся на 80-м порту. strace покажет:
strace -e bind nc -l 80 2>&1 | grep bind{}
Если порт занят, вы увидите ошибку EADDRINUSE.
strace -e open,write python script.py 2>&1 | grep -i log.
3. Видишь: open("/var/log/app.log", O_WRONLY, O_CREAT) = -1 EACCES (Permission denied).
4. Сразу понятно: не хватает прав на запись в папку /var/log. Проблема решена за 30 секунд.
Запомни: strace - твой скальпель, когда софт закрыт, логи врут, а правду хочет знать только ядро. Пользуйся им аккуратно, и ты будешь видеть процессы насквозь.
А ты когда-нибудь отлаживал программу с помощью strace? Может, есть любимые приёмы? Поделись в комментах! И если пост пролил свет на тёмную магию системных вызовов - ставь огоньки! man strace
Linux Administration ||#Инструментыtop.
Оригинал
А вот тут автор собрал все тулзы с той картинки и докинул сверху ещё пачку опенсорсных утилит для мониторинга. Вышла жирная шпаргалка “что запускать, когда всё горит”:
– Как находить идеи? – Как быстро запускать MVP? – Как привлекать первых пользователей?Если тебе близка айти-сфера и ты давно хочешь создать свой пет-проект, нам по пути: https://t.me/+P9xCxnr5WlA1MjMy
/etc/passwd — список пользователей (имя, UID, домашняя папка, шелл). Паролей тут нет (они в /etc/shadow).
- /etc/shadow — зашифрованные пароли и сроки их действия.
- /etc/group — группы и их участники.
# Создать пользователя john с домашней папкой /home/john и bash по умолчанию
sudo useradd -m -s /bin/bash john
# Задать пароль
sudo passwd john
# Посмотреть результат
id john
tail -1 /etc/passwd{}
2. `adduser` — удобная обёртка (интерактивно)
# В Debian/Ubuntu есть удобный adduser
sudo adduser alex
# Он сам создаст домашнюю папку, группу, попросит ввести пароль и дополнительные данные.{}
3. `userdel` — удаление пользователя
# Удалить пользователя, но оставить его домашнюю папку
sudo userdel john
# Удалить пользователя вместе с его домашней папкой и почтовым ящиком
sudo userdel -r john{}
sudo groupadd developers{}
2. `usermod` — добавить пользователя в группу
# Добавить пользователя alex в группу developers (и не удалять из других)
sudo usermod -aG developers alex
# -aG — обязательно с -a, иначе удалит из всех групп!{}
3. `groups` — посмотреть группы пользователя
groups alex
# alex : alex sudo developers{}
4. `gpasswd` — управление группой
# Добавить пользователя в группу (альтернатива)
sudo gpasswd -a alex developers
# Удалить пользователя из группы
sudo gpasswd -d alex developers{}
# Переключиться на пользователя john (потребуется его пароль)
su - john
# Флаг - означает загрузить окружение этого пользователя (как при логине){}
2. `sudo` — выполнить команду от root (или другого пользователя)
# Выполнить команду от root (требуется пароль своего пользователя, если есть право в /etc/sudoers)
sudo systemctl restart nginx
# Выполнить команду от пользователя john
sudo -u john whoami
# Открыть сессию root
sudo -i{}
Важно: Права на sudo настраиваются в /etc/sudoers через visudo. Никогда не редактируй этот файл вручную — только через visudo.
Отзывы канала
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
linux administration — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.5K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 13.5, количество отзывов – 1, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2237.76 ₽, а за 9 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий