Shell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
❤1
Bash. Проверки файлов
Kоманды позволяют проверять различные условия, касающиеся файлов
#!/bin/bash
Kоманды позволяют проверять различные условия, касающиеся файлов
-d file
# Проверяет, существует ли файл, и является ли он директорией.-e file
# Проверяет, существует ли файл.-f file
# Проверяет, существует ли файл, и является ли он файлом.-r file
# Проверяет, существует ли файл, и доступен ли он для чтения.-s file
# Проверяет, существует ли файл, и не является ли он пустым.-w file
# Проверяет, существует ли файл, и доступен ли он для записи.-x file
# Проверяет, существует ли файл, и является ли он исполняемым.file1 -nt file2
# Проверяет, новее ли file1, чем file2.file1 -ot file2
# Проверяет, старше ли file1, чем file2.-O file
# Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.-G file
# Проверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ] # если файл сущетсвует и он является директорией
then
echo "The $mydir directory exists" # выводим сообщение
cd $mydir # переходим в него
ls # отображаем содержимое
else # ИНАЧЕ
echo "The $mydir directory does not exist"
fi
❤2
Шпаргалка по часто используемым командам systemctl
1. Посмотреть статус службы. Покажет статус службы на примере сети network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
3. Остановить службу. Остановит сервис времени ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
8. Перезагрузить сервер. Перезагрузит локальный сервер
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
1. Посмотреть статус службы. Покажет статус службы на примере сети network
systemctl status network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
systemctl start mysql
3. Остановить службу. Остановит сервис времени ntpd
systemctl stop ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
systemctl restart nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
systemctl enable apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
systemctl disable firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
systemctl --host [email protected] stop cron
8. Перезагрузить сервер. Перезагрузит локальный сервер
systemctl reboot
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
systemctl is-active docker
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
systemctl is-active docker && docker run hello-world
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
👍1
Утилиты на PowerShell для системных администраторов
Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.
https://habr.com/ru/articles/799463/
https://github.com/Sync1er/ChernigovEugeniyUtilities
Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.
https://habr.com/ru/articles/799463/
https://github.com/Sync1er/ChernigovEugeniyUtilities
❤3
Bash: Удаление старых логов автоматически
📌 Расшифровка:
*
*
*
*
*
📌 Можно повесить этот скрипт на
#!/bin/bash
# Удалить логи старше 7 дней в указанной директории
LOG_DIR="/var/log/myapp"
find "$LOG_DIR" -type f -name "*.log" -mtime +7 -delete
📌 Расшифровка:
*
find
— ищем файлы*
-type f
— только файлы*
-name "*.log"
— с расширением .log
*
-mtime +7
— старше 7 дней*
-delete
— удаляем📌 Можно повесить этот скрипт на
cron
, чтобы запускался каждый день:
# Открываем планировщик
crontab -e
# Добавляем строчку (запуск в 3:00 ночи)
0 3 * * * /path/to/script.sh
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Winapps – проект, что позволяет запускать приложения Windows, такие как Microsoft Office в Linux (Ubuntu) и GNOME, как если бы они были частью собственной ОС, включая интеграцию с Nautilus
https://github.com/Fmstrat/winapps
https://github.com/Fmstrat/winapps
❤3👍1
find в Linux как инструмент для администрирования
find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. С лохматых тысячелетий есть и поддерживаться почти всеми из них.
Базовый синтаксис ключей
Примеры использования
Ищем все файлы, начиная с текущей директории, название которых начинается на iodmin:
Найти все файлы, начиная с корневой директории, название которых начинается на iodmin:
Поиск в директориях /usr/local/man и /opt/local/man файлов, название которых начинается на iodmin:
Ищем графические файлы, начиная с текущего каталога (см.на кавычки):
Вывести список файлов (см. на / ) во всей файловой системе, чей размер больше 100 Мб:
Ищем файлы в указанных каталогах:
find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. С лохматых тысячелетий есть и поддерживаться почти всеми из них.
Базовый синтаксис ключей
-name
— искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки. Опция -name
различает прописные и строчные буквы; чтобы использовать поиск без этих различий, воспользуйтесь опцией -iname
;-type
— тип искомого: f=файл, d=каталог, l=ссылка (link), p=канал (pipe), s=сокет;-user
— владелец: имя пользователя или UID;-group
— владелец: группа пользователя или GID;-perm
— указываются права доступа;-size
— размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом);-atime
— время последнего обращения к файлу (в днях);-amin
— время последнего обращения к файлу (в минутах);-ctime
— время последнего изменения владельца или прав доступа к файлу (в днях);-cmin
— время последнего изменения владельца или прав доступа к файлу (в минутах);-mtime
— время последнего изменения файла (в днях);-mmin
— время последнего изменения файла (в минутах);-newer
другой_файл — искать файлы созданные позже, чем другой_файл;-delete
— удалять найденные файлы;-ls
— генерирует вывод как команда ls -dgils;-print
— показывает на экране найденные файлы;-print0
— выводит путь к текущему файлу на стандартный вывод, за которым следует символ ASCII NULL (код символа 0);-exec command {} \;
— выполняет над найденным файлом указанную команду; обратите внимание на синтаксис;-ok
— перед выполнением команды указанной в -exec, выдаёт запрос;-depth
или -d
— начинать поиск с самых глубоких уровней вложенности, а не с корня каталога;-maxdepth
— максимальный уровень вложенности для поиска. «-maxdepth 0» ограничивает поиск текущим каталогом;-prune
— используется, когда вы хотите исключить из поиска определённые каталоги;-mount
или -xdev
— не переходить на другие файловые системы;-regex
— искать по имени файла используя регулярные выражения;-regextype
тип — указание типа используемых регулярных выражений;-P
— не разворачивать символические ссылки (поведение по умолчанию);-L
— разворачивать символические ссылки;-empty
— только пустые каталоги.Примеры использования
Ищем все файлы, начиная с текущей директории, название которых начинается на iodmin:
find . -name 'iodmin*'
Найти все файлы, начиная с корневой директории, название которых начинается на iodmin:
find / -name 'iodmin*'
Поиск в директориях /usr/local/man и /opt/local/man файлов, название которых начинается на iodmin:
find /usr/local/man /opt/local/man -name 'iodmin*'
Ищем графические файлы, начиная с текущего каталога (см.на кавычки):
find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"
Вывести список файлов (см. на / ) во всей файловой системе, чей размер больше 100 Мб:
find / -size +100M -print
Ищем файлы в указанных каталогах:
find /var/spool/postfix/{deferred,active,maildrop,incoming}/ -type f
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Сетевые протоколы
1. HTTP (Hypertext Transfer Protocol):
Веб-коммуникация: Обеспечивает взаимодействие браузера и сервера, подходит для незащищенной передачи данных.
2. HTTPS (Hypertext Transfer Protocol Secure):
Безопасная веб-связь: Обеспечивает конфиденциальность благодаря шифрованию SSL/TLS.
3. FTP (File Transfer Protocol):
Передача файлов: Облегчает обмен файлами между компьютерами, используя отдельные каналы.
4. TCP (Transmission Control Protocol):
Надежная доставка данных: Обеспечивает упорядоченную и надежную передачу данных с проверкой на ошибки.
5. IP (Internet Protocol):
Управление пакетами данных: Занимается маршрутизацией и адресацией пакетов данных, присваивая уникальные IP-адреса.
6. UDP (User Datagram Protocol):
Быстрая передача данных: Обеспечивает бесконтактную и более быструю передачу данных без функций обеспечения надежности.
7. SMTP (Simple Mail Transfer Protocol):
Отправка электронной почты: Управляет отправкой электронной почты между серверами с помощью архитектуры клиент-сервер.
8. SSH (Secure Shell):
Безопасный удаленный доступ: Обеспечивает безопасный доступ к удаленным устройствам, шифруя связь между клиентом и сервером.
9. IMAP (Internet Message Access Protocol):
Доступ к электронной почте: Позволяет получать доступ и извлекать электронную почту с сервера, сохраняя ее на сервере.
1. HTTP (Hypertext Transfer Protocol):
Веб-коммуникация: Обеспечивает взаимодействие браузера и сервера, подходит для незащищенной передачи данных.
2. HTTPS (Hypertext Transfer Protocol Secure):
Безопасная веб-связь: Обеспечивает конфиденциальность благодаря шифрованию SSL/TLS.
3. FTP (File Transfer Protocol):
Передача файлов: Облегчает обмен файлами между компьютерами, используя отдельные каналы.
4. TCP (Transmission Control Protocol):
Надежная доставка данных: Обеспечивает упорядоченную и надежную передачу данных с проверкой на ошибки.
5. IP (Internet Protocol):
Управление пакетами данных: Занимается маршрутизацией и адресацией пакетов данных, присваивая уникальные IP-адреса.
6. UDP (User Datagram Protocol):
Быстрая передача данных: Обеспечивает бесконтактную и более быструю передачу данных без функций обеспечения надежности.
7. SMTP (Simple Mail Transfer Protocol):
Отправка электронной почты: Управляет отправкой электронной почты между серверами с помощью архитектуры клиент-сервер.
8. SSH (Secure Shell):
Безопасный удаленный доступ: Обеспечивает безопасный доступ к удаленным устройствам, шифруя связь между клиентом и сервером.
9. IMAP (Internet Message Access Protocol):
Доступ к электронной почте: Позволяет получать доступ и извлекать электронную почту с сервера, сохраняя ее на сервере.
👍3
Как увеличить размер каталога /tmp/
Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
Теперь проверим, есть ли у нас каталог в фстабе:
Если нет, создаем, если существует то выполняем следующую команду:
Теперь готов каталог
Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
# mount -t tmpfs tmpfs /tmp -o size=1024M,mode=1777,remount
Теперь проверим, есть ли у нас каталог в фстабе:
# cat/etc/fstab
Если нет, создаем, если существует то выполняем следующую команду:
# none /tmp tmpfs size=1024M,mode=1777,rw 0 0
Теперь готов каталог
/tmp/
с размером, указанным в операторе “size” размером 1024 mb.❤2
Чтобы разобраться с правами доступа к файлам в Linux, нам нужно понять, что такое Ownership и Permission.
Ownership
Каждому файлу или каталогу присваивается три типа прав собственности:
🔹Owner: Владелец - это пользователь, создавший файл или каталог.
🔹Group (группа): В группе может быть несколько пользователей. Все пользователи в группе имеют одинаковые разрешения на доступ к файлу или каталогу.
🔹Other: Другие - это пользователи, которые не являются владельцами или членами группы.
Permission
Существует только три типа разрешений для файла или каталога:
▪️ Read (r): Разрешение на чтение позволяет пользователю читать файл.
▪️ Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
▪️ Execute (x): Разрешение execute позволяет выполнять файл.
Ownership
Каждому файлу или каталогу присваивается три типа прав собственности:
🔹Owner: Владелец - это пользователь, создавший файл или каталог.
🔹Group (группа): В группе может быть несколько пользователей. Все пользователи в группе имеют одинаковые разрешения на доступ к файлу или каталогу.
🔹Other: Другие - это пользователи, которые не являются владельцами или членами группы.
Permission
Существует только три типа разрешений для файла или каталога:
▪️ Read (r): Разрешение на чтение позволяет пользователю читать файл.
▪️ Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
▪️ Execute (x): Разрешение execute позволяет выполнять файл.
👍3❤2
Linux-Commands
Шпаргалка по bash
Файловая система
-Просмотр содержимого папки
-Перемещение по файловой системе
-Создание папок и файлов
-Копирование файлов
-Переименование или перемещение файлов
-Удаление папок и файлов
Алиасы
Разное
Использование переменных
Подстановка команд в переменные
Математические операции
Управляющая конструкция if-then
Управляющая конструкция if-then-else
Конструкция CASE
Циклы
Сравнение чисел
Сравнение строк
Проверки файлов
Операторы
https://github.com/sergeevdm/Linux-Commands
Шпаргалка по bash
Файловая система
-Просмотр содержимого папки
-Перемещение по файловой системе
-Создание папок и файлов
-Копирование файлов
-Переименование или перемещение файлов
-Удаление папок и файлов
Алиасы
Разное
Использование переменных
Подстановка команд в переменные
Математические операции
Управляющая конструкция if-then
Управляющая конструкция if-then-else
Конструкция CASE
Циклы
Сравнение чисел
Сравнение строк
Проверки файлов
Операторы
https://github.com/sergeevdm/Linux-Commands
❤2
Краткая шпаргалка по использованию tmux
Список доступных сессий можно посмотреть командой:
Подключение к сессии:
Сессиям можно давать осмысленные имена и запускать в них фоновые задачи:
# создать фоновую сессию
# подсоединиться к сессии
# прибить сессию
Это иногда бывает удобно в каких-нибудь скриптах. Характерно, что в screen подобный функционал тоже заявлен, но последний раз, когда я проверял, он был сломан.
Интересно также, что в отличие от screen, в tmux нет возможности работать с последовательными портами. Но если вы решите полностью переходить на tmux, то для этой задачи можете воспользоваться утилитой cu:
Ctr+B, ?
Показать все доступные хоткеиCtr+B, C
Создать окноCtr+B, N
Следующее окноCtr+B, P
Предыдущее окноCtr+B, [0-9]
Перейти к окну с данным номеромCtr+B, X
Закрыть окноCtr+B, %
Горизонтальное разделениеCtr+B, "
Вертикальное разделениеCtr+B,
стрелочки Переход между разделениямиCtr+B,
запятая Переименовать окноCtr+B, W
Список всех окон с переключениемCtr+B, Fn+вверх Скролинг
, можно использовать точпадCtr+B, $
Переименовать текущую сессиюCtr+B, D Detach
, отсоединиться от сессииСписок доступных сессий можно посмотреть командой:
tmux ls
Подключение к сессии:
tmux attach -t 0
Сессиям можно давать осмысленные имена и запускать в них фоновые задачи:
# создать фоновую сессию
tmux new-session -d -s background-task 'watch date'
# подсоединиться к сессии
tmux attach -t background-task
# прибить сессию
tmux kill-session -t background-task
Это иногда бывает удобно в каких-нибудь скриптах. Характерно, что в screen подобный функционал тоже заявлен, но последний раз, когда я проверял, он был сломан.
Интересно также, что в отличие от screen, в tmux нет возможности работать с последовательными портами. Но если вы решите полностью переходить на tmux, то для этой задачи можете воспользоваться утилитой cu:
cu -l /dev/tty.usbserial -s 115200
❤1
Itentis Cloud — облачная платформа, которая работает на вас.
Когда технологии работают без сбоев, вы сосредоточены на развитии бизнеса. Itentis Cloud предлагает безопасную и гибкую инфраструктуру, чтобы вы не тратили время на технические сложности.
🔹 Безопасность как стандарт
Двухфакторная аутентификация (2FA), брандмауэры и шифрование защитят ваши данные
🔹 Полный контроль за секунды
Создавайте VPC, управляйте нагрузкой через балансировщики, автоматизируйте масштабирование. Нужны Kubernetes? Мы всё подготовим за вас.
🔹 Быстрый старт без задержек
Разверните кластер за минуты — быстрее, чем доставка еды. Если что-то пойдет не так, поможем бесплатно или вернем деньги.
🔹 Все инструменты в одном месте
VPC, VNF, IaC (инфраструктура кодом), S3-хранилище и снимки для восстановления системы за секунды.
Почему выбирают нас?
✅ 14 дней бесплатного теста + бесплатная миграция данных.
✅ Поддержка 24/7: реальный инженер поможет с настройкой.
✅Бесплатная миграция: поможем перенести данные.
👉 Переходите на сайт: itentis.cloud
👉 Подписывайтесь на Telegram-канал: t.iss.one/itentis
Когда технологии работают без сбоев, вы сосредоточены на развитии бизнеса. Itentis Cloud предлагает безопасную и гибкую инфраструктуру, чтобы вы не тратили время на технические сложности.
🔹 Безопасность как стандарт
Двухфакторная аутентификация (2FA), брандмауэры и шифрование защитят ваши данные
🔹 Полный контроль за секунды
Создавайте VPC, управляйте нагрузкой через балансировщики, автоматизируйте масштабирование. Нужны Kubernetes? Мы всё подготовим за вас.
🔹 Быстрый старт без задержек
Разверните кластер за минуты — быстрее, чем доставка еды. Если что-то пойдет не так, поможем бесплатно или вернем деньги.
🔹 Все инструменты в одном месте
VPC, VNF, IaC (инфраструктура кодом), S3-хранилище и снимки для восстановления системы за секунды.
Почему выбирают нас?
✅ 14 дней бесплатного теста + бесплатная миграция данных.
✅ Поддержка 24/7: реальный инженер поможет с настройкой.
✅Бесплатная миграция: поможем перенести данные.
👉 Переходите на сайт: itentis.cloud
👉 Подписывайтесь на Telegram-канал: t.iss.one/itentis
❤3👍2
Шпаргалка по часто используемым командам systemctl
1. Посмотреть статус службы. Покажет статус службы на примере сети network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
3. Остановить службу. Остановит сервис времени ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
8. Перезагрузить сервер. Перезагрузит локальный сервер
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
1. Посмотреть статус службы. Покажет статус службы на примере сети network
systemctl status network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
systemctl start mysql
3. Остановить службу. Остановит сервис времени ntpd
systemctl stop ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
systemctl restart nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
systemctl enable apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
systemctl disable firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
systemctl --host [email protected] stop cron
8. Перезагрузить сервер. Перезагрузит локальный сервер
systemctl reboot
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
systemctl is-active docker
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
systemctl is-active docker && docker run hello-world
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
❤2
📌 Как быстро вычислить утечку памяти в Linux?
Когда система начинает «подтормаживать» без видимой причины — пора заподозрить утечку памяти.
Так можно быстро найти виновника :
1. Проверяем использование памяти:
Если
2. Сортируем процессы по потреблению RAM:
Тут видно, кто больше всех ест память.
3. Следим за slab-объектами:
Если значение растёт со временем — это сигнал утечки в ядре или драйверах.
4. Используем
5. Если подозрение на конкретный процесс:
Совет:
Запусти
Когда система начинает «подтормаживать» без видимой причины — пора заподозрить утечку памяти.
Так можно быстро найти виновника :
1. Проверяем использование памяти:
free -h
Если
available
стремится к нулю, есть повод копнуть глубже.2. Сортируем процессы по потреблению RAM:
ps aux --sort=-%mem | head -n 10
Тут видно, кто больше всех ест память.
3. Следим за slab-объектами:
cat /proc/meminfo | grep Slab
Если значение растёт со временем — это сигнал утечки в ядре или драйверах.
4. Используем
smem
для точной оценки:
smem -r | sort -k 4 -nr | head
smem
учитывает shared memory — оценка куда точнее, чем просто ps
.5. Если подозрение на конкретный процесс:
pmap
— покажет, что именно грузит память:
pmap -x <PID>
Совет:
Запусти
htop
, нажми F6
, выбери колонку RES
, отсортируй. Увидишь — кто на самом деле обжора.❤1
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
❤2