ServerAdmin.ru

Description
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Advertising
We recommend to visit
Roxman
Roxman
13,304,439 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated 4 days, 5 hours ago

HAYZON
HAYZON
6,692,190 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Last updated 23 hours ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 3 weeks ago

2 months, 3 weeks ago

Всем привет и хороших выходных, точнее, выходного, если кто ещё или уже не в отпуске. У меня начинается отпуск, так что канал на 3 недели прекращает свою деятельность. Вернусь с новыми публикациями 19-го августа. Чат закрою от новых комментариев, чтобы за спамерами не следить.

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

У вас как проходят отпуска? На связи остаётесь? Приходится рабочими вопросами заниматься? Ритм современной жизни такой, что часто людям приходится это делать и не только в нашей профессии. Особенно если ты руководитель.

Сегодня вечером будет реклама мероприятия Яндекса. Они прям в последний момент успели, когда я уже подготовил последнюю публикацию и заявки не принимал. По самому мероприятию ничего не скажу, смотрите сами, кому это подходит, но рекомендую посмотреть видео, которое будет в этом сообщении. Мне оно понравилось, так что решил его опубликовать. Очень, такое, проникновенно-ностальгическое.

2 months, 3 weeks ago

Я смотрю, заметки с Zabbix бодро заходят, а если ещё Mikrotik или Proxmox добавить, то вообще отлично. Сегодня опять Микротики будут. Типовая задача по настройке переключения канала с основного на резервный и обратно. Плюс, там ещё поднимается VPN канал. Хочется мониторить и переключение каналов, то есть получать уведомления, если канал переключился, и состояние VPN соединения, и состояние каналов, чтобы не получилось так, что резерв уже давно не работает, а мы не знаем об этом. Плюс, если точка висит на резервном канале, то это подсвечивается триггером в дашборде Zabbix.

Я делал это на базе скриптов Mikrotik. Как это может выглядеть, отражено в моей статье про переключение провайдеров. Это один из примеров. Я эти скрипты много раз менял, дорабатывал под конкретные условия. Там может быть много нюансов. Да, переключение провайдеров можно сделать проще через динамическую маршрутизацию, но это только часть задачи. Скрипт решает не только переключение, но и логирование, плюс выполнение некоторых других задач - сброс сетевых соединений, выключение и включение VPN соединения, чтобы оно сразу переподключилось через нового провайдера и т.д.

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

:local PingCount 3;
:local CheckIp1 77.88.8.1;
:local CheckIp8 77.88.8.8;
:local isp1 [/ping $CheckIp1 count=$PingCount interface="ether1"];
:local isp2 [/ping $CheckIp8 count=$PingCount interface="lte1"];
:if ($isp1=0) do={
:log warning "MAIN Internet NOT work";
} else={
:log warning "MAIN Internet WORK";
}
:if ($isp2=0) do={
:log warning "RESERV Internet NOT work";
} else={
:log warning "RESERV Internet WORK";
}

Результат работы скриптов выводился в стандартный лог Микротика. Дальше этот лог может уезжать куда-то на хранение и анализ. Например, в ELK или Rsyslog. Если мы настраиваем мониторинг через Zabbix, то выбираем rsyslog.

Zabbix Server забирает к себе все логи через стандартный айтем с типом данных лог и анализирует. Потом создаётся триггер с примерно таким выражением, если брать приведённый выше скрипт Микротика:

find(/Mikrotik logs/log[/var/log/mikrotik/mikrotik.log],\#1,"like","Router\-01: MAIN Internet NOT work")=1'

и восстановление:

find(/Mikrotik logs/log[/var/log/mikrotik/mikrotik.log],\#1,"like","Router\-01: MAIN Internet WORK")=1

В таком подходе есть одно неудобство. Все триггеры будут привязаны к Zabbix Server, а имя устройства видно только в описании триггера. Если вам это не подходит, придётся использовать что-то другое.

Я придумывал другую схему, чтобы триггеры о состоянии каналов были привязаны к самим устройствам, чтобы на географической карте были видны хосты с проблемами. Уже точно не помню реализацию, но вроде порты куда-то внутрь пробрасывал через разные каналы. И делал стандартные TCP проверки этих портов через Zabbix сервер. Если какой-то порт не отвечает, то канал, через который он работает, считается неработающим.

И ещё один вариант мониторинга каналов. Через каждого провайдера поднимаем разное VPN соединение и мониторим его любым способом. Можно простыми пингами, если Zabbix сервер или его прокси заведён в эти VPN сети, можно по SNMP.

Мне лично больше всего нравятся варианты с логами. Я люблю всё собирать и хранить. Логи удобно анализировать, всегда на месте исторические данные по событиям. Другое дело, что Zabbix не любит большие логи и нагружать его ими не стоит. Он всё хранит в SQL базе, а она для логов плохо подходит. Какие-то простые вещи, типа вывод работы скриптов без проблем можно заводить, а вот полноценный сбор масштабных логов с их анализом устраивать не надо.

Через анализ логов удобно слать уведомления о каких-то событиях в системных логах. Например, информировать об аутентификации в системе через анализ лог файла /var/log/auth.log. Можно о slow логах mysql или php-fpm сообщать. Это актуально, если у вас нет другой, полноценной системы для хранения и анализа логов.

#mikrotik #zabbix

2 months, 3 weeks ago

Как можно закрыть веб интерфейс Proxmox от посторонних глаз? Если, к примеру, вы арендуете одиночный сервер и он смотрит напрямую в интернет. Как вы понимаете, способов тут может быть очень много. Расскажу про самые простые, быстрые в настройке и эффективные. Они все будут проще, чем настроить VPN и организовать доступ через него.

1️⃣ Самый простой способ - настроить ограничение по IP с помощью настроек pveproxy. Я об этом подробно рассказывал в отдельной заметке. Достаточно создать файл /etc/default/pveproxy примерно такого содержимого:

ALLOW_FROM="192.168.13.0/24,1.1.1.1"
DENY_FROM="all"
POLICY="allow"

И после этого перезапустить службу:

\# systemctl restart pveproxy.service

2️⃣ С помощью iptables. Если заранее не настроили iptables, то на работающем сервере лучше не пробовать настраивать, если у вас нет прямого доступа к консоли. Если файрвол вообще не настраивали, то в общем случае понадобятся два правила:

/usr/sbin/iptables \-A INPUT \-i enp5s0 \-s 192.168.13.0/24,1.1.1.1 \-p tcp \-\-dport 8006 \-j ACCEPT
/usr/sbin/iptables \-A INPUT \-i enp5s0 \-p tcp \-\-dport 8006 \-j DROP

Первое разрешает подключения из подсети 192.168.13.0/24 и ip адреса 1.1.1.1. Второе правило запрещает все остальные подключения к веб интерфейсу. Правила эти можно сохранить в файл и подгружать во время загрузки сервера или явно прописать в /etc/network/interfaces примерно так:

auto enp5s0
iface enp5s0 inet static
address 5.6.7.8/24
dns\-nameservers 188.93.17.19 188.93.16.19
gateway 5.6.7.1
post\-up /usr/sbin/iptables \-A INPUT \-i enp5s0 \-s 192.168.13.0/24,1.1.1.1 \-p tcp \-\-dport 8006 \-j ACCEPT
post\-up /usr/sbin/iptables \-A INPUT \-i enp5s0 \-p tcp \-\-dport 8006 \-j DROP

Если уже есть другие правила, то их надо увязывать вместе в зависимости от ситуации. Тут нет универсальной подсказки, как поступить. Если не разбираетесь в iptables, не трогайте его. Используйте другие методы.

Я сам всегда использую iptables. Настраиваю его по умолчанию на всех гипервизорах. Примерный набор правил показывал в заметке.

3️⃣ Вы можете установить Nginx прямо на хост с Proxmox, так как по своей сути это почти обычный Debian. У Nginx есть свои способы ограничения доступа по ip через allow/deny в конфигурации, либо по пользователю/паролю через basic auth. Бонусом сюда же идёт настройка TLS сертификатов от Let's Encrypt и доступ по 443 порту, а не стандартному 8006.

Ставим Nginx:

\# apt install nginx

Настраиваем базовый конфиг /etc/nginx/sites\-available/default:

server {
listen 80 default_server;
server_name _;
allow 192.168.13.0/24;
allow 1.1.1.1/32;
deny all;
return 301 https://5.6.7.8;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/pve/local/pve\-ssl.pem;
ssl_certificate_key /etc/pve/local/pve\-ssl.key;
proxy_redirect off;
allow 192.168.13.0/24;
allow 1.1.1.1/32;
deny all;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://localhost:8006;
proxy_buffering off;
client_max_body_size 0;
}
}

Разрешили подключаться только с указанных адресов. Это пример с использованием стандартных сертификатов. Для Let's Encrypt нужна отдельная настройка, которая выходит за рамки этой заметки. Для того, чтобы закрыть доступ паролем, а не списком IP адресов, необходимо настроить auth_basic. Настройка легко гуглится по ключевым словам nginx auth_basic, не буду об этом рассказывать, так как не умещается в заметку. Там всё просто.

Этот же Nginx сервер можно использовать для проксирования запросов внутрь виртуалок. Удобный и универсальный способ, если вы не используете отдельную виртуалку для управления доступом к внутренним ресурсам.

После настройки Nginx, доступ к веб интерфейсу по порту 8006 можно закрыть либо через pveproxy, либо через iptables.

#proxmox

4 months, 2 weeks ago

▶️ Всем хороших тёплых теперь уже летних выходных. Как обычно, ниже те видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне показались интересными. В начале будет самое актуальное ? (хотя всех уже наверное задолбала эта тема)

Установка Adguard Home и разблокировка Docker Hub, ClamAV и TMDB
Наглядная инструкция на тему настройки Adguard Home для обхода блокировок с той стороны путём перенаправления трафика к заблокированным доменам на отдельные DNS сервера. А они каким-то образом резолвят ответы так, что блокировка обходится. Интересное решение. Я не знал, что так вообще можно сделать. Не понял техническую реализацию такого обхода.

*?How To Migrate ZABBIX from MySQL to PostgreSQL
*⇨
Set up TimescaleDB with Zabbix for Extra Performance
Два полезных видео от Dmitry Lambert на тему перевода Zabbix с MySQL на PostgreSQL, а так же подключения TimescaleDB для увеличения производительности подсистемы хранения метрик.

HTTP API | Компьютерные сети 2024 - 14
Система доменных имен DNS | Компьютерные сети 2024 - 15
Очередные уроки с курса по сетям от Созыкина Андрея.

Установка XPEnology 7.2 на мини ПК с SSD NVME M2
Инструкция по установке XPEnology. Кто не знает, что это такое, рекомендую познакомиться. Я пользуюсь более 10-ти лет. Думаю, что в районе 12-13 лет уже.

Proxmox Backup Server. Установка, настройка, тест, обзор функций.
Очень подробный разбор PBS для создания бэкапов VM и не только в Proxmox. Кто с ним знаком, смотреть особо нет смысла. Кто не знаком, получит полное представление о нём.

Proxmox Automation with Proxmox Helper Scripts!
Обзор известной коллекции Proxmox Helper Scripts, про которую постоянно вспоминают в комментариях к заметка о Proxmox. Да я и сам писал ранее о них. Отдельно хочу упомянуть статью от этого автора у него на сайте про автоматизацию полива грядок на своём участке. Мне было интересно посмотреть, на базе чего это технически реализуется. Стоит всё это немало для нашего уровня жизни.

Выбор VPN для использования в Mikrotik
Очень подробный разбор всех вариантов VPN в Микротике от сертифицированного тренера Козлова Романа. Видео большое (2 часа), так как это лекция, а не смонтированный ролик по теме с выжимкой информации.

Zammad - Open Source Helpdesk and Ticketing software for your MSP, IT or other business needs!
Подробный обзор Zammad - одной из лучших open source систем для организации собственной HelpDesk службы. Я когда-то давно делал про неё заметку.

I automated EVERYTHING in my HomeLab with Kestra
Я не так давно писал про Kestra. Автор видео развернул у себя эту систему и рассказал, как её использует для автоматизации.

Zero-Trust for DevOps! Twingate + Terraform + Kubernetes
Подробное видео по использованию Twingate в Kubernetes. Это инструмент для довольно популярного последнее время направления по организации peer-to-peer соединений в рамках распределённой VPN сети. А так же для подключения внешних клиентов в эти сети.

BEST Server Monitoring with TICK stack setup for FREE!
Очень понравился TICK stack для мониторинга. Никогда раньше о нём не слышал. Это связка в docker-compose нескольких популярных open source продуктов: Telegraf, InfluxDB, Chronograf, Kapacitor. У автора есть серия статей по этой теме. Ссылки в описании к видео.

Без вышки все? Нужно ли высшее образование DevOps, программисту, и др айти специалисту?
Рассуждения автора на актуальную тему. Сам я лично так и не определился, нужно ли это или нет. У меня есть высшее техническое образование практически по моей специальности (математик-программист, были курсы и по администрированию, и по сетям, и по ОС и т.д.). Но не могу сказать, что на практике оно мне сильно помогло в работе. Для старта и получения работы больше помог сертификат Microsoft, который я получил перед окончанием вуза и поиском работы.

#видео

YouTube

Установка Adguard Home и разблокировка Docker Hub, ClamAV и TMDB

В этом материале я расскажу как установить Adguard Home на ваш Synology NAS и разблокировать сервисы Docker Hub, ClamAV и TMDB. Статья: https://bafista.ru/ustanovka-adguard-home-i-razblokirovka-docker-hub-clamav-i-tmdb/ Сайт https://bafista.ru/ Блог ht…

4 months, 2 weeks ago

​​Вчера свершилось знаменательное событие - заблокировали доступ к hub.docker.com с IP адресов в России. Теперь без лишних телодвижений не скачать образы из этого репозитория. Не очень понятно, зачем это сделали, почему только сейчас и в чём тут смысл, если обойти эту блокировку, как и многие другие, не представляет каких-то проблем.

Расскажу несколько простых разных способов обхода этой блокировки.

1️⃣ Самый простой - переключиться на какое-то зеркало. Их сейчас много появится и встанет вопрос доверия к ним. Пока можно гугловское зеркало использовать, но его скорее всего тоже рано или поздно для нас заблокируют. Для этого достаточно создать конфиг /etc/docker/daemon.json, если у вас его нет, следующего содержания:

{ "registry\-mirrors": ["https://mirror.gcr.io"] }

Перезапускаем службу и пользуемся, как раньше.

\# systemctl restart docker

Больше ничего менять не надо.

2️⃣ Использовать локально подключение докера к своему реджистри через прокси. Недавно я об этом рассказывал и там многие написали, типа зачем всё это, доступ не заблокирован. Потому что не будет вашего итальянского сыра ХАХАХАХА. Сегодня этот реджистри, завтра все остальные. Прокси тоже относительно просто решает вопрос для единичного хоста.

3️⃣ Можно глобально на общем шлюзе настроить VPN подключение к серверу за пределами РФ, маркировать весь трафик, что блокируется и отправлять его через VPN соединение. Я так делаю дома для себя и своих тестовых стендов. Рассказывал про эту настройку на примере Mikrotik.

4️⃣ Поднять собственный прокси для докера, который будет иметь доступ к hub.docker.com. Не важно, как это будет сделано у него: через VPN он будет подключаться, или сразу поднят на VPS за пределами РФ. Вы со своей стороны будете подключаться к этому прокси, а он будет по вашим запросам загружать образы.

Проще всего подобный прокси поднять с помощью Nexus repository. Показываю, как это сделать. Я сразу взял VPS за пределами РФ и развернул там:

\# docker volume create \-\-name nexus\-data
\# docker run \-d \-p 8081:8081 \-p 8082:8082 \-\-name nexus \
\-v nexus\-data:/nexus\-data sonatype/nexus3

В файле /var/lib/docker/volumes/nexus\-data/_data/admin.password смотрим пароль от пользователя admin. Идём в веб интерфейс Nexus по IP адресу сервера на порт 8081.

Переходим в раздел управления и добавляем новый репозиторий. Тип выбираем docker (proxy). Если вы сами к прокси будете подключаться через VPN или проксировать к нему запросы через ещё какой-то прокси, типа Nginx или HAproxy, то можно в свойствах репозитория выбрать только HTTP и порт 8082. Это упростит настройку. Рекомендую идти именно по этому пути, чтобы ограничить тем или иным способом доступ к этому репозиторию. Вы же не будете его открывать в общий доступ для всех. В таком случае можно будет установить флаг Allow anonymous docker pull. Не нужно будет на всех хостах аутентификацию проходить.

В качестве Remote Storage можно указать https://registry-1.docker.io. Это докеровский репозиторий. Остальные настройки можно оставить по умолчанию, либо изменить в зависимости от ваших предпочтений.

Также зайдите в раздел Security ⇨ Realms и добавьте Docker Bearer Token Realm. Без него аутентификация в реджистри не будет работать.

После создания репозитория, можно его открыть. Там будет показан его url в зависимости от ваших настроек порта, http и адреса самого Nexus. Теперь его можно использовать в настройках /etc/docker/daemon.json:

{
"insecure\-registries": ["10.105.10.105:8082"],
"registry\-mirrors": ["http://10.105.10.105:8082"]
}

Перезапускайте службу Docker и пробуйте. Можно аутентифицироваться в своём реджистри и что-то загрузить:

\# docker login 10.105.10.105:8082
\# docker pull nginx

Идём в веб интерфейс Nexus, смотрим обзор репозитория и видим там скачанный образ Nginx.

Пока на практике каких-то реальный проблем с ограничением доступа нет. Если кто-то использует другие способы, поделитесь информацией. С помощью Nexus можно прокси для любых репозиториев делать, не только Docker.

#devops #docker

[​​](https://telegra.ph/file/3eaec4a2c4a3d2f3d3db5.png)Вчера свершилось знаменательное событие - заблокировали доступ к [hub.docker.com](http://hub.docker.com/) с IP адресов в России. Теперь без лишних телодвижений не скачать …
4 months, 3 weeks ago
4 months, 3 weeks ago
***❓***Хотите разобраться с регулярными выражениями для …

Хотите разобраться с регулярными выражениями для системного администратора Linux?

? Ждём вас на бесплатно открытом практическом уроке от OTUS по Linux.

На уроке вместе с опытным экспертом:
- различие вариантов регулярных выражений;
- основной синтаксис шаблонов;
- составление выражения для парсинга логов. 

? Спикер Николай Лавлинский — PhD Economic Sciences, опытный разработчик, автор курсов по администрированию и оптимизации веб-приложений, ведущий каналов «Ускорение сайтов» и «Поддержка сайтов». 

Встречаемся 27 мая в 19:00 мск в рамках курса «Administrator Linux. Professional». Все участники вебинара получат специальную цену на обучение! 

? Зарегистрируйтесь прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/ML3R/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

4 months, 3 weeks ago

​​После установки обновлений иногда необходимо выполнить перезагрузку системы. Точно надо это сделать, если обновилось ядро. Необходимо загрузиться с новым ядром. В коммерческих системах Linux от разных разработчиков есть механизмы обновления ядра без перезагрузки. В бесплатных системах такого не видел.

Для того, чтобы отслеживать этот момент, можно воспользоваться программой needrestart. Она есть в базовых репах:

\# apt install needrestart

В rpm дистрибутивах название будет needs-restarting. Если просто запустить программу, то она в интерактивном режиме покажет, какие службы необходимо перезапустить, чтобы подгрузить обновлённые библиотеки, либо скажет, что надо перезапустить систему, чтобы применить обновление ядра.

Для того, чтобы использовать её в автоматизации, есть ключ \-b, batch mode:

\# needrestart \-b
NEEDRESTART\-VER: 3.5
NEEDRESTART\-KCUR: 5.10.0\-25\-amd64
NEEDRESTART\-KEXP: 5.10.0\-29\-amd64
NEEDRESTART\-KSTA: 3
NEEDRESTART\-SVC: cron.service
NEEDRESTART\-SVC: dbus.service
NEEDRESTART\-SVC: [email protected]
NEEDRESTART\-SVC: [email protected]
NEEDRESTART\-SVC: qemu\-guest\-agent.service
NEEDRESTART\-SVC: rsyslog.service
NEEDRESTART\-SVC: systemd\-journald.service
NEEDRESTART\-SVC: systemd\-logind.service
NEEDRESTART\-SVC: systemd\-timesyncd.service
NEEDRESTART\-SVC: systemd\-udevd.service

Здесь перечислены службы, которые нужно перезапустить после обновления системы. И показана информация об ядре. Значение NEEDRESTART-KSTA может принимать следующие состояния необходимости обновления ядра:

0: неизвестно, либо не удалось определить
1: нет необходимости в обновлении
2: ожидается какое-то ABI совместимое обновление (не понял, что это такое)
3: ожидается обновление версии

Если у вас значение 3, как у меня в примере, значит систему нужно перезагрузить, чтобы обновлённое ядро 5.10.0-29-amd64 заменило текущее загруженное 5.10.0-25-amd64.

Значение NEEDRESTART-KSTA можно передать в мониторинг и отслеживать необходимость перезагрузки. Например, В Zabbix можно передать вывод следующей команды:

\# needrestart \-b | grep 'NEEDRESTART\-KSTA' | awk '{print $2}'

Если на выходе будет 3, активируем триггер. Передать значение можно любым доступным способом, которому вы отдаёте предпочтение в своей инфраструктуре:

с помощью локального скрипта и параметра UserParameter в агенте
с помощью EnableRemoteCommands в агенте и ключа system.run на сервере
с помощью zabbix_sender
с помощью скрипта и передачи значения ключа напрямую в сервер через его API

Zabbix в этом плане очень гибкая система, предлагает разные способы решения одной и той же задачи.

После перезагрузки значение NEEDRESTART-KSTA станет равно единице:

\# needrestart \-b
NEEDRESTART\-VER: 3.5
NEEDRESTART\-KCUR: 5.10.0\-29\-amd64
NEEDRESTART\-KEXP: 5.10.0\-29\-amd64
NEEDRESTART\-KSTA: 1

В выводе не будет ни одной службы, которую следует перезапустить. Если нет системы мониторинга, но есть система сбора логов, то можно вывод отправить туда и там уже следить за службами и состоянием ядра.

Покажу, как строку сразу преобразовать в нормальный json, чтобы потом можно было легко анализировать:

\# needrestart \-b | tr ':' '=' | tr \-d ' ' | jo \-p
{
"NEEDRESTART\-VER": 3.5,
"NEEDRESTART\-KCUR": "5.10.0\-29\-amd64",
"NEEDRESTART\-KEXP": "5.10.0\-29\-amd64",
"NEEDRESTART\-KSTA": 1
}

Обработал в лоб. Взял утилиту jo, заменил : на = c помощью tr, потому что jo понимает только =, потом убрал лишние пробелы опять же с помощью tr. Получили чистый json, из которого с помощью jsonpath можно забрать необходимое для анализа значение.

\# needrestart \-b | tr ':' '=' | tr \-d ' ' | jo \-p | jq .'"NEEDRESTART\-KSTA"'
1

Придумал это без помощи ChatGPT. Даже не знаю уже, хорошо это или плохо. По привычке трачу время и пишу такие штуки сам.

#linux #мониторинг

[​​](https://telegra.ph/file/bf44b415535c497b73bb3.png)После установки обновлений иногда необходимо выполнить перезагрузку системы. Точно надо это сделать, если обновилось ядро. Необходимо загрузиться с новым ядром. …
4 months, 4 weeks ago

Решил собрать в одну публикацию все мои заметки по базовым консольным программам Linux с описанием и примерами использования. Давно хотел сделать, но откладывал, так как хлопотно весь канал перетряхивать. В заметках не только стандартное описание, но и мой авторский текст о них и практические примеры.

▪️ curl: работа с веб серверами, отправка почты, чтение почты по imap,
▪️ systemctl: управление службами, работа с таймерами, просмотр информации о системе,
▪️ find: общие примеры, очистка старых файлов, поиск дубликатов файлов,
▪️ lsof: работа с файлами и сетевыми соединениями
▪️ grep- поиск строк и шаблонов в текстах
▪️ cat - использование cat как текстового редактора
▪️ type- возвращает тип введённой в оболочку команды
▪️ touch- обновление информации о atime и mtime файла
▪️ hash- просмотр кэша путей к исполняемым файлам
▪️ auditctl- аудит доступа к файлам
▪️ history- просмотр истории введённых в консоль команд
▪️ at- планировщик разовых заданий
▪️ ps- вывод списка процессов с подробностями
▪️ dig- запросы к dns серверам
▪️ nc- установка сетевых соединений и передача по ним информации
▪️ screen- защита терминальных сессий от разрыва соединения
▪️ cut- работа с текстовыми строками
▪️ w- информация об uptime, подключенных пользователях, la
▪️ less- постраничный вывод информации в консоль
▪️ truncate- усечение текстовых файлов (логов)
▪️ split- разделение файлов на части
▪️ units- конвертация единиц измерения
▪️ chsh- замена оболочки пользователя
▪️ fc- утилита из состава оболочки bash для работы с историей команд
▪️ socat- создание потоков для передачи данных, прямой доступ к shell
▪️ lsmem и chmem - информация об оперативной памяти, управление объёмом использования
▪️ column - выводит данные других команд в табличном виде
▪️ vmstat- информация по использованию оперативной памяти, cpu и дисках
▪️ findmnt- информация о точках монтирования
▪️ sed- автоматическая замена текста в файлах
▪️ date- вывод информации о дате и времени в различных форматах
▪️ basename- показывает только имя файла из полного пути
▪️ lsblk- информации об устройствах хранения

#terminal #подборка

5 months ago

​​Для тех, кто не любит читать многостраничные man, существует его упрощённая версия, поддерживаемая сообществом — tldr. Аббревиатура как бы говорит сама за себя — Too long; didn't read. Это урезанный вариант man, где кратко представлены примеры использования консольных программ в Linux с минимальным описанием.

Для просмотра информации из tldr можно использовать консольный клиент, либо просто пользоваться веб версией. Описание каждой программы умещается в одну страницу. Авторы, судя по всему, последователи чеховского принципа: "Краткостьсестра таланта".

Вот пример выдачи для lsof:

lsof — Lists open files and the corresponding processes. Note: Root privileges (or sudo) is required to list files opened by others. More information: https://manned.org/lsof.

● Find the processes that have a given file open:
lsof path/to/file
● Find the process that opened a local internet port:
lsof \-i :port
● Only output the process ID (PID):
lsof \-t path/to/file
● List files opened by the given user:
lsof \-u username
● List files opened by the given command or process:
lsof \-c process_or_command_name
● List files opened by a specific process, given its PID:
lsof \-p PID
● List open files in a directory:
lsof +D path/to/directory
● Find the process that is listening on a local IPv6 TCP port and don't convert network or port numbers:
lsof \-i6TCP:port \-sTCP:LISTEN \-n \-P

В принципе, всё основное охватили. Кому интересно, может посмотреть мою подборку с примерами использования lsof. Я тоже люблю такие краткие выжимки с примерами. Надо будет собрать их все в одну публикацию. На канале уже много набралось по многим популярным утилитам.

Проект интересный и полезный. В закладки можно забрать и иногда пользоваться по нужде. Он похож на некоторые другие, про которые я уже писал ранее:

▪️ cheat.sh — он удобнее организован, можно информацию получать через curl сразу в консоль, без установки клиента
▪️ explainshell.com — тут немного другой принцип, на основе man выдаёт описание длинных команд с разными ключами

Отдельно упомяну сервис, который немного про другое, но тоже очень полезный. Регулярно им пользуюсь:

? shellcheck.net — проверка синтаксиса shell скриптов

#linux #terminal

[​​](https://telegra.ph/file/eb6a0d7e84d4110c21bbb.png)Для тех, кто не любит читать многостраничные man, существует его упрощённая версия, поддерживаемая сообществом — [**tldr**](https://tldr.sh/). Аббревиатура как бы говорит …
We recommend to visit
Roxman
Roxman
13,304,439 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated 4 days, 5 hours ago

HAYZON
HAYZON
6,692,190 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Last updated 23 hours ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 3 weeks ago