Системный администратор
26.4K subscribers
3.05K photos
3K videos
208 files
3.28K links
Все для системного администратора.

По всем вопросам @evgenycarter

РКН clck.ru/3KoDXp
Download Telegram
Media is too big
VIEW IN TELEGRAM
Инструменты мониторинга трафика в Mikrotik

Первый способ:
Использование инструмента Torch в разделе Queue для реального времени анализа трафика через интерфейс Bridge, что помогает выявить потребление трафика на конкретных сайтах.

Второй способ:
Отслеживание активных соединений в разделе IP Firewall Connections с возможностью сортировки по IP-адресам, портам и количеству переданных данных, а также использование командной строки для детального анализа и настройки QoS.

Эти методы помогают эффективно контролировать и управлять сетевым трафиком.

источник

📲 Мы в MAX

👉 @i_odmin
👍73🔥1
Forwarded from Bash Советы
🔥 Автоматическая проверка и перезапуск упавших сервисов

Скрипт, который проверяет список сервисов и перезапускает их при необходимости.


#!/bin/bash
# автор: https://t.me/bash_srv

# Список сервисов для проверки
services=("nginx" "mysql" "ssh")

for service in "${services[@]}"; do
if ! systemctl is-active --quiet "$service"; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - $service не работает. Перезапускаем..."
systemctl restart "$service"
# Можно отправить уведомление в Telegram или email
else
echo "$(date '+%Y-%m-%d %H:%M:%S') - $service работает."
fi
done


📌 Как использовать:

1. Сохраните скрипт, например, в /usr/local/bin/service_check.sh.
2. Дайте права на выполнение:


chmod +x /usr/local/bin/service_check.sh

3. Добавьте в cron для регулярной проверки, например, каждые 5 минут:


*/5 * * * * /usr/local/bin/service_check.sh >> /var/log/service_check.log 2>&1


📲 Мы в MAX

👉@bash_srv
👍12
Было / стало

📲 Мы в MAX

👉 @i_odmin
👍31🔥6❤‍🔥3🥴211😁1🤩1😍1
Шпаргалка по systemd

Управление состояниями системы:

1. Перезагрузка системы:

systemctl reboot


2. Выключение системы:

systemctl poweroff


3. Перевести систему в спящий режим:

systemctl suspend


4. Перевести систему в гибернацию:

systemctl hibernate


5. Перевести систему в гибридный режим сна:

systemctl hybrid-sleep


Работа с юнит-файлами:

1. Показать путь к юнит-файлу службы:

systemctl show -p FragmentPath <имя_сервиса>


2. Редактирование юнит-файла службы:

systemctl edit <имя_сервиса>


Команда откроет конфигурацию в редакторе. Можно использовать флаг --full для редактирования полной версии юнит-файла.

3. Переактивация всех юнитов после изменений:

systemctl daemon-reload


4. Показать конфигурацию службы:

systemctl cat <имя_сервиса>


5. Показать все зависимости службы:

systemctl list-dependencies <имя_сервиса>


Логи:

1. Просмотр логов службы:

journalctl -u <имя_сервиса>


2. Просмотр системных логов с конца:

journalctl -e


3. Просмотр логов для текущей сессии:

journalctl -b


4. Просмотр логов ядра:

journalctl -k


Другие полезные команды:

1. Получить статус загрузки:

systemctl is-system-running


2. Перевести систему в однопользовательский режим (rescue mode):

systemctl rescue


3. Перевести систему в режим восстановления (emergency mode):

systemctl emergency


Описание формата юнит-файлов:

Юнит-файлы обычно хранятся в /etc/systemd/system/ или /lib/systemd/system/.

- [Unit] — Определяет общие атрибуты юнита, такие как описание и зависимости.
- [Service] — Конфигурация для сервисов, например, что запускать (`ExecStart=`) и как управлять процессом.
- [Install] — Настройки для включения или отключения юнита при загрузке.

Пример юнит-файла:

[Unit]
Description=Пример сервиса
After=network.target

[Service]
ExecStart=/usr/bin/пример-программы
Restart=on-failure

[Install]
WantedBy=multi-user.target


📲 Мы в MAX

👉 @i_odmin
👍81🔥1
Media is too big
VIEW IN TELEGRAM
Настройка двух интернет-провайдеров на MikroTik с резервированием

В данном видео мы настроим два интернет-провайдера на MikroTik и реализуем автоматическое переключение с одного провайдера на другой в случае недоступности первого.

00:00 Вступление
00:58 Настройка основного интернета
05:01 Настройка резервного интернета
06:39 Ручное переключение
09:13 Автоматическое переключение
10:02 Добавляем маршрут
11:16 Netwatch
11:57 Пишем команды
14:07 Проверка работы
15:28 Важный нюанс

источник

📲 Мы в MAX

👉 @i_odmin
👍91
🧠 RegExp: Как найти строки с IP-адресами в логах

Частая задача — выцепить IP-адреса из логов. Вот регулярка и однострочник, которые помогут:


grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log


📌 Что делает:
- -Eo — включаем расширенные регулярки и выводим только совпадения
- ([0-9]{1,3}\.){3}[0-9]{1,3} — шаблон для IPv4-адресов

💡 Можно дополнительно убрать дубликаты и отсортировать по частоте:


grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head


🚀 Покажет топ IP-адресов по количеству обращений — удобно для анализа трафика и выявления подозрительной активности.

📲 Мы в MAX

👉 @i_odmin
👍5🔥4
alias — команда, позволяющая создавать более краткие или более привычные псевдонимы для часто используемых команд

Команда alias позволяет всего лишь связать псевдоним с произвольной командой. Механизм псевдонимов позволяет устанавливать более короткие или привычные имена для часто используемых команд. Еще одним преимуществом данного механизма является возможность использования в составе псевдонимов аргументов команд. Впервые данный механизм был реализован в рамках командной оболочки csh, после чего он был перенесен в такие командные оболочки, как bash и другие.

Синтаксис команды для установки псевдонима зависит от используемой командной оболочки. В случае командных оболочек, основанных на Bourne shell (ksh, bash, и других, но не sh), синтаксис является следующим:

$ alias <псевдоним>=<команда>

В том случае, если при вызове команды должна осуществляться передача аргументов, следует использовать одинарные или двойные кавычки:

$ alias <псевдоним>="<команда> <аргумент> ..."

В случае же командных оболочек, основанных на csh (csh, tcsh и других), кавычки не требуются:

$ alias <псевдоним> <команда> [аргументы …]

Несложно заметить, что главное отличие в данном случае заключается в использовании знака равенства и необходимости использования кавычек. При вызове команды alias без аргументов будет выведен список объявленных в текущее время псевдонимов.

После установки псевдоним будет работать лишь в рамках текущей сессии командной оболочки. Для того, чтобы активировать этот псевдоним на постоянной основе, вам придется добавить его в один из файлов конфигурации используемой в текущее время командной оболочки. В случае командной оболочки bash псевдонимы для отдельных пользователей чаще всего размещаются в файле конфигурации ~/.bashrc, а общесистемные псевдонимы — в файле конфигурации /etc/profile. В случае командной оболочки tcsh аналогичными файлами конфигурации являются файлы ~/.tcshrc и /etc/login соответственно.

Примеры
Простой псевдоним для пользователей операционной системы DOS:

$ alias dir="ls -l"

А это пример более сложного псевдонима:

$ alias topcom='sort ~/.bash_history | uniq -ci | sort -r | less'

Данный псевдоним упрощает обращение к списку наиболее часто используемых команд и может стать шаблоном для новых псевдонимов.

А это еще один пример псевдонима для ознакомления со списком смонтированных дисковых разделов:

$ alias mnt='mount | grep -i /dev/[h]d[a..g] | sort'

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

Например, даже такая простая функция, как

$ bak () { cp -a $1 $1.bak }

не может быть преобразована в псевдоним из-за использования переменной "$1".

Установка псевдонима на постоянной основе
Для установки псевдонима на постоянной основе для всех пользователей, всех командных оболочек (ksh, bash, …) и всех типов командных оболочек (использующихся и не использующихся для входа в систему) вам придется:

- модифицировать файл конфигурации /etc/profile для командных оболочек, использующихся для входа в систему
- модифицировать файл конфигурации /etc/bash_bashrc для командных оболочек, не использующихся для входа в систему

Деактивация псевдонима
Используйте команду unalias.

📲 Мы в MAX

👉 @i_odmin
👍7🤔1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
🤮21🤡6💩21👍1👎1
📂 Как найти количество открытых файлов в Linux

🔹 Проверка общего количества открытых файлов:

lsof | wc -l

- lsof — выводит список всех открытых файлов.
- wc -l — считает количество строк (то есть файлов).


🔹 Количество открытых файлов процессом:

lsof -p <PID> | wc -l

- <PID> — ID интересующего процесса.

Чтобы узнать PID процесса:

ps aux | grep <имя_процесса>



🔹 Использование /proc:

ls /proc/<PID>/fd | wc -l

- /proc/<PID>/fd — каталог с дескрипторами открытых файлов процесса.


🔹 Сводка по всему серверу через /proc:

ls /proc/*/fd 2>/dev/null | wc -l

- Показывает общее количество всех открытых файлов на сервере.


🔹 Ограничения (лимиты) на количество открытых файлов:
- Для текущей сессии:

ulimit -n

- Системные лимиты:

cat /proc/sys/fs/file-max

- Использование и максимальное значение:

cat /proc/sys/fs/file-nr

Расшифровка file-nr:
- 1-е число — открытые дескрипторы файлов,
- 2-е число — дескрипторы в очереди освобождения,
- 3-е число — максимальное количество дескрипторов.


🔹 Проверка лимитов процесса:

cat /proc/<PID>/limits | grep "open files"



⚙️ Быстрые советы:
- Если приближается к лимиту — увеличивайте значение через /etc/security/limits.conf.

📲 Мы в MAX

👉 @i_odmin
👍43
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Media is too big
VIEW IN TELEGRAM
Протокол TCP

00:00 - Варианты подтверждения доставки в TCP
00:54 - Остановка и ожидание
01:19 - Скользящее окно
01:42 - Почему выгодно использовать скользящее окно
03:45 - Как работает скользящее окно
05:31 - Типы подтверждений в TCP
07:11 - Итоги

источник

📲 Мы в MAX

👉 @i_odmin
👍4🔥1
Софт для VDS-сервера, на который стоит обратить внимание новичкам

Если вы арендовали свой первый VDS-сервер и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… Чтобы упростить старт, я собрал список утилит, которые стоит установить в первую очередь. Они помогут настроить сервер под ваши задачи, повысят удобство его использования и защитят от потенциальных угроз.

https://habr.com/ru/companies/ruvds/articles/902596/

📲 Мы в MAX

👉 @i_odmin
👍7🔥6
💻 Полезные команды Linux. Корректное выключение, перезагрузка и выход из системы


🔌 Выключение системы:


sudo shutdown -h now


> Немедленно завершить работу системы.


sudo shutdown -h +10 "Выключение через 10 минут"


> Запланированное выключение с сообщением.


sudo poweroff


> Альтернатива shutdown -h now, завершает работу и отключает питание.



🔄 Перезагрузка:


sudo reboot


> Стандартная перезагрузка.


sudo shutdown -r now


> Немедленная перезагрузка.


sudo systemctl reboot


> Современный способ на системах с systemd.



🚪 Выход из текущей сессии:


exit


> Завершение текущей shell-сессии (для терминала).


logout


> Выход из системы, если вы вошли через консоль.



💡 Быстрые подсказки:

* -h = halt (выключить)
* -r = reboot (перезагрузить)
* +минуты — отложенное действие
* wall — отправка сообщения всем пользователям

📲 Мы в MAX

👉 @i_odmin
👍1