Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 month ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 3 weeks ago
Упрощение поиска и устранения неисправностей с помощью lsof
Команда lsof в Unix-системах — это мощный инструмент для работы с открытыми файлами, процессами и сетевыми соединениями.
Чтобы сделать использование lsof проще и удобнее, рассмотрим несколько полезных приёмов: создание псевдонимов, шпаргалок и автоматизированных скриптов.
Псевдонимы для lsof
Создание псевдонимов (aliases) позволяет сократить время выполнения часто используемых команд lsof. Вот несколько примеров, которые упростят работу:
```
# Показать все открытые файлы текущего пользователя
alias showfiles="sudo lsof -u $USER"
alias showmyfiles="sudo lsof -u $USER"
alias ofiles="sudo lsof -u $USER"
# Показать процессы, связанные с портом 80 (например, веб-сервер)
alias port80="sudo lsof -i :80"
# Показать все сетевые подключения для текущего пользователя
alias mynet="sudo lsof -u $USER -i"
# Показать активные сетевые подключения
alias netactive="sudo lsof -iTCP -sTCP:ESTABLISHED"
# Показать только UDP соединения
alias netudp="sudo lsof -iUDP"
```
Эти псевдонимы можно добавить в ваш профиль (~/.bashrc или ~/.zshrc), чтобы быстро выполнять команды для различных задач.
В зависимости от вашего стиля работы и нужд, можно создавать псевдонимы для других полезных команд lsof, например, для отслеживания процессов по PID или для поиска файлов по определённым путям.
Применение скриптов для автоматизации lsof
Автоматизация часто выполняемых задач с помощью скриптов может значительно сократить время на устранение неполадок. Пример простого скрипта:
```
#!/bin/bash
# Сохраните этот файл как mylsof.sh и сделайте его исполняемым:
# chmod +x mylsof.sh
# Скрипт для отображения сетевой активности по IP или порту
if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+.[0-9]+$ ]]; then
echo "Показ сетевой активности для IP: $1"
sudo lsof -i @$1
elif [[ $1 =~ ^[0-9]+$ ]]; then
echo "Показ процессов, использующих порт: $1"
sudo lsof -i :$1
else
echo "Использование: ./mylsof.sh [IP-адрес | порт]"
fi
```
Этот скрипт проверяет, является ли переданный аргумент IP-адресом или портом, и затем выводит соответствующую информацию. Такой подход позволяет упростить работу с lsof и адаптировать скрипт под конкретные нужды.
Продвинутые команды и фишки lsof
Чтобы максимально использовать возможности lsof, рассмотрим ещё несколько продвинутых команд.
Показать все процессы, работающие с определённым файлом
Для отслеживания процессов, использующих конкретный файл:
lsof /path/to/file
Эта команда полезна, когда файл не может быть перемещён или удалён из-за занятости другими процессами.
Показать сетевую активность для удалённых IP
Для вывода сетевой активности с конкретным удалённым IP-адресом:
lsof \-i @remote\_ip
Это позволит быстро найти соединения с указанным хостом, что удобно при диагностике внешних подключений.
Показать только соединения с LISTEN состоянием
Чтобы отобразить все слушающие соединения, используйте:
lsof \-iTCP \-sTCP:LISTEN
Состояние LISTEN полезно для мониторинга серверных приложений и для поиска активных служб.
Поиск файлов, открытых в определённый момент
Чтобы увидеть файлы, открытые конкретным процессом в определённое время, используйте:
lsof \-p [PID] | grep '[timestamp]'
Замена [PID] на ID процесса и [timestamp] на время позволяет отфильтровать записи и быстрее найти нужную информацию.
Показать PID процессов, заблокировавших файловое устройство
Для проверки процессов, занявших определённое устройство, например, /dev/sda1:
lsof /dev/sda1 | awk '{print $2}' | sort \-u
Этот пример выдаст уникальные PID процессов, удерживающих доступ к указанному устройству, что полезно при ошибках в работе с дисками.
Завершение процессов, заблокировавших порт
Если необходимо завершить процессы, которые заняли определённый порт, можно использовать такую команду:
kill \-9 $(lsof \-t \-i :port\_number)
Замените port_number на нужный порт. Будьте осторожны с завершением процессов: лучше использовать его, когда вы точно знаете, что прерывание процесса безопасно.
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 month ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 3 weeks ago