mirror of
https://github.com/ilyamak04/DevOps.git
synced 2025-04-05 07:34:49 +02:00
useful stuff
This commit is contained in:
parent
903d8a0e4f
commit
336514b416
@ -2,6 +2,7 @@
|
||||
1. [Настройка сервера](#настройка-сервера)
|
||||
2. [Пакетный менеджер](#пакетный-менеджер)
|
||||
3. [Сеть](#сеть)
|
||||
4. [База](#база)
|
||||
|
||||
### Настройка сервера
|
||||
- `groups username` - группы пользователя
|
||||
@ -37,3 +38,60 @@ APT работает поверх более низкоуровневого ин
|
||||
- `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh
|
||||
- `ss -tulpn` - информация о текущих сетевых соединениях и портах
|
||||
- `curl ifconfig.me` - узнать внешний ip машины
|
||||
|
||||
### База
|
||||
- `cp -p` - сохранить атрибуты файлов (время создания, права, владельца)
|
||||
- `cp -v` - выводить информацию о каждом копируемом файле
|
||||
- `mv -v` - подробный вывод при перемещении.
|
||||
- `chmod 644 /etc/passwd` - изменение прав доступа к файлам и директориям
|
||||
- `chown root:root /etc/hosts` - изменение владельца и группы
|
||||
- `ps -aux` - выводит список всех процессов с информацией о пользователях, загрузке, времени и командах
|
||||
- `ps -ef` - полная информация о процессах с идентификаторами владельцев
|
||||
- `top -o %CPU` - сортировка процессов по указанному полю (например, по CPU)
|
||||
- `kill -9 1234` - принудительное завершене процесса (1234 — PID процесса)
|
||||
- `df -h` - информация о файловых системах
|
||||
- `df -i` - иноды
|
||||
- `du` - отображение размера файлов и каталогов
|
||||
- `s` - отображает только итоговый размер
|
||||
- `--max-depth=1` - выводит размер каталога и его подкаталогов
|
||||
- `ifconfig` - информация о сетевых интерфейсах
|
||||
- `ss -tulpn` - информация о сетевых соединениях
|
||||
- `ping` - проверка доступности хоста
|
||||
- `traceroute` - через какие маршрутизаторы проходит пакет до хоста
|
||||
- `nslookup` - информация о DNS-сервере
|
||||
|
||||
- `sudo useradd -m username` - добавление нового пользователя (`-m` - создание домашнего каталога)
|
||||
- `sudo passwd username` - установка или изменение пароля пользователя
|
||||
- `sudo usermod -aG sudo username` - добавить пользователя в группу `sudo`
|
||||
- `sudo groupadd developers` - создание новой группы
|
||||
- `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени)
|
||||
- `journalctl` - утилита для просмотра логов служб, управляемых `systemd`
|
||||
- `-u <service_name>` - просмотр логов конкретной службы
|
||||
```bash
|
||||
journalctl -u nginx
|
||||
```
|
||||
- `journalctl -u nginx -f` - просмотр логов в реальном времени
|
||||
- `journalctl -n 100` - последние 100 строк
|
||||
- `journalctl --since "2024-10-03 12:00:00" --until "2024-10-03 14:00:00"` - логи за конкретный период
|
||||
- `journalctl -p err` - можно показывать только ошибки
|
||||
- emerg (0): Аварийные сообщения.
|
||||
- alert (1): Требуют немедленных действий.
|
||||
- crit (2): Критические ошибки.
|
||||
- err (3): Ошибки.
|
||||
- warning (4): Предупреждения.
|
||||
- notice (5): Важные события.
|
||||
- info (6): Информационные сообщения.
|
||||
- debug (7): Отладочные сообщения.
|
||||
|
||||
|
||||
|
||||
|
||||
- `tar` - работа с архивами
|
||||
- `-cvf` - создать архив
|
||||
- `-xvf` - извлечь архив
|
||||
- `-z` - использовать сжатие `gzip`
|
||||
```bash
|
||||
tar -cvfz backup.tar.gz /var/www
|
||||
```
|
||||
### Разное
|
||||
|
||||
|
@ -16,4 +16,47 @@ sudo dpkg -i имя_пакета.deb
|
||||
# если возникнут ошибки с зависимостями
|
||||
sudo apt-get install -f
|
||||
```
|
||||
---
|
||||
В Linux можно отправлять процессы различные сигналы, которые управляют их поведением. Эти сигналы — это механизмы межпроцессного взаимодействия (IPC), которые позволяют процессам реагировать на внешние события, такие как завершение или перезапуск.
|
||||
|
||||
- `kill -l` - список всех сигналов в системе
|
||||
|
||||
**Основные сигналы**
|
||||
- SIGTERM (15) - Завершение процесса
|
||||
```
|
||||
kill -SIGTERM <pid>
|
||||
kill -15 <pid>
|
||||
```
|
||||
- SIGKILL (9) - Принудительное завершение процесса
|
||||
- SIGHUP (1) - "Повесить" процесс (например, если конфигурационные файлы изменились, и процесс нужно перезагрузить без остановки. Процесс может получить SIGHUP при отключении терминала, и если он не запрограммирован для обработки этого сигнала, он просто завершится)
|
||||
- SIGSTOP (19) - Остановка процесса.
|
||||
- SIGCONT (18) - Возобновление выполнения остановленного процесса.
|
||||
|
||||
---
|
||||
`Зомби-процесс` - это процесс в операционной системе Linux (и Unix), который завершил своё выполнение, но его запись в таблице процессов всё ещё существует. Такой процесс уже не выполняется, но сохраняет некоторые данные, пока его родительский процесс не соберёт информацию о завершении (код завершения). Зомби-процессы не используют системные ресурсы, такие как процессор или память, но они занимают записи в таблице процессов, которая ограничена по размеру. Если в системе накапливается слишком много зомби-процессов, это может привести к исчерпанию этих записей, что не позволит создавать новые процессы.
|
||||
|
||||
Если родительский процесс корректно обрабатывает завершение своих дочерних процессов, зомби-процессы не накапливаются.
|
||||
|
||||
Если родительский процесс перестаёт функционировать, дочерние процессы (в том числе зомби) могут стать "сиротами" и будут переданы процессу init (PID 1), который автоматически собирает завершённые процессы и освобождает ресурсы.
|
||||
|
||||
Зомби-процессы нельзя "убить", так как они уже завершены. Однако можно решить проблему двумя способами:
|
||||
|
||||
- **Перезагрузка системы**: Это удалит все зомби-процессы.
|
||||
- **Убить родительский процесс**: Если родительский процесс не обрабатывает завершение своих дочерних процессов, можно его завершить. Дочерние процессы будут переданы процессу `init`, который "соберёт" информацию о завершении и освободит зомби-процессы.
|
||||
|
||||
---
|
||||
|
||||
Сиротский процесс (или просто "сирота") — это процесс, у которого завершился родительский процесс. В Linux системах, когда родительский процесс умирает до завершения своих дочерних процессов, эти дочерние процессы становятся "сиротами".
|
||||
|
||||
Что происходит с процессами-сиротами:
|
||||
|
||||
- **Переназначение процессу `init`**: Как только процесс становится сиротой, он автоматически "усыновляется" процессом с `PID 1` (обычно это `init` или его современный аналог systemd в современных дистрибутивах). Процесс `init` берёт на себя ответственность за сироту и следит за его завершением.
|
||||
|
||||
- **Корректное завершение**: Когда процесс-сирота завершает свою работу, `init` собирает его статус завершения с помощью системного вызова `wait()` , предотвращая его превращение в зомби-процесс.
|
||||
|
||||
Отличие от зомби-процесса:
|
||||
|
||||
- Сирота — это активный процесс, который просто потерял своего родителя.
|
||||
- Зомби — это завершённый процесс, чья запись остаётся в таблице процессов до тех пор, пока родитель не соберёт информацию о его завершении.
|
||||
|
||||
Сиротские процессы, в отличие от зомби, продолжают работать и не блокируют системные ресурсы, пока не завершат выполнение.
|
@ -1,2 +0,0 @@
|
||||
- `cat /etc/ssh/sshd_config | grep Port` - показывает на каком порту открыт ssh
|
||||
- `ss -tulpn` - информация о текущих сетевых соединениях и портах
|
Loading…
x
Reference in New Issue
Block a user