Шпаргалка по systemd
Управление состояниями системы:
1. Перезагрузка системы:
2. Выключение системы:
3. Перевести систему в спящий режим:
4. Перевести систему в гибернацию:
5. Перевести систему в гибридный режим сна:
Работа с юнит-файлами:
1. Показать путь к юнит-файлу службы:
2. Редактирование юнит-файла службы:
Команда откроет конфигурацию в редакторе. Можно использовать флаг --full для редактирования полной версии юнит-файла.
3. Переактивация всех юнитов после изменений:
4. Показать конфигурацию службы:
5. Показать все зависимости службы:
Логи:
1. Просмотр логов службы:
2. Просмотр системных логов с конца:
3. Просмотр логов для текущей сессии:
4. Просмотр логов ядра:
Другие полезные команды:
1. Получить статус загрузки:
2. Перевести систему в однопользовательский режим (rescue mode):
3. Перевести систему в режим восстановления (emergency mode):
Описание формата юнит-файлов:
Юнит-файлы обычно хранятся в /etc/systemd/system/ или /lib/systemd/system/.
- [Unit] — Определяет общие атрибуты юнита, такие как описание и зависимости.
- [Service] — Конфигурация для сервисов, например, что запускать (`ExecStart=`) и как управлять процессом.
- [Install] — Настройки для включения или отключения юнита при загрузке.
Пример юнит-файла:
📲 Мы в MAX
👉 @i_odmin
Управление состояниями системы:
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
👍8❤1🔥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
В данном видео мы настроим два интернет-провайдера на 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
👍9❤1
🧠 RegExp: Как найти строки с IP-адресами в логах
Частая задача — выцепить IP-адреса из логов. Вот регулярка и однострочник, которые помогут:
📌 Что делает:
-
-
💡 Можно дополнительно убрать дубликаты и отсортировать по частоте:
🚀 Покажет топ IP-адресов по количеству обращений — удобно для анализа трафика и выявления подозрительной активности.
📲 Мы в MAX
👉 @i_odmin
Частая задача — выцепить 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), синтаксис является следующим:
В том случае, если при вызове команды должна осуществляться передача аргументов, следует использовать одинарные или двойные кавычки:
В случае же командных оболочек, основанных на csh (csh, tcsh и других), кавычки не требуются:
Несложно заметить, что главное отличие в данном случае заключается в использовании знака равенства и необходимости использования кавычек. При вызове команды alias без аргументов будет выведен список объявленных в текущее время псевдонимов.
После установки псевдоним будет работать лишь в рамках текущей сессии командной оболочки. Для того, чтобы активировать этот псевдоним на постоянной основе, вам придется добавить его в один из файлов конфигурации используемой в текущее время командной оболочки. В случае командной оболочки bash псевдонимы для отдельных пользователей чаще всего размещаются в файле конфигурации ~/.bashrc, а общесистемные псевдонимы — в файле конфигурации /etc/profile. В случае командной оболочки tcsh аналогичными файлами конфигурации являются файлы ~/.tcshrc и /etc/login соответственно.
Примеры
Простой псевдоним для пользователей операционной системы DOS:
А это пример более сложного псевдонима:
Данный псевдоним упрощает обращение к списку наиболее часто используемых команд и может стать шаблоном для новых псевдонимов.
А это еще один пример псевдонима для ознакомления со списком смонтированных дисковых разделов:
Механизм функций командной оболочки может выполнять ту же работу, что и механизм псевдонимов, но он гораздо сложнее в использовании. В отличие от функций, псевдонимы не позволяют осуществлять подстановку значений переменных.
Например, даже такая простая функция, как
не может быть преобразована в псевдоним из-за использования переменной "$1".
Установка псевдонима на постоянной основе
Для установки псевдонима на постоянной основе для всех пользователей, всех командных оболочек (ksh, bash, …) и всех типов командных оболочек (использующихся и не использующихся для входа в систему) вам придется:
- модифицировать файл конфигурации /etc/profile для командных оболочек, использующихся для входа в систему
- модифицировать файл конфигурации /etc/bash_bashrc для командных оболочек, не использующихся для входа в систему
Деактивация псевдонима
Используйте команду unalias.
📲 Мы в MAX
👉 @i_odmin
Команда 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 Свежие новости Москвы
Системное администрирование, 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 Свежие новости Москвы
MAX
Bash Советы - Bash Scripting | Linux Terminal & Shell. Скри…
Укроти командную строку. Пишем эффективные Bash-скрипты для сервера и десктопа. Магия текстовой обработки: Grep, Sed, Awk и регулярные выражения (Regex). Настр…
🤮21🤡6💩2❤1👍1👎1
📂 Как найти количество открытых файлов в Linux
🔹 Проверка общего количества открытых файлов:
-
-
🔹 Количество открытых файлов процессом:
-
✅ Чтобы узнать PID процесса:
🔹 Использование
-
🔹 Сводка по всему серверу через
- Показывает общее количество всех открытых файлов на сервере.
🔹 Ограничения (лимиты) на количество открытых файлов:
- Для текущей сессии:
- Системные лимиты:
- Использование и максимальное значение:
Расшифровка
- 1-е число — открытые дескрипторы файлов,
- 2-е число — дескрипторы в очереди освобождения,
- 3-е число — максимальное количество дескрипторов.
🔹 Проверка лимитов процесса:
⚙️ Быстрые советы:
- Если приближается к лимиту — увеличивайте значение через
📲 Мы в MAX
👉 @i_odmin
🔹 Проверка общего количества открытых файлов:
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
👍4❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
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
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
Если вы арендовали свой первый VDS-сервер и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… Чтобы упростить старт, я собрал список утилит, которые стоит установить в первую очередь. Они помогут настроить сервер под ваши задачи, повысят удобство его использования и защитят от потенциальных угроз.
https://habr.com/ru/companies/ruvds/articles/902596/
📲 Мы в MAX
👉 @i_odmin
👍9🔥6
💻 Полезные команды Linux. Корректное выключение, перезагрузка и выход из системы
🔌 Выключение системы:
> Немедленно завершить работу системы.
> Запланированное выключение с сообщением.
> Альтернатива
🔄 Перезагрузка:
> Стандартная перезагрузка.
> Немедленная перезагрузка.
> Современный способ на системах с systemd.
🚪 Выход из текущей сессии:
> Завершение текущей shell-сессии (для терминала).
> Выход из системы, если вы вошли через консоль.
💡 Быстрые подсказки:
*
*
*
*
📲 Мы в MAX
👉 @i_odmin
🔌 Выключение системы:
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
👍4
Shell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
📲 Мы в MAX
👉 @i_odmin
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
📲 Мы в MAX
👉 @i_odmin
👍6🔥2
Команда grep используется в Unix/Linux для поиска строк, соответствующих регулярному выражению, в одном или нескольких файлах или потоках ввода.
Синтаксис:
Примеры использования:
1. Поиск строки в файле:
Ищет строки, содержащие слово "ошибка" в файле журнал.txt.
2. Игнор регистра:
Найдёт "ошибка", "Ошибка", "ОШИБКА" и т.д.
3. Рекурсивный поиск по директории:
Ищет слово "TODO" во всех файлах внутри каталога src.
4. Вывод только совпавших частей (без всей строки):
Ищет URL в потоке ввода.
5. Показать номера строк:
6. Инвертированный поиск (показать строки без совпадений):
7. Использование регулярных выражений (расширенные):
8. Поиск с подсветкой результата:
📲 Мы в MAX
👉 @i_odmin
Синтаксис:
grep [опции] ПАТТЕРН [ФАЙЛ...]
Примеры использования:
1. Поиск строки в файле:
grep "ошибка" журнал.txt
Ищет строки, содержащие слово "ошибка" в файле журнал.txt.
2. Игнор регистра:
grep -i "ошибка" журнал.txt
Найдёт "ошибка", "Ошибка", "ОШИБКА" и т.д.
3. Рекурсивный поиск по директории:
grep -r "TODO" ./src
Ищет слово "TODO" во всех файлах внутри каталога src.
4. Вывод только совпавших частей (без всей строки):
grep -o "http[s]\?://[^ ]\+"
Ищет URL в потоке ввода.
5. Показать номера строк:
grep -n "ошибка" журнал.txt
6. Инвертированный поиск (показать строки без совпадений):
grep -v "успешно" журнал.txt
7. Использование регулярных выражений (расширенные):
grep -E "foo|bar" файл.txt
8. Поиск с подсветкой результата:
grep --color "pattern" файл.txt
📲 Мы в MAX
👉 @i_odmin
👍8🔥2❤1
Депутат Госдумы Гусев предложил создать список «белых VPN»
В Государственной думе поступило предложение о формировании перечня одобренных VPN-протоколов. Эти технологические решения должны обеспечивать функционирование коммерческих организаций и государственных структур.
С данным предложением выступил депутат Дмитрий Гусев. По его утверждению, VPN является основной технологией для обеспечения безопасности информации. Крупные компании и некоторые государственные системы используют её в своей деятельности. Дополнительно он предложил обеспечивать доступ к мобильной сети тем людям, которые имеют подтверждённую учётную запись на портале «Госуслуги». Также депутат считает необходимым составить список российских хостинг-провайдеров, которые заслуживают доверия.
И возникают вопросы о том, является ли это решение способом согласования интересов защиты данных и доступа к ресурсам или методом усиления надзорных функций.
Как вам такая инициатива?
📲 Мы в MAX
👉 @i_odmin
В Государственной думе поступило предложение о формировании перечня одобренных VPN-протоколов. Эти технологические решения должны обеспечивать функционирование коммерческих организаций и государственных структур.
С данным предложением выступил депутат Дмитрий Гусев. По его утверждению, VPN является основной технологией для обеспечения безопасности информации. Крупные компании и некоторые государственные системы используют её в своей деятельности. Дополнительно он предложил обеспечивать доступ к мобильной сети тем людям, которые имеют подтверждённую учётную запись на портале «Госуслуги». Также депутат считает необходимым составить список российских хостинг-провайдеров, которые заслуживают доверия.
И возникают вопросы о том, является ли это решение способом согласования интересов защиты данных и доступа к ресурсам или методом усиления надзорных функций.
Как вам такая инициатива?
📲 Мы в MAX
👉 @i_odmin
🤬22🤡15🖕3❤2👍1😁1
Подборка хаков с grep для продвинутых
🔥 1. Поиск в архивированных логах
Использует zgrep, аналог grep, работающий с .gz - архивами.
🎯 2. Поиск точного слова, а не подстроки
Найдёт main, но не domain или maintain.
🌈 3. Подсветка совпадений
Цветовая подсветка совпадений, особенно удобно с less -R.
🧱 4. Исключение некоторых папок при рекурсивном поиске
Пропускает указанные директории.
🚦 5. Только совпадения (без всей строки)
Выдаст только совпавшие фрагменты, например: ID-1234.
🔁 6. Найти строки, идущие ПЕРЕД или ПОСЛЕ совпадения
🧪 7. Поиск по нескольким шаблонам сразу
Или так, с отдельным шаблонным файлом:
Где patterns.txt содержит:
👁 8. Найти только имена файлов с совпадением
Удобно для массовой рефакторинга или аудита.
🧹 9. Удалить лишний мусор из grep - вывода
Например, выводим только нужные поля, убираем повторы.
⚙️ 10. Использование grep в пайплайне для live-аналитики
Реальное время: мониторинг 404 ошибок на веб-сервере.
📲 Мы в MAX
👉 @i_odmin
🔥 1. Поиск в архивированных логах
zgrep "CRITICAL" /var/log/syslog.3.gz
Использует zgrep, аналог grep, работающий с .gz - архивами.
🎯 2. Поиск точного слова, а не подстроки
grep -w "main" код.c
Найдёт main, но не domain или maintain.
🌈 3. Подсветка совпадений
grep --color=always "TODO" файл.txt
Цветовая подсветка совпадений, особенно удобно с less -R.
🧱 4. Исключение некоторых папок при рекурсивном поиске
grep -r --exclude-dir={.git,node_modules} "token" .
Пропускает указанные директории.
🚦 5. Только совпадения (без всей строки)
grep -oE "ID-[0-9]{4}" журнал.log
Выдаст только совпавшие фрагменты, например: ID-1234.
🔁 6. Найти строки, идущие ПЕРЕД или ПОСЛЕ совпадения
grep -A3 "panic" системный_лог.txt # 3 строки после
grep -B2 "panic" системный_лог.txt # 2 строки до
grep -C5 "panic" системный_лог.txt # 5 строк до и после
🧪 7. Поиск по нескольким шаблонам сразу
grep -E "ERROR|WARN|FATAL" журнал.log
Или так, с отдельным шаблонным файлом:
grep -f patterns.txt журнал.log
Где patterns.txt содержит:
ERROR
WARN
FATAL
👁 8. Найти только имена файлов с совпадением
grep -rl "import numpy" .
Удобно для массовой рефакторинга или аудита.
🧹 9. Удалить лишний мусор из grep - вывода
grep "Session" журнал.log | cut -d' ' -f2- | sort | uniq
Например, выводим только нужные поля, убираем повторы.
⚙️ 10. Использование grep в пайплайне для live-аналитики
tail -f /var/log/nginx/access.log | grep --line-buffered "404"
Реальное время: мониторинг 404 ошибок на веб-сервере.
📲 Мы в MAX
👉 @i_odmin
👍6🔥2👎1
Часто JSON в базе становится компромиссом: удобно хранить, но сложно быстро читать и индексировать.
Без понимания JSONB и операторов запросы начинают тормозить, а структура данных расползаться.
Если вы работаете с динамическими данными и хотите делать это без потери производительности — подключайтесь.
На открытом уроке разберём:
- как устроен JSONB внутри PostgreSQL
- какие индексы реально ускоряют запросы
- как писать SQL, который работает на больших объёмах
- покажем практические сценарии: конфиги, события, генерация JSON-ответов прямо в базе
📌 Встречаемся 5 мая в 20:00 МСК, регистрация открыта: https://vk.cc/cX0EkF
Урок проходит в преддверии старта курса «PostgreSQL для администраторов баз данных и разработчиков». Скидка на ранее бронирование курса 15% - все подробности у менеджера.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
Без понимания JSONB и операторов запросы начинают тормозить, а структура данных расползаться.
Если вы работаете с динамическими данными и хотите делать это без потери производительности — подключайтесь.
На открытом уроке разберём:
- как устроен JSONB внутри PostgreSQL
- какие индексы реально ускоряют запросы
- как писать SQL, который работает на больших объёмах
- покажем практические сценарии: конфиги, события, генерация JSON-ответов прямо в базе
Урок проходит в преддверии старта курса «PostgreSQL для администраторов баз данных и разработчиков». Скидка на ранее бронирование курса 15% - все подробности у менеджера.
Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
Установка своих DNS серверов и отключение получения их по DHCP
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
Изменение количества строк системного лога
Очистка системного лога (оставляет сообщение о смене настроек лога)
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
Отключение ненужных служб доступа (web тоже отключается, осторожно)
Фикс MTU (нужен редко, но метко)
Заблокировать доступ к WiFi по MAC-адресу
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
Настройка пароля и безопасности WiFi на default профиль
Включение пробросов портов SSH
📲 Мы в MAX
👉 @i_odmin
Установки имени устройства
/system identity set name=MyHomeMikrotikУстановка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=noНастройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru from=example@yandex.ru password=example-pass port=587 start-tls=yes user=example@yandex.ruНастройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes Изменение количества строк системного лога
/system logging action set memory memory-lines=10000Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yesЗаблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1 Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tagНастройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpasswordВключение пробросов портов SSH
/ip ssh set forwarding-enabled=both📲 Мы в MAX
👉 @i_odmin
👍8🔥3❤1
Интернет для избранных, рынок для своих: как Минцифры готовит зачистку связи в России
На Хабре вышел материал о том, что под видом новой системы лицензирования рынок связи могут серьезно перекроить в пользу крупных игроков. Автор считает, что больше всего пострадают небольшие региональные провайдеры — те, кто часто держит интернет в посёлках, райцентрах и малых городах.
Если малых операторов начнут выдавливать с рынка, это приведёт не к «порядку», а к снижению конкуренции, ухудшению сервиса и росту зависимости регионов от нескольких федеральных гигантов. В статье подчёркивается, что именно местные компании нередко быстрее чинят аварии, лучше знают территорию и работают там, куда крупному бизнесу идти просто невыгодно.
Что это значит на практике:
— в небольших населённых пунктах связь может стать хуже;
— сроки устранения аварий могут вырасти;
— у людей и бизнеса станет меньше выбора;
— крупным игрокам будет проще диктовать цены и условия.
Автор называет происходящее не модернизацией, а «зачисткой» рынка, и предупреждает: если законопроект примут в таком виде, последствия затронут не только операторов, но и обычных пользователей, предпринимателей и целые регионы. Сейчас документ ещё в стадии разработки, и именно поэтому дискуссия особенно важна.
https://habr.com/ru/articles/1026774/
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @i_odmin
На Хабре вышел материал о том, что под видом новой системы лицензирования рынок связи могут серьезно перекроить в пользу крупных игроков. Автор считает, что больше всего пострадают небольшие региональные провайдеры — те, кто часто держит интернет в посёлках, райцентрах и малых городах.
Если малых операторов начнут выдавливать с рынка, это приведёт не к «порядку», а к снижению конкуренции, ухудшению сервиса и росту зависимости регионов от нескольких федеральных гигантов. В статье подчёркивается, что именно местные компании нередко быстрее чинят аварии, лучше знают территорию и работают там, куда крупному бизнесу идти просто невыгодно.
Что это значит на практике:
— в небольших населённых пунктах связь может стать хуже;
— сроки устранения аварий могут вырасти;
— у людей и бизнеса станет меньше выбора;
— крупным игрокам будет проще диктовать цены и условия.
Автор называет происходящее не модернизацией, а «зачисткой» рынка, и предупреждает: если законопроект примут в таком виде, последствия затронут не только операторов, но и обычных пользователей, предпринимателей и целые регионы. Сейчас документ ещё в стадии разработки, и именно поэтому дискуссия особенно важна.
https://habr.com/ru/articles/1026774/
♻️ Сделай репост, чтобы помочь другим.
👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬18🖕3❤1💯1🤣1🦄1