Секреты сисадмина | DevOps, Linux, SRE
25.2K subscribers
661 photos
19 videos
437 files
606 links
Крупнейший справочник системного администратора.

Сотрудничество: @max_excel

РКН: vk.cc/cHhGTz
Download Telegram
Используем библиотеку psutil для Python, чтобы получить исчерпывающую информацию о состоянии CPU и системы в целом.



import psutil
import time
from tabulate import tabulate

def get_cpu_usage():

return psutil.cpu_percent(interval=1)

def get_memory_usage():

memory = psutil.virtual_memory()
return {
'Всего': f'{memory.total / (1024**3):.2f} ГБ',
'Используется': f'{memory.used / (1024**3):.2f} ГБ',
'Свободно': f'{memory.available / (1024**3):.2f} ГБ',
'Процент использования': f'{memory.percent}%'
}

def get_top_processes(n=10):

processes = []
for proc in sorted(psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']),
key=lambda x: x.info['cpu_percent'],
reverse=True)[:n]:
try:
processes.append([
proc.info['pid'],
proc.info['name'],
f"{proc.info['cpu_percent']:.2f}%",
f"{proc.info['memory_percent']:.2f}%"
])
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass

return processes

def main():

print("=== Мониторинг системы ===")

print(f"\nЗагрузка CPU: {get_cpu_usage()}%")

print("\nИспользование памяти:")
for key, value in get_memory_usage().items():
print(f"{key}: {value}")

print("\nТоп процессов по использованию CPU:")
top_processes = get_top_processes()
print(tabulate(top_processes,
headers=['PID', 'Название', 'CPU %', 'Память %'],
tablefmt='grid'))

if __name__ == '__main__':
main()

#СекретыСисадмина
Использование journalctl для просмотра и анализа логов: подробный гайд

Journalctl — отличный инструмент для анализа логов, обычно один из первых с которым знакомятся начинающие администраторы linux-систем. Встроенные возможности ротации, богатые возможности фильтрации и возможность просматривать логи всех systemd unit-сервисов одним инструментом очень удобны и заметно облегчают работу системным администраторам.

Читать

#СекретыСисадмина
Как узнать причину блокировки учетных записей в Active Directory

Данная ситуация существует в компаниях, где настроена политика блокировки учетной записи при вводе определенного количества не правильных паролей, это правильно с точки зрения кибербезопасности, так как помогает защититься от брутфорса.

#СекретыСисадмина

📁 Скачать/Download 👇
Как я делал сеть на 25 гигабит с минимальным бюджетом

В этом материале автор представляет небольшой отчёт о своем опыте покупки кабелей и сетевых карт, а также тестов 25Гбит/с на слабых и быстрых компьютерах. Что же получилось собрать за 100 $, какие в реальности скорости получились, и как он сэкономил 30 $?

Читать

#СекретыСисадмина
Работа с правами доступа файлов и директорий в Linux (часть 1)

# chown vasya /file
Назначить пользователя vasya владельцем файла file

# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий

# chown vasya:group /file
Назначить владельца и группу для файла / file

# chmod ugo+rwx /directory
Установить полные права доступа rwx (Read Write eXecute) для всех ugo (User Group Other) на директорию / directory. То же самое можно сделать, используя числовое представление chmod 777 directory

# chmod go-rwx /directory
Удалить все права на директорию / directory для группы и остальных

#СекретыСисадмина
Работа с правами доступа файлов и директорий в Linux (часть 2)

# chgrp new_group file
Изменить группу-владельца для file на new_group

# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла

# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public

# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла

# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file

#СекретыСисадмина
Работа с правами доступа файлов и директорий в Linux (часть 3)

# chmod g+s /home/public
Установить SGID-бит на директории /home/public

# chmod g-s /home/public
Удалить SGID-бит с директории /home/public

# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы

# ls -lh
Листинг текущего каталога с правами доступа

#СекретыСисадмина
Какая разница между командами GREP, AWK и SED

Мы не можем с уверенностью называть себя экспертами по управлению файлами Linux, не обладая навыками обработки текста. Три самых известных инструмента командной строки (grep, sed и awk) заслужили хорошую репутацию текстовых процессоров Linux. Они предустановлены во всех основных дистрибутивах операционных систем Linux, поэтому нет необходимости устанавливать их дополнительно.

Каждая команда grep, sed и awk имеет уникальные функции обработки текста, но в некоторых простых сценариях их функции могут быть аналогичными.

В этой статье разберемся чем отличаются эти команды и в каких случаях использовать ту или иную команду.

Читать статью

#СекретыСисадмина
Cron — лучшие практики

Планировщик задач cron существует с 7 версии Unix, а его синтаксис crontab знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами.

Читать

#СекретыСисадмина
Настройка Iptables для чайников

Операционные системы Linux, на которых чаще всего и функционируют серверы (виртуальные машины), имеют встроенный инструмент защиты – программный фильтр Iptables. Все сетевые пакеты идут через ядро приложения и проходят проверку на безопасность для компьютера. Сценария всего два – или данные передаются дальше на обработку, или полностью блокируются.

Читать статью

#СекретыСисадмина
Media is too big
VIEW IN TELEGRAM
Основы DevOps: как устроен PROD, CI/CD, Docker?

В этом видеоуроке автор расскажет как устроен production-сервер, разберет как работает CI/CD и Docker. А также сравнит различные типы баз данных, web-серверов и то, как происходит сборка проекта на PHP и JavaScript.

Смотреть это видео на youtube: youtu.be/E1f3-en5BPo

#СекретыСисадмина
ИОЛА (IOLANET2): уникальная ретро-сеть отечественного производителя и безуспешный эксперимент

В этой статье автор расскажет о попытке организации простейшей сети — объединении двух компьютеров, содержащих сетевые ISA-карта ИОЛА при помощи коаксиального кабеля, и о возникшей тупиковой ситуации.

Читать

#СекретыСисадмина
Утилиты linux

rsync
-v — выводит подробную информацию о процессе копирования;
[-a] — сохраняет все атрибуты оригинальных файлов
-u — не перезаписывать более новые файлы
-l — копирует символьные ссылки
-L — копирует содержимое ссылок
-p — сохраняет права для файлов
-t — сохраняет время модификации
-e — использовать другой транспорт, например, ssh
[-z] — cжимает файлы перед передачей
—recursive — перебирать директории рекурсивно
—exclude — исключить файлы по шаблону

Примеры:
rsync -avz skillproject/data/ . — из подкаталога в текущий каталог
rsync -avz skillproject/data/ aaa/ — из подпапки в подпапку aaa/
rsync -avz skillproject/data/ digita6d@digita6d.beget.tech:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/ — передача на удаленный сервер

ss
-l или —listening — посмотреть только прослушиваемые порты
-p или —program — показать имя программы и ее PID
-t или —tcp — показать tcp порты
-u или —udp показать udp порты
-n или —numeric показывать ip адреса в числовом виде

Примеры:
ss -tlpn — проверить все прослушивающие tcp-порты
ss -tulpn | grep :80 — показать все процессы, работающие на 80-м порту

ps
ps -e — показать все процессы
ps -ef — показать подробную информацию о каждом процессе
ps -ef | grep phantom — найти все процессы с именем phantom

mpstat
Показывает статистику загрузки процессора. Команды:
mpstat — показывает общую информацию
mpstat -P ALL — по каждому ядру

free
Показывает потребление ОЗУ на текущий момент:
free -h — показывает информацию в гигабайтах

top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу

dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt/apt-get)
dpkg -s <packname> — проверить, установлен ли пакет
dpkg -l — список всех пакетов
dpkg -l | grep apache2 — проверить, установлен ли конкретный пакет
dpkg -i <package.deb> — установить пакет

netstat
netstat -pnltu — посмотреть список используемых портов

#СекретыСисадмина
Media is too big
VIEW IN TELEGRAM
Как установить MySQL Server на Linux

В этом видеоуроке автор подробно разбирает процесс установки и настройки MySQL Server на VPS под управлением Ubuntu. Вы научитесь создавать пользователя, выдавать ему права и подключаться к базе данных с помощью Python.

00:00 Вступление
01:07 Выбор сервера
01:38 Подключение к серверу
01:54 Установка MySQL Server
02:37 Базовая настройка защиты
03:39 Настройка удаленного доступа
04:40 Подключение к MySQL
05:05 Создание базы данных
05:30 Создание пользователя
06:04 Выдача пользователю прав
07:05 Подключение к базе данных с помощью Python

Смотреть это видео на youtube: youtu.be/OT7JGcUKWK0

#СекретыСисадмина
Что такое IP-адрес и маска подсети, и зачем они нужны

Компьютерам, серверам и роутерам в интернете нужно понимать, куда отправлять данные, чтобы они не потерялись в паутине проводов и прочих вайфаев. Один из помощников в этом деле — IP-адрес. Он представляет собой что-то вроде дорожного указателя, маяка, который содержит данные о месте конкретного устройства в структуре Глобальной сети.

Читать

#СекретыСисадмина
Подборка вопросов для подготовки к собеседованию

Что такое линк?
Перечислите 7 уровней модели OSI.
Что такое IP - адрес?
Что такое LAN?
Расскажите про DHCP?
А про DNS?
Что такое WAN?
Что означает термин "нода"? Что такое "хост"?
Какая максимальная длина кабеля UTP?
Что такое маршрутизатор?
Что такое коммутатор?
В чем разница между роутером, свичем и хабом?
3 уровня иерархии сетей от Cisco?
Что такое VLAN и зачем они нужны?
Что такое PING?
Какие режимы передачи данных бывают?
Что такое Ethernet?
Что такое VPN?
Что такое MAC - адрес?
Что такое TCP и UDP? В чем разница между ними?
Что такое NIC?
Зачем нужен прокси сервер?
Какие типы сетевых атак вы знаете?
Что такое NAT?
А знаете ли вы про MST (Multiple Spanning Tree)?
А про RSTP (Rapid Spanning Tree) что скажете?
А про протокол RIP что скажете?
Расскажите про EIGRP?
Что скажете про BGP?
Что скажете про OSPF?
Что такое VTP?
Что думаете про модный SD WAN?
Пару слов про MPLS?
И пару слов про шифрование трафика. Какие алгоритмы вам знакомы?
Поговорим про телефонию. Какие кодеки вам знакомы?
А разницу между FXS и FXO портом знаете?
А что по-вашему лучше - SIP или PRI?
Зачем нужен протокол RTP?
А термин SBC вам знаком?

#СекретыСисадмина
Media is too big
VIEW IN TELEGRAM
Обучение Linux: от новичка до профи (часть 2)
часть 1

В этом видеоуроке автор подробно и наглядно разбирает базовые основы Linux.

00:00 Вступление
01:50 Репозитории
04:02 PPA репозитории
06:51 Версия Linux
07:28 Немного кастомизации
08:26 Файловая система
10:50 Типы файлов, дескрипторы, мягкие и жёсткие ссылки
16:28 Права доступа

Смотреть это видео на youtube: youtu.be/5INZghkqzjA

#СекретыСисадмина
Просмотр процессов на Linux с помощью ps

В инструкции описаны наиболее распространенные примеры использования команды ps для работы с виртуальным сервером с операционной системой семейства Linux.

#СекретыСисадмина

📁 Скачать/Download 👇
Как проанализировать производительность DNS сервера с помощью WireShark?

DNS – система доменных имен. Общение между устройствами в сети осуществляются по адресам, но помнить их все не представляется возможным, и поэтому их заменили вполне удобными доменными именами, например, www.ya .ru.

Читать статью

#СекретыСисадмина