Админские угодья
1.58K subscribers
546 photos
44 videos
244 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
📌 Bash скрипт для поиска больших файлов и уведомление админа

1. Находит файлы больше заданного порога (в мегабайтах).
2. Генерирует отчёт и отправляет уведомление администратору (например, на почту или в лог).

Скрипт: check_large_files.sh


#!/usr/bin/env bash

# --------------------------------------------
# Скрипт для поиска «тяжёлых» файлов и уведомления
# Автор @i_odmin_book
# --------------------------------------------

# Порог размера в мегабайтах (можно изменить по-своему)
THRESHOLD=100

# Директория для сканирования (можно указать любую)
DIR="/var/log"

# Файл для временного отчёта
REPORT="/tmp/large_files_$(date +%Y%m%d_%H%M%S).txt"

# Адрес почты администратора (пример)
ADMIN_EMAIL="[email protected]"

# Найти файлы больше порога и сохранить в отчёт
echo -e "🔎 Поиск файлов > ${THRESHOLD}M в директории: ${DIR}\n" > "$REPORT"
find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n" >> "$REPORT"

# Если отчёт не пустой, отправляем уведомление
if [[ -s "$REPORT" ]]; then
echo -e "📬 Отправляем отчёт администратору: ${ADMIN_EMAIL}"
mail -s "Отчёт: большие файлы на $(hostname)" "$ADMIN_EMAIL" < "$REPORT"
else
echo " Файлов больше ${THRESHOLD}M не найдено."
fi

# Дополнительно: можно логировать в файл
LOGFILE="/var/log/check_large_files.log"
echo "$(date +'%Y-%m-%d %H:%M:%S') - Проверка завершена. Отчёт: $REPORT" >> "$LOGFILE"



Описание работы

1. THRESHOLD — порог размера в мегабайтах, выше которого файл считается «большим».
2. DIR — директория, где ищем большие файлы (по умолчанию /var/log, но можно изменить).
3. Команда find "$DIR" -type f -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n":

▪️ -type f — только файлы.
▪️ -size +<число>M — размер больше заданного числа мегабайт.
▪️ -printf "%p (%s bytes)\n" — выводим полный путь и точный размер в байтах.
4. Результат пишется в временный файл ${REPORT}.
5. Проверка if [[ -s "$REPORT" ]]; then … fi:

▪️ Если отчёт непустой (-s), отправляем его на почту с помощью mail (или любую другую команду уведомления).
▪️ В противном случае выводим сообщение об отсутствии «тяжёлых» файлов.
6. Логируем факт запуска в /var/log/check_large_files.log.


Дополнительные улучшения

▪️ Регулярные выражения: можно искать по шаблону, например, только логи с ротацией:


find "$DIR" -regextype posix-extended -regex ".*/.*\.log\.[0-9]+" -size +"${THRESHOLD}"M -printf "%p (%s bytes)\n"


Здесь -regex найдёт файлы вроде syslog.1, auth.log.2, и игнорирует обычные *.log.
▪️ Cron-задача: чтобы проверять раз в день, добавьте в crontab -e:


0 8 * * * /usr/local/bin/check_large_files.sh


Это запустит скрипт каждый день в 8:00 утра и сразу уведомит вас, если что-то «не так».
4👍1🔥1
Pipeline инфраструктуры (Infra Pipeline)

Этот workflow описывает сквозной CI/CD-pipeline для сборки и деплоя инфраструктуры, включая quality gates (детекторы и оценку рисков).

Ветвление (Branching)
Рекомендуется создавать короткоживущие feature-ветки (локальные копии основной ветки trunk/main). В них выполняются изолированные изменения. На локальную ветку нет жёстких ограничений, но вы как разработчик обязаны регулярно синхронизировать её с основной (через rebase или merge), чтобы избежать merge conflicts.

Основная ветка (mainline/trunk)
Mainline (или trunk) служит для сборки и публикации deployable артефактов. Любой merge в неё может автоматически попасть в staging или production. Поэтому ветка должна быть постоянно в deployable-состоянии. Для этого в CI/CD pipeline настраиваются quality gates: статический анализ кода, unit- и интеграционные тесты, security scans, оценка рисков . Trunk остаётся locked до прохождения всех проверок и подтверждения безопасности изменения.

https://medium.com/@tusharmurudkar/devops-infrastructure-pipeline-beab47e7b876
3👍2🔥1
Prometheus и его хранилище: Архитектура, проблемы и решения

Эта серия из двух статей посвящена мониторингу. В первой части рассказывается о накоплении множества различных показателей в одном месте, обработке разрешений для различных аспектов этих показателей и хранении больших объемов данных. Во второй части мы сосредоточимся на выборе систем мониторинга, основываясь на кратком примере «путешествия» вымышленной компании в борьбе с постоянным расширением системы мониторинга и ростом инфраструктуры.

https://blog.palark.com/prometheus-architecture-tsdb/
3👍2
📌 10 полезных функций Far Manager

1. Режимы отображения
Меняйте ширину и количество столбцов на активной панели интерфейса, в которых отображаются файлы и папки.

Ctrl + 1 — установить краткий режим просмотра (три узких столбца).
Ctrl + 2 — установить стандартный режим просмотра (два средних столбца).
Ctrl + 3 — установить полный режим просмотра (один широкий и три узких столбца со служебной информацией).
Ctrl + 4 — установить широкий режим просмотра (один широкий и один узкий столбец со служебной информацией).
Ctrl + 5 — установить детальный режим просмотра (один максимально широкий и ещё несколько дополнительных стоблцов со служебной информацией — занимают всё окно программы).

2. Сортировка элементов
Сортируйте файлы и папки на активной панели интерфейса.

Ctrl + F3 — сортировать по имени элемента.
Ctrl + F4 — сортировать по типу расширения.
Ctrl + F5 — сортировать по дате изменения.
Ctrl + F6 — сортировать по размеру.
Ctrl + F8 — сортировать по дате создания.
Ctrl + F12 — вывести меню элементов сортировки.

3. Просмотр размера файлов и папок
Просматривайте размер выделенного файла или папки с помощью клавиши F3. Значение отображается в столбце Size или в нижней части активной панели — в зависимости от выбранного вида.
Чтобы выделить один элемент, нажмите Shift и стрелку вниз или вверх на клавиатуре. Для массового выделения используйте Shift со стрелками вправо и влево.

4. Одновременная работа с элементами, которые находятся в разных папках
Добавляйте файлы и папки из разных каталогов на «Временную панель», если вам нужно работать со всеми ними одновременно. Это позволит вам выполнять с элементами групповые операции так, будто они находятся в одном каталоге. При этом их реальное местоположение не изменится.
Чтобы открыть «Временную панель», нажмите F11 и выберите Temporary Panel. Для добавления файлов и папок просто перетащите их на неё с помощью курсора мыши. Вы также можете найти нужные файлы через комбинацию Alt + F7 и добавить результаты поиска на «Временную панель», кликнув Panel в поисковом окне.

5. Фильтрация файлов по типу
Фильтруйте список файлов по расширению, чтобы временно скрывать с панели лишние элементы. Чтобы включить фильтр, воспользуйтесь комбинацией CTRL + I, в появившемся списке выделите нужное расширение и нажмите пробел. Возле выбранного типа файлов появится плюс. Когда нажмёте Enter, файлы с другими расширениями исчезнут с текущей панели. Чтобы отменить фильтрацию, снова нажмите CTRL + I и уберите плюс с помощью пробела.

6. Просмотр списка процессов
Просматривайте список активных процессов прямо в окне Far Manager. Чтобы просмотреть его, откройте окно выбора диска (ALT + F1/F2) и нажмите 0. В этом списке можно отсортировать процессы по размеру, нажав CTRL + F6. Чтобы удалить процесс, выделите его и нажмите F8. Чтобы просмотреть детальную информацию о процессе, используйте клавишу F3.

7. Навигация по папкам
Вы можете быстро открывать корневую папку локального диска с помощью комбинации CTRL + \. Клавиши ALT + F12 — отображают папки, которые вы открывали ранее

8. Сравнение идентичности папок
Если захотите проверить две папки на предмет их идентичности, откройте одну из них на левой панели, а вторую на правой. Затем нажмите F11 и выберите Advanced Compare. В открывшемся окне укажите параметры сравнения и нажмите ОК. Программа отобразит размеры обеих папок и подсветит их файлы, которые не совпадают.

9. Запись макросов
Используйте макросы, чтобы автоматизировать рутинные операции с программой.
Чтобы создать макрос, нажмите Shift + Ctrl + «.» (точка) и совершите несколько действий в Far. Затем снова воспользуйтесь этой комбинацией и в открывшемся окне выберите удобную клавишу. Теперь по её нажатию программа будет выполнять эти действия автоматически.
К примеру, во время создания макроса можно кликнуть правой кнопкой по файлу и выбрать в контекстном меню «Свойства», а после назначить эти действия на клавишу J. После этого вы сможете быстро вызывать свойства файлов с помощью J.
1
📌 Упрощенная структура ядра Linux
2👍1
Сохраняем вывод команды Top в файл

Поскольку я не использовал опцию delay, приведенная ниже команда top перенаправит вывод команды top за одну итерацию в файл.
top -b -n 1 > /home/i_odmin/backup/output.txt

Сохранение вывода команды top с более чем одной итерацией из 5 итераций
Обычно программа работает непрерывно с задержкой в 2 секунды, и вы можете изменить это значение, добавив в верхнюю команду значение ‘-d’, как показано ниже:
top -n 5 -d 4 -b >/backup/output_1.txt

Как захватить вывод команды top в файл каждые 5 минут в течение часа
Система создает отдельный файл каждые 5 минут, который поможет вам определить список процессов, которые потребляли больше CPU и памяти в системе.
Добавляем следующий cronjob, который будет выполняться с 5 до 6 утра каждые 5 минут в течение часа.
Где
-n : Задает максимальное количество итераций.
-b : Работа в пакетном режиме (Запуск команды top в пакетном режиме для перенаправления вывода в другие программы или в файл)
-d : Интервал задержки (Задает задержку между обновлениями экрана)
0-59/5 5 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt

Собираем вывод в один файл, используйте следующий cronjob
Cronjob будет выполняться с 9 до 10 утра каждые 5 минут в течение часа и добавлять результаты в один файл.
0-59/5 9 * * * top -b -n5 -d 5 >>/home/i_odmin/backup/output.txt

Записываем вывод команды top в файл каждые 5 минут в течение получаса
Добавляем следующий cronjob, который будет запускаться каждые 5 минут с 13:30 до 14:00 в течение получаса.
30-59/5 13 * * * top -n 10 -d 4 -b > /home/i_odmin/backup/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt
1
📌 Шпаргалка по команде less
1👍1
Полезные Bash-скрипты для повседневных задач

Ниже — два скрипта, которые могут сэкономить тебе время и нервы.


Перемещение директории


#!/bin/bash

# Проверка существования директории-источника
if [ ! -d "$1" ]; then
echo "$1 doesn't exist"
exit 1
fi

# Проверка существования директории-назначения
if [ ! -d "$2" ]; then
echo "$2 doesn't exist"
exit 1
fi

# Копирование и удаление исходной директории
if cp -r "$1" "$2" && rm -r "$1"; then
echo "Dir $1 was moved to dir $2 successfully"
exit 0
else
echo "Something went wrong"
exit 1
fi



Переименование файла


#!/bin/bash

# Проверка количества аргументов
if [ $# -ne 2 ]; then
echo "2 args needed: file to rename and new name"
exit 1
fi

# Проверка существования файла
if [ ! -f "$1" ]; then
echo "File $1 does not exist or it's not a file"
exit 1
fi

# Переименование через копирование и удаление
if cp "$1" "$2" && rm -f "$1"; then
echo "Name of file $1 was changed to $2"
exit 0
else
echo "Something went wrong!"
exit 1
fi
2👍1
📌 Шпаргалка по Nmap
1🔥1👌1
📌 Шпаргалка по Linux
👍21
Шпаргалка по RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
df -hT - свободное место, тип файловой системы, точки монтирования

Сборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.

Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /etc/fstab, прописать /dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузки

Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный диск
mdadm /dev/md0 —add /dev/sde - добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления

Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобрать

Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массиву

Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sde

mdadm -G /dev/md0 —raid-devices=3 - расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.

Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadm

Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:

umount /mnt
* где /mnt — каталог монтирования нашего RAID.

mdadm -S /dev/md0

Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
3👍2🔥1
📌 Основы сетей: VLAN
3👍3
Media is too big
VIEW IN TELEGRAM
Цикл for в терминале bash

Очень часто вам необходимо исполнить одну и ту-же команду на разных файлах. К примеру вы хотите сконвертировать каждый JPEG файл в аналогичный PNG (или наоборот).

Почти во всех терминалах есть возможность работать с циклами, и в данном видео я описываю работу с циклом «for» в терминале bash.

истончик
2👍1
Команды мониторинга и отладки

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)

ps -e -o pid,args --forest вывести PID’ы и процессы в виде дерева

pstree отобразить дерево процессов

kill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)

kill -TERM 98989 Корректно завершить процесс с PID 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -f -e open ls > /dev/null вывести вызовы бибилотек

watch -n1 ‘cat /proc/interrupts’ отображать прерывания в режиме реального времени

last reboot отобразить историю перезагрузок системы

last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней

lsmod вывести загруженные модули ядра

free -m показать состояние оперативной памяти в мегабайтах

smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
1👍1