📌 Как быстро вычислить утечку памяти в 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
Стандартные инструменты для диагностики системы Linux
Ядро:
* perf — (в прошлом performance counters for Linux) — доступ к различным внутренним счётчикам ядра; незаменимый инструмент для выполнения профайлинга ядра/операционной системы
* ftrace — трассировщик вызовов функций внутри ядра Linux
* stap — скриптовый язык и инструмент для комплексной диагностики ядра и процессов Linux
* lttng — (Linux Trace Toolkit Next Generation) инструмент для трассировки ядра, программ и библиотек Linux
* bcc (BPF) — (сравнительно) новый и очень мощный инструмент для трассировки и манипуляции ядром Linux, основанный на Berkeley Packet Filter, позволяет делать космические вещи
Ввод/вывод:
* iostat (sysstat) — статистика ввода/вывода по заданному устройству (количество операций записи/чтения в единицу времени, скорость записи/чтения)
* pidstat (sysstat) — нагрузка на процессор, память и устройства от конкретного процесса (заданного по имени или номеру)
* pcstat — использование кэша (какой процент файла попадает в кэш, какой нет)
* lsof — информация об открытых процессом файлах
blktrace
Системные и библиотечные вызовы:
* strace — информация о системных вызовов, выполняемых процессом, позволяет понять или по крайней мере лучше разобраться, почему процесс висит или потребляет много ресурсов
* ltrace — трассировка библиотечных вызовов (которые не обязательно являются системными)
Аппаратные счётчики:
* tiptop — информация о процессах в реальном времени, похожа на top, но в отличие от него данные преимущественно берутся с аппаратных счётчиков
* numastat — просмотр информации об использовании памяти процессами/процессорами в системах с NUMA-архитектурой
Сеть:
* netstat — классический инструмент для просмотра конфигурации сети (сокетов, интерфейсов и так далее)
* ss — socket statistics, позволяет получить информацию об открытых сокетах и их состоянии (похожа на netstat, но умеет больше)
* ethtool — просмотр настроек и состояния ethernet-интерфейса
* snmpget — получение данных по SNMP
* lldptool — настройка LLDP и просмотр данных LLDP
* nicstat — статистика использования сетевой карты (сетевого интерфейса)
* ip — конфигурация и статистика стека TCP/IP Linux
* ifstat — статистика использования сетевого интерфейса в реальном времени
Процессы:
* top — информация о наиболее активных (наиболее ресурсоёмки) процессах + общая информация о системе
* vmstat — данные об использовании виртуальной памяти
* free — информация о свободной памяти, кэше, буферах
* slabtop — информация о заполнении SLAB-кэша
Процессор:
* mpstat (sysstat) — общая информация об использовании процессора (одного или всех процессоров)
* turbostat (kernel-tools) — информация о топологии процессора, частоте, питании, температуре
* rdmsr — (Read from Model Specific Register) чтение из моделезависимых регистров (позволяет оценить использование LLC-кэша и прочее)
Универсальные:
* sar — (system activity report) информация о системной активности в реальном времени (диск, память, процессор и так далее)
* dstat — универсальный инструмент для сбора информации о системе (vmstat, iostat, netstat, ifstat и ещё много других в одном флаконе)
* dmesg — журнал сообщений ядра с момента загрузки системы
* /proc — псевдофайловая система предоставляющая доступ к внутренним данным/счётчикам ядра
* sysdig — универсальный инструмент для сбора и анализа данных о системе (сотни различных источников скомбинированные вместе)
Ядро:
* perf — (в прошлом performance counters for Linux) — доступ к различным внутренним счётчикам ядра; незаменимый инструмент для выполнения профайлинга ядра/операционной системы
* ftrace — трассировщик вызовов функций внутри ядра Linux
* stap — скриптовый язык и инструмент для комплексной диагностики ядра и процессов Linux
* lttng — (Linux Trace Toolkit Next Generation) инструмент для трассировки ядра, программ и библиотек Linux
* bcc (BPF) — (сравнительно) новый и очень мощный инструмент для трассировки и манипуляции ядром Linux, основанный на Berkeley Packet Filter, позволяет делать космические вещи
Ввод/вывод:
* iostat (sysstat) — статистика ввода/вывода по заданному устройству (количество операций записи/чтения в единицу времени, скорость записи/чтения)
* pidstat (sysstat) — нагрузка на процессор, память и устройства от конкретного процесса (заданного по имени или номеру)
* pcstat — использование кэша (какой процент файла попадает в кэш, какой нет)
* lsof — информация об открытых процессом файлах
blktrace
Системные и библиотечные вызовы:
* strace — информация о системных вызовов, выполняемых процессом, позволяет понять или по крайней мере лучше разобраться, почему процесс висит или потребляет много ресурсов
* ltrace — трассировка библиотечных вызовов (которые не обязательно являются системными)
Аппаратные счётчики:
* tiptop — информация о процессах в реальном времени, похожа на top, но в отличие от него данные преимущественно берутся с аппаратных счётчиков
* numastat — просмотр информации об использовании памяти процессами/процессорами в системах с NUMA-архитектурой
Сеть:
* netstat — классический инструмент для просмотра конфигурации сети (сокетов, интерфейсов и так далее)
* ss — socket statistics, позволяет получить информацию об открытых сокетах и их состоянии (похожа на netstat, но умеет больше)
* ethtool — просмотр настроек и состояния ethernet-интерфейса
* snmpget — получение данных по SNMP
* lldptool — настройка LLDP и просмотр данных LLDP
* nicstat — статистика использования сетевой карты (сетевого интерфейса)
* ip — конфигурация и статистика стека TCP/IP Linux
* ifstat — статистика использования сетевого интерфейса в реальном времени
Процессы:
* top — информация о наиболее активных (наиболее ресурсоёмки) процессах + общая информация о системе
* vmstat — данные об использовании виртуальной памяти
* free — информация о свободной памяти, кэше, буферах
* slabtop — информация о заполнении SLAB-кэша
Процессор:
* mpstat (sysstat) — общая информация об использовании процессора (одного или всех процессоров)
* turbostat (kernel-tools) — информация о топологии процессора, частоте, питании, температуре
* rdmsr — (Read from Model Specific Register) чтение из моделезависимых регистров (позволяет оценить использование LLC-кэша и прочее)
Универсальные:
* sar — (system activity report) информация о системной активности в реальном времени (диск, память, процессор и так далее)
* dstat — универсальный инструмент для сбора информации о системе (vmstat, iostat, netstat, ifstat и ещё много других в одном флаконе)
* dmesg — журнал сообщений ядра с момента загрузки системы
* /proc — псевдофайловая система предоставляющая доступ к внутренним данным/счётчикам ядра
* sysdig — универсальный инструмент для сбора и анализа данных о системе (сотни различных источников скомбинированные вместе)
❤3
Примеры полезного использования команды netsh в Windows
Команда netsh (от англ. «сетевая оболочка» или network shell) — программа, включенная в линейку продуктов операционных систем Microsoft Windows NT начиная с Windows 2000. Она позволяет осуществлять локальное или удаленное конфигурирование сетевых параметров.
https://bookflow.ru/primery-poleznogo-ispolzovaniya-komandy-netsh-v-windows/
Команда netsh (от англ. «сетевая оболочка» или network shell) — программа, включенная в линейку продуктов операционных систем Microsoft Windows NT начиная с Windows 2000. Она позволяет осуществлять локальное или удаленное конфигурирование сетевых параметров.
https://bookflow.ru/primery-poleznogo-ispolzovaniya-komandy-netsh-v-windows/
❤1
Основные команды PowerShell
1. Основные команды управления системой:
-
-
-
-
-
-
2. Работа с файлами и каталогами:
-
-
-
-
-
-
3. Информация о системе и процессах:
-
-
-
-
4. Работа с пользователями и группами:
-
-
-
-
5. Работа с переменными и данными:
-
-
-
-
-
6. Потоки данных и конвейеры:
-
-
-
7. Сетевые команды:
-
-
-
8. Скрипты и автоматизация:
-
-
-
-
9. Обновления и безопасность:
-
-
10. Дополнительные команды:
-
-
-
1. Основные команды управления системой:
-
Get-Help
: Получение справки о командах. Например, Get-Help Get-Process
показывает справку о команде Get-Process
.-
Get-Command
: Показать список всех доступных команд или команд, связанных с определённой задачей. Пример: Get-Command *process*
.-
Get-Service
: Показать все службы, установленные на системе.-
Start-Service
: Запустить службу. Пример: Start-Service -Name "wuauserv"
.-
Stop-Service
: Остановить службу.-
Restart-Service
: Перезапустить службу.2. Работа с файлами и каталогами:
-
Get-ChildItem
: Просмотреть файлы и каталоги (аналог команды dir
или ls`). Пример: `Get-ChildItem C:\
.-
Set-Location
: Перейти в другой каталог (аналог cd`). Пример: `Set-Location C:\Users
.-
Copy-Item
: Копировать файл или папку. Пример: Copy-Item C:\source.txt C:\destination.txt
.-
Move-Item
: Переместить файл или папку. Пример: Move-Item C:\file.txt C:\archive\file.txt
.-
Remove-Item
: Удалить файл или папку. Пример: Remove-Item C:\file.txt
.-
New-Item
: Создать новый файл или каталог. Пример: New-Item -Path C:\ -Name "file.txt" -ItemType "file"
.3. Информация о системе и процессах:
-
Get-Process
: Показать список всех запущенных процессов.-
Stop-Process
: Остановить процесс. Пример: Stop-Process -Name "notepad"
.-
Get-EventLog
: Просмотр журналов событий (Event Logs). Пример: Get-EventLog -LogName Application
.-
Get-WmiObject
: Получить информацию о системе, например, о процессоре или установленной ОС. Пример: Get-WmiObject Win32_OperatingSystem
.4. Работа с пользователями и группами:
-
Get-LocalUser
: Показать всех локальных пользователей.-
New-LocalUser
: Создать нового локального пользователя. Пример: New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
.-
Remove-LocalUser
: Удалить локального пользователя.-
Add-LocalGroupMember
: Добавить пользователя в локальную группу. Пример: Add-LocalGroupMember -Group "Administrators" -Member "TestUser"
.5. Работа с переменными и данными:
-
Set-Variable
: Установить переменную. Пример: Set-Variable -Name "MyVar" -Value "Hello"
.-
Get-Variable
: Показать значения переменных.-
Remove-Variable
: Удалить переменную.-
Export-Csv
: Экспорт данных в CSV-файл. Пример: Get-Process | Export-Csv -Path "C:\processes.csv"
.-
Import-Csv
: Импорт данных из CSV-файла. Пример: Import-Csv -Path "C:\processes.csv"
.6. Потоки данных и конвейеры:
-
|
(Pipeline): Передача данных от одной команды к другой. Пример: Get-Process | Where-Object { $_.CPU -gt 100 }
— вывести процессы, которые используют больше 100 единиц процессорного времени.-
Out-File
: Записать результат команды в файл. Пример: Get-Process | Out-File -FilePath "C:\processes.txt"
.-
Select-Object
: Выбор определённых полей. Пример: Get-Process | Select-Object -Property Name, CPU
.7. Сетевые команды:
-
Test-Connection
: Проверить доступность компьютера (аналог команды ping`). Пример: `Test-Connection google.com
.-
Get-NetIPAddress
: Показать список всех IP-адресов на машине.-
Get-NetAdapter
: Показать информацию о сетевых адаптерах.8. Скрипты и автоматизация:
-
Invoke-Command
: Выполнить команду на удалённой системе. Пример: Invoke-Command -ComputerName "Server1" -ScriptBlock { Get-Process }
.-
Start-Job
: Запустить задачу в фоне. Пример: Start-Job -ScriptBlock { Get-Process }
.-
Get-Job
: Показать статус фоновых задач.-
Receive-Job
: Получить результат выполнения фоновой задачи.9. Обновления и безопасность:
-
Install-Module
: Установка PowerShell-модулей. Пример: Install-Module -Name "PSWindowsUpdate"
.-
Update-Module
: Обновление установленных модулей.10. Дополнительные команды:
-
Clear-Host
(или `cls`): Очистить экран.-
Exit
: Выйти из сеанса PowerShell.-
Measure-Object
: Подсчитать количество объектов, или сумму значений. Пример: Get-ChildItem | Measure-Object
.Stacer – Опенсорсная утилита для оптимизации и мониторинга Linux-систем
https://github.com/oguzhaninan/Stacer
https://github.com/oguzhaninan/Stacer
❤2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Advanced Bash-Scripting Guide
Перевод: Андрей Киселев
Версия 2.8.7 (22 Августа 2004)
Искусство программирования на языке сценариев командной оболочки
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.
https://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
Перевод: Андрей Киселев
Версия 2.8.7 (22 Августа 2004)
Искусство программирования на языке сценариев командной оболочки
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.
https://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html
❤2🔥1
📌 Эти утилиты предоставляют важные возможности для анализа и отладки сетевых проблем в различных операционных системах
Windows
▪️ tracert - стандартная утилита в Windows для трассировки маршрута, которая известна многим.
▪️ pathping - это встроенный в Windows аналог утилиты mtr с аналогичной функциональностью, но поддерживающий только icmp запросы. Обычно он уже установлен в системе, и его не требуется устанавливать отдельно.
▪️ tracetcp - это виндовая утилита, которая может выполнять tcp syn запросы по маршруту следования пакетов. Она помогает определить доступность определенного порта и может указать, где именно блокируется этот порт. Для установки этой утилиты потребуется скачать ее с официального сайта и установить вручную.
Linux
▪️ traceroute - это стандартная утилита Linux, предназначенная для трассировки маршрута. По умолчанию она использует протокол udp, но вы можете выполнить трассировку с использованием протокола icmp следующим образом:
▪️ tracepath - аналогична утилите traceroute, но использует протокол udp и сразу выводит значения mtu и маршрутизаторы, где происходит изменение mtu.
▪️ mtr - эта утилита объединяет функциональность утилит ping и traceroute. Она может использовать протоколы tcp, udp и icmp. В операционной системе Windows есть аналог с названием Winmtr.
Windows
▪️ tracert - стандартная утилита в Windows для трассировки маршрута, которая известна многим.
tracert google.com
▪️ pathping - это встроенный в Windows аналог утилиты mtr с аналогичной функциональностью, но поддерживающий только icmp запросы. Обычно он уже установлен в системе, и его не требуется устанавливать отдельно.
pathping google.com
▪️ tracetcp - это виндовая утилита, которая может выполнять tcp syn запросы по маршруту следования пакетов. Она помогает определить доступность определенного порта и может указать, где именно блокируется этот порт. Для установки этой утилиты потребуется скачать ее с официального сайта и установить вручную.
tracetcp google.com:443
Linux
▪️ traceroute - это стандартная утилита Linux, предназначенная для трассировки маршрута. По умолчанию она использует протокол udp, но вы можете выполнить трассировку с использованием протокола icmp следующим образом:
traceroute -I google.com
▪️ tracepath - аналогична утилите traceroute, но использует протокол udp и сразу выводит значения mtu и маршрутизаторы, где происходит изменение mtu.
tracepath google.com
▪️ mtr - эта утилита объединяет функциональность утилит ping и traceroute. Она может использовать протоколы tcp, udp и icmp. В операционной системе Windows есть аналог с названием Winmtr.
mtr -c3 google.com
❤3👍2
Cron - лучшие практики
Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами.
У простоты cron(8), как и многих старых Unix-инструментов, есть недочёт: программа полагается на то, что пользователь хотя бы примерно знает, как всё работает, и в состоянии правильно реализовать в нём какую-то проверку безопасности.
По сути, единственное, что делает планировщик, — это пытается запустить задачу в определённое время и прислать результат на электронную почту. Для простых и незначительных задач пользователей таких возможностей вполне достаточно.
Но для более важных системных задач стоит обернуть вокруг cron(8) и вызываемых им задач дополнительную инфраструктуру. Если вам хочется отслеживать выполняемые задачи, то существует несколько способов повысить надёжность работы с cron(8).
Rus https://habr.com/ru/companies/skillfactory/articles/656423/
Eng https://blog.sanctum.geek.nz/cron-best-practices/
Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами.
У простоты cron(8), как и многих старых Unix-инструментов, есть недочёт: программа полагается на то, что пользователь хотя бы примерно знает, как всё работает, и в состоянии правильно реализовать в нём какую-то проверку безопасности.
По сути, единственное, что делает планировщик, — это пытается запустить задачу в определённое время и прислать результат на электронную почту. Для простых и незначительных задач пользователей таких возможностей вполне достаточно.
Но для более важных системных задач стоит обернуть вокруг cron(8) и вызываемых им задач дополнительную инфраструктуру. Если вам хочется отслеживать выполняемые задачи, то существует несколько способов повысить надёжность работы с cron(8).
Rus https://habr.com/ru/companies/skillfactory/articles/656423/
Eng https://blog.sanctum.geek.nz/cron-best-practices/
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Принцип работы протокола Kerberos
❤2👍1
Полезные команды Linux. Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )
Вывести листинг пакетов, установленных в системе
Удалить все заголовки файлов, которые система использует для разрешения зависимостей
Очистить rpm-кэш, удалив закачанные пакеты
Найти пакет в репозитории
Очистить rpm-кэш, удалив закачанные пакеты и заголовки
Скачать и установить пакет
обновить пакет
Обновить все пакеты, установленные в систему
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории
Удалить пакет
# yum list
Вывести листинг пакетов, установленных в системе
# yum clean headers
Удалить все заголовки файлов, которые система использует для разрешения зависимостей
# yum clean [package]
Очистить rpm-кэш, удалив закачанные пакеты
# yum search [package]
Найти пакет в репозитории
# yum clean all
Очистить rpm-кэш, удалив закачанные пакеты и заголовки
# yum -y install [ package ]
Скачать и установить пакет
# yum update [package]
обновить пакет
# yum -y update
Обновить все пакеты, установленные в систему
# yum localinstall [ package.rpm ]
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории
# yum remove [package]
Удалить пакет
❤3👎1
Полезные команд для фильтрации текста и операциями с файлами в Linux
1. Команда awk
2. Команда sed
3. Команды grep, egrep, fgrep, rgrep
4. Команда head
5. Команда tail
6. Команда sort
7. Команда uniq
8. Команда fmt
9. Команда pr
10. Команда tr
11. Команда more
12. Команда less
https://telegra.ph/Poleznye-komand-dlya-filtracii-teksta-i-operaciyami-s-fajlami-v-Linux-01-21
1. Команда awk
2. Команда sed
3. Команды grep, egrep, fgrep, rgrep
4. Команда head
5. Команда tail
6. Команда sort
7. Команда uniq
8. Команда fmt
9. Команда pr
10. Команда tr
11. Команда more
12. Команда less
https://telegra.ph/Poleznye-komand-dlya-filtracii-teksta-i-operaciyami-s-fajlami-v-Linux-01-21
❤1
Управление сервисами systemd через утилиту systemctl
systemctl start name.service
– запуск сервиса.systemctl stop name.service
— остановка сервисаsystemctl restart name.service
— перезапуск сервисаsystemctl try-restart name.service
— перезапуск сервиса только, если он запущенsystemctl reload name.service
— перезагрузка конфигурации сервисаsystemctl status name.service
— проверка, запущен ли сервис с детальным выводом состояния сервисаsystemctl is-active name.service
— проверка, запущен ли сервис с простым ответом: active или inactivesystemctl list-units --type service --all
– отображение статуса всех сервисовsystemctl enable name.service
– активирует сервис (позволяет стартовать во время запуска системы)systemctl disable name.service
– деактивирует сервисsystemctl reenable name.service
– деактивирует сервис и сразу активирует егоsystemctl is–enabled name.service
– проверяет, активирован ли сервисsystemctl list-unit-files --type service
– отображает все сервисы и проверяет, какие из них активированыsystemctl mask name.service
– заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemdsystemctl unmask name.service
– возвращает файл сервиса, делая юнит доступным для systemd❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Стратегии аварийного восстановления в облаке
Эффективный план восстановления после аварии (DR) - это не просто предосторожность, это необходимость.
Ключевым моментом любой надежной стратегии DR является понимание и установка двух ключевых показателей: Объекта времени восстановления (RTO) и Объекта точки восстановления (RPO).
- Объект времени восстановления (RTO) относится к максимально допустимой продолжительности времени, в течение которой ваше приложение или сеть могут быть отключены после аварии.
- Объект точки восстановления (RPO), с другой стороны, указывает на максимально допустимую потерю данных, измеряемую во времени.
Давайте рассмотрим четыре широко применяемые стратегии DR:
1. Стратегия резервного копирования и восстановления:
Этот метод включает регулярные резервные копии данных и систем для облегчения восстановления после аварии.
- Типичный RTO: от нескольких часов до нескольких дней.
- Типичный RPO: от нескольких часов до времени последнего успешного резервного копирования.
2. Подход Pilot Light:
Поддерживает ключевые компоненты в режиме готовности к активации, обеспечивая быстрое масштабирование в ответ на аварию.
- Типичный RTO: от нескольких минут до нескольких часов.
- Типичный RPO: зависит от того, насколько часто синхронизируются данные.
3. Решение с горячим резервированием:
Создает полус активное окружение с текущими данными для сокращения времени восстановления.
- Типичный RTO: обычно от нескольких минут до часов.
- Типичный RPO: до последних нескольких минут или часов.
4. Горячее сайт / Конфигурация с несколькими сайтами:
Обеспечивает полностью операционную, дублирующую среду, работающую параллельно с основной системой, обеспечивая беспрерывную функциональность.
- Типичный RTO: почти мгновенный, часто всего несколько минут.
- Типичный RPO: крайне минимальный, обычно всего несколько секунд.
Эффективный план восстановления после аварии (DR) - это не просто предосторожность, это необходимость.
Ключевым моментом любой надежной стратегии DR является понимание и установка двух ключевых показателей: Объекта времени восстановления (RTO) и Объекта точки восстановления (RPO).
- Объект времени восстановления (RTO) относится к максимально допустимой продолжительности времени, в течение которой ваше приложение или сеть могут быть отключены после аварии.
- Объект точки восстановления (RPO), с другой стороны, указывает на максимально допустимую потерю данных, измеряемую во времени.
Давайте рассмотрим четыре широко применяемые стратегии DR:
1. Стратегия резервного копирования и восстановления:
Этот метод включает регулярные резервные копии данных и систем для облегчения восстановления после аварии.
- Типичный RTO: от нескольких часов до нескольких дней.
- Типичный RPO: от нескольких часов до времени последнего успешного резервного копирования.
2. Подход Pilot Light:
Поддерживает ключевые компоненты в режиме готовности к активации, обеспечивая быстрое масштабирование в ответ на аварию.
- Типичный RTO: от нескольких минут до нескольких часов.
- Типичный RPO: зависит от того, насколько часто синхронизируются данные.
3. Решение с горячим резервированием:
Создает полус активное окружение с текущими данными для сокращения времени восстановления.
- Типичный RTO: обычно от нескольких минут до часов.
- Типичный RPO: до последних нескольких минут или часов.
4. Горячее сайт / Конфигурация с несколькими сайтами:
Обеспечивает полностью операционную, дублирующую среду, работающую параллельно с основной системой, обеспечивая беспрерывную функциональность.
- Типичный RTO: почти мгновенный, часто всего несколько минут.
- Типичный RPO: крайне минимальный, обычно всего несколько секунд.
❤1
Как защитить сервер Linux
Ограничьте, кто может использовать sudo
Почему
sudo позволяет учетным записям выполнять команды от имени других учетных записей, включая root. Мы хотим убедиться, что только нужные нам учетные записи могут использовать sudo.
Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.
Примечания
Возможно, ваша сборка уже сделала это, или у вас уже есть специальная группа, предназначенная для этой цели, поэтому сначала проверьте.
Debian создаёт группу sudo. Чтобы просмотреть пользователей, которые входят в эту группу (таким образом, имеют привилегии sudo):
Шаги
1 - Создайте группу:
2 - Добавьте учетную запись(и) в группу:
Вам нужно будет сделать это для каждой учетной записи на вашем сервере, которой нужны привилегии sudo.
3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
4 - Отредактируйте файл конфигурации
5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
Ограничьте, кто может использовать sudo
Почему
sudo позволяет учетным записям выполнять команды от имени других учетных записей, включая root. Мы хотим убедиться, что только нужные нам учетные записи могут использовать sudo.
Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.
Примечания
Возможно, ваша сборка уже сделала это, или у вас уже есть специальная группа, предназначенная для этой цели, поэтому сначала проверьте.
Debian создаёт группу sudo. Чтобы просмотреть пользователей, которые входят в эту группу (таким образом, имеют привилегии sudo):
cat /etc/group | grep "sudo"
Шаги
1 - Создайте группу:
sudo groupadd sudousers
2 - Добавьте учетную запись(и) в группу:
sudo usermod -a -G sudousers user1
sudo usermod -a -G sudousers user2
sudo usermod -a -G sudousers ...
Вам нужно будет сделать это для каждой учетной записи на вашем сервере, которой нужны привилегии sudo.
3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")
4 - Отредактируйте файл конфигурации
sudo /etc/sudoers:
sudo visudo
5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
%sudousers ALL=(ALL:ALL) ALL
❤1