Секреты сисадмина | DevOps, Linux, SRE
25.8K subscribers
658 photos
17 videos
435 files
597 links
Крупнейший справочник системного администратора.

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

РКН: vk.cc/cHhGTz
Download Telegram
Команда awk – примеры использования в Linux и Unix

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

Клик

#СекретыСисадмина
Работа с логами в Linux. Команда Journalctl

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

📁 Скачать/Download 👇
Bash скрипт для удаления файлов старше заданного количества дней в Linux

На этот раз поговорим о том, как удалять файлы старше n-ого количества дней, используя для этого простой скрипт, написанный на bash.

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

📁 Скачать/Download 👇
Cisco (защищаем доступ)

Установим пароль на доступ через консольный порт:
line console 0
login
password password

Создаём access-list с разрешёнными для доступа сетями или хостами (пишем сети с обратной маской):
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255

Отключаем доступ по виртуальному терминалу для протокола telnet и применяем ранее созданный access-list для ограничения доступа по ssh:
line vty 0 4
transport input ssh
access-class 1 in
privilege level 15
login local

Добавляем watch for login Attacks
login block-for 600 attempts 2 within 30
login delay 5
login quiet-mode access-class 1

#СекретыСисадмина
Отличный обзор всех основных команд Linux:

- Основные операции с файлами
- Просмотр файлов
- Даты и время
- Сеть
- Просмотр процессов

Файл по ссылке - смотреть

#СекретыСисадмина
Популярные пакетные менеджеры Linux: характеристики, особенности, сравнение

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

📁 Скачать/Download 👇
Как создать программный raid в Linux

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

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

📁 Скачать/Download 👇
Команды для получения сведений о системе и активности пользователей (часть 1)

date – вывести текущую дату и время

cal – вывести календарь на текущий месяц

uptime – показать время с момента последней загрузки ОС

w – сведения о пользователях, зарегистрировавшихся в системе

users - список имен пользователей, вошедших в систему

last - список пользователей, вошедших в систему по данным из специального файла /var/log/wtmp. Отображается имя, терминал, время входа IP-адрес и т.п.

last –ad - сведения о пользователях, вошедших в систему, с отображением в последней колонке имени компьютера с которого выполнен вход

last –F - отобразить время входа пользователей в систему, длительность сессий и время выхода

last –x - отобразить сведения о выключениях, перезагрузках и изменениях уровня запуска системы

last root - отобразить сведения о сеансах пользователя root

last -n 10 user1 - отобразить сведения о десяти последних сеансах пользователя user1

lastlog - отобразить список всех пользователей и время их последнего входа в систему

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

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

Читать

#СекретыСисадмина
Команды для получения сведений о системе и активности пользователей (часть 2)

whoami – имя, под которым вы в данный момент работаете в системе

finger user – показать информацию о user

uname -a – отобразить все сведения о системе

uname -vr – отобразить номер выпуска операционной системы и версию ядра

df – отобразить информацию об использовании дисков

du – отобразить информацию об использовании текущего каталога

free – информация об использовании реальной и виртуальной памяти

whatis app - отобразить краткую информацию об app из базы данных документации

whereis app – где находится исполняемый модуль app

which app – какой исполняемый модуль приложения app будет запущен по умолчанию

man command – отобразить справочную информацию для команды command

#СекретыСисадмина
10 декабря 2024 года состоялся релиз MiniOS 4.0 — лёгкого модульного live-дистрибутива Linux, предназначенного для использования на съёмных USB-накопителях.

MiniOS Standard — это компактная операционная система, предназначенная для решения повседневных задач. Её отличает высокая производительность и лаконичный, но эффективный интерфейс. В состав системы входят базовые графические программы и необходимые консольные утилиты. Функциональность может быть расширена за счёт установки дополнительных программ с помощью менеджера пакетов APT из обширного репозитория Debian.

Читать

#СекретыСисадмина
Как в Bash заменить пробелы в названиях файлов и каталогов нижними подчеркиваниями

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

Замещение будем производить при помощи оператора tr, подменяя в цикле пробел » » на нижнее подчеркивание «_». Содержимое директории обрабатывается файл за файлом, в процессе замены производится перемещение изначального файла/каталога в переименованный командой tr:

for i in ;do mv «$i» echo $i| tr » » «_»; done

В случае если необходимо обрабатывать подобным образом только файлы с определенным расширением — его можно задать дополнительно, например, в виде .jpg

#СекретыСисадмина
Создаем личное файловое облако легко и просто (и дешево)

В этом материале мы с вами легко и просто поднимем свое личное файловое облако типа Google Drive или Яндекс.Диск, а если повезет, то еще и очень дешево.

Зачем? Ну, например, потому что не хотим зависеть от корпораций с их лицензионными соглашениями и сменой условий задним числом. Или потому что нам хочется приватности. Или просто потому что можем.

Читать

#СекретыСисадмина
Частые ошибки программирования на Bash

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

Читать

#СекретыСисадмина
Используем библиотеку 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()

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

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

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

📁 Скачать/Download 👇