ServerAdmin.ru
30.7K subscribers
505 photos
44 videos
19 files
2.79K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
На канале было опубликовано много всевозможных прикладных bash скриптов, которые я сам постоянно использую. У меня они все в отдельном репозитории лежат. Решил их собрать для вашего удобства в отдельную публикацию.

▪️lynis.sh - проверка системы с помощью lynis и выгрузка результатов в Zabbix
▪️vps-audit.sh - аудит безопасности сервера
▪️dir_size.sh - определяет размер директорий и записывает результат вместе с датой замеров в файл
▪️postgres.sh - отдельные консольные команды postgresql сервера для использования в своих скриптах (pg_dump, createdb, reindexdb, vacuumdb и т.д.)
▪️copy-last.day.sh - передача с помощью rsync с одного сервера на другой бэкапы прошлого дня, более старые не трогает, забирает файлы со стороны стороннего сервера, а не исходного, где лежат файлы
▪️tg_mon.py - следит за заданными строками в лог файле и шлёт уведомления в telegram, когда их видит
▪️dates.sh - заготовка под работу с датами в скриптах
▪️copy-mysql-table.sh - копирование отдельной таблицы базы данных с одного сервера на другой
▪️wget-speedtest.sh - загружает интернет канал загрузкой данных с публичных Looking Glass
▪️findmnt.sh - проверка существования точки монтирования
▪️ps_mem.py - использование оперативной памяти программами (не процессами)
▪️check_nginx_running.sh - анализ работы веб сервера Nginx для экспорта в логи или мониторинг
▪️contry-block.sh - блокировка стран с помощью ipset и iptables
▪️mysql-stat.sh - оптимизация конфигурации MySQL сервера под имеющуюся оперативную память
🔥topdiskconsumer.sh - очень удобная статистика по занимаемому месту
▪️swap.sh - использование swap процессами
▪️trash.sh - самостоятельная реализация корзины при удалении файлов

📌 Софт для работы со скриптами:

◽️Rundeck - веб интерфейс для централизованного управления работой скриптов на серверах.
◽️Cronicle - система планирования и управления задачами серверов. Условно его можно назвать продвинутым Cron с веб интерфейсом.
◽️Task - утилита, написанная на Gо, которая умеет запускать задачи на основе конфигурации в формате yaml. Более простая и функциональная замена утилите make.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#script #подборка
This media is not supported in your browser
VIEW IN TELEGRAM
Интернет Хостинг Центр — всё для вашего проекта в одном месте! 🌐💪

Хотите разместить сайт, запустить VPN, собрать интернет-магазин или арендовать мощный VDS? У нас уже всё готово для старта!

IHC — это больше, чем просто хостинг. Это целая экосистема для вашего онлайн-бизнеса:

✔️ Хостинг от 123₽/мес с доменом в подарок и тестовым периодом 7 дней
✔️ VPS и VDS в России, Европе и даже Гонконге
✔️ До 5.0 ГГц CPU, NVMe SSD, Linux и Windows образы
✔️ Бесплатный переезд и защита от DDoS
✔️ Лицензии (ispmanager, Bitrix, UMI.CMS и др.), IP-телефония, SSL, бэкапы
✔️ Размещение серверов в ЦОД от 6000₽

А ещё: у нас работает выгодная партнёрская программа — приводите клиентов и получайте до 50% от их оплат. Отличный способ монетизировать вашу аудиторию или добавить новый источник дохода.

💡 Всё под рукой, круглосуточная поддержка и гибкие решения — с IHC вы экономите время, деньги и нервы.

👉 Перейти на ihc.ru

Реклама, ООО «Интернет-Хостинг», ИНН 7701838266.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера была новость о релизе Proxmox VE 8.4. Из нововведений там ничего особенного не увидел, кроме одного момента. Анонсировали Virtiofs – функциональность для совместного доступа к файлам и директориям хоста из виртуальных машин. Это реально полезная штука, так как нередко возникает такая потребность. Обычно приходится поднимать NFS или SMB для этого. Решил сразу посмотреть, как это работает.

Обновил тестовый гипервизор. В списке оборудования VM появилось новое устройство - Virtiofs. А в Datacenter появился новый подраздел Directory Mappings. В этом разделе вам нужно создать общую директорию на хосте, а потом в виртуальную машину добавить через новое устройство.

Итак, чтобы использовать Virtiofs для гостевых виртуальных систем надо:

1️⃣ Добавить общую директорию хоста через Datacenter ⇨ Directory Mappings.
2️⃣ Добавить устройство Virtiofs в виртуальную машину и указать ранее созданную общую директорию.
3️⃣ Современные ядра Linux версии >=5.4 имеют встроенную поддержку virtiofs, ничего специально для её работы делать не надо. Сразу монтируем внутри системы:

# mount -t virtiofs VM_Shares /mnt/VM_Shares

Я смонтировал общую директорию VM_Shares, добавленную в Directory Mappings с указанными именем в директорию /mnt/VM_Shares виртуальной машины с Linux.

Если у вас виртуальная машина Windows, то нужно установить специальный драйвер, который обеспечит поддержку virtiofs. Он входит в состав актуального диска VirtIO-Win package (virtio-win.iso). Дополнительно понадобится программа WinFsp. Это аналог линуксового FUSE.

Для Linux всё выглядит просто и удобно. Для Windows добавляются костыли в виде установки драйвера virtiofs и аналога линуксового FUSE, чтобы смонтировать пользователю общий диск. Не знаю, насколько это будет быстро и стабильно.

Документация по Virtiofs
Virtiofs в Windows

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#proxmox
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В systemd есть несколько команд, которые удобно использовать для получения информации о системе. Основное удобство в том, что они одинаковые везде, где используется systemd. А это фактически все современные дистрибутивы. Покажу основные из них.

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

📌# hostnamectl

 Static hostname: debian12-vm
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: c0cf2b29ca074056823a0f6a481b83b1
Boot ID: 74089e7977524666bc0a2f0b175b0967
Virtualization: kvm
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-26-amd64
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _i440FX + PIIX, 1996_
Firmware Version: rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org


Получаем всю необходимую информацию о системе. Не нужно идти куда-то ещё и уточнять. По крайней мере мне обычно этого достаточно. Команда заменяет все другие более старые, типа lsb_release -a, uname -a, cat /etc/os-release и т.д.

📌# timedatectl

               Local time: Thu 2025-04-10 15:01:26 MSK
Universal time: Thu 2025-04-10 12:01:26 UTC
RTC time: Thu 2025-04-10 12:01:26
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no


Эту команду тоже постоянно использую. Тут сразу и время с часовым поясом видно, и что важнее, настроена ли какая-то синхронизация. Если нужно посмотреть только время, дату и пояс, то удобнее короткая date.

📌# loginctl

В таком виде команда малоинформативна, поэтому лично я её не использую. Нужно вспоминать дополнительные параметры. Для информации о пользователях по привычке использую просто w. Тем не менее loginctl может быть полезна, если нужны какие-то подробности. Например, команда без параметров выводит просто список сессий с номерами. Можно посмотреть детали:

# loginctl session-status 1

1 - root (0)
Since: Thu 2025-04-10 14:46:32 MSK; 15min ago
Leader: 676 (sshd)
Remote: 10.8.2.2
Service: sshd; type tty; class user
State: active
Unit: session-1.scope
├─676 "sshd: root@pts/0"
├─699 -bash
├─734 loginctl session-status 1
└─735 pager


Тут уже и дата подключения, и IP, и запущенные процессы. loginctl может выдать много всего о пользователях, но лично я обхожусь без неё и использую, как уже сказал w, id, cat /etc/passwd. Мне это видится короче и удобнее. Мои вопросы закрывает.

📌# journalctl

Про эту команду, думаю, рассказывать нет смысла. Постоянно упоминаю её в заметках, регулярно использую. Аналогов для просмотра бинарных логов systemd нет, так что выбирать не приходится.

В таком стиле знаю ещё одну команду:

📌# localectl

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

Если знаете ещё какие-то полезные команды в составе systemd, поделитесь информацией. Я не знаю и не видел где-либо чтобы кто-то пользовался чем-то ещё.

#systemd
infosec - это один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы:

- Что из себя представляет официально взломанный iPhone от Apple?
- Кому и для чего выдавалось разрешение на ношение сотового телефона?
- Бесплатные курсы для ИБ специалистов на различные темы;
- Бесплатный бот, который проверит файлы на предмет угроз более чем 70 антивирусами одновременно.

Присоединяйся, у нас интересно: @it_secur
🎮 Поиграл в очень залипательную браузерную игрушку на тему механики работы процессов в операционной системе:

You're the OS!

Игра не новая, но я раньше про неё не слышал. Поиграл немного. Увлекательно. Игра из разряда убийц времени, когда тупо хочется потыкать мышкой и ни о чём не думать.

Смысл игры в том, что тебе надо управлять процессами в системе. В левом верхнем углу 4 ядра процессора. Под ним процессы со своими PID в разных состояниях. Нужно эти процессы отправлять на выполнение процессором, пока они не завершатся.

Процессы сначала жёлтого цвета. Когда вы их отправляете на исполнение, они становятся зелёными. Тогда их надо убирать с ядра и ставить на их место другие жёлтые процессы. Если жёлтый процесс долго не отправлять на выполнение, он начинает краснеть и со временем умирает. После 10-ти умерших процессов пользователь перезагружает компьютер и игра прекращается.

По ходу выполнения процессов возникают задержки I/O. Пока есть задержка, процесс не выполняется. Надо кликнуть мышкой по I/O Events, чтобы убрать задержку.

Также по мере работы процессов заполняется оперативная память. Если её будет не хватать, блоки памяти надо скидывать в swap. Как только на исполнение попадает процесс с блоками памяти в swap, он начинает мигать и не выполняется, пока из swap блок не вернёшь в оперативную память.

И вот так всё это непрерывно работает, а тебе надо перемещать процессы, снимать блокировки, перемещать и возвращать блоки памяти.

Игра затягивает, хотя и быстро устаешь, так как нет паузы, и постоянно требуются твои действия. Наглядно показана механика работы с процессами в системе в упрощённом виде. Интересная идея и реализация.

#игра
🎓 У облака от компании beeline есть небольшой бесплатный курс. Сразу скажу, что меня он в первую очередь привлёк тем, что там обещали Бесплатный доступ к облачным сервисам. Никакого бесплатного доступа я не увидел, а курс прослушал, поэтому расскажу вам о нём. Изначально хотел просто глянуть на это облако. Думал, что там к урокам курса дадут какой-то ограниченный доступ.

Курс короткий, обзорный, в основном теоретический. Ничего нового лично я там не узнал, но в целом мне понравилось качество исполнения. Очень хорошо снята и подготовлена информация. Выверенный, записанный материал с чёткой подачей от лекторов. К каждому уроку небольшое видео на 10-20 минут, презентация и методичка, которые можно скачать. Последнее может пригодиться студентам или преподавателям. Документы хорошо оформлены. Можно использовать для каких-то своих целей.

Последние два урока – демонстрация работы лектора. Можно на практике посмотреть, как он работает в VSCode, Postman и терминале.

Для доступа к курсу достаточно использовать только почту. Телефон можно не указывать. Никаких подтверждений не надо. Я прослушал всё на скорости 1,5.

https://cloud.beeline.ru/devopscloud/

#обучение
Как организовать гибридную среду, которая объединит вашу инфраструктуру on premise с облаком или несколько облаков?

Существуют разные способы. Об одном из них – сервисе Direct Connect – расскажет Владислав Одинцов, техлид, product owner сетевых сервисов K2 Cloud.

Вы узнаете из первых рук о возможностях сервиса и увидите демонстрацию его работы.

Подключайтесь и задавайте свои вопросы о создании гибридной инфраструктуры «облако+on premise».

22 апреля 11:00
Подробности и регистрация
Для тех, кто ещё не слышал или не знает, расскажу новости про ограничения на загрузку образов из Docker Hub. Вышла какая-то непонятная история, поэтому решил разобраться. Компания Docker анонсировала внедрение новых лимитов на загрузку образов из их хранилища, причём довольно суровых. Обещали только 10 загрузок в час для неаутентифицированных пользователей. То есть сделали в час 10 docker pull и получили временный бан, пока лимит не сбросится.

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

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

Зашёл на днях на страничку с лимитами и удивился, так как никаких новых лимитов там нет, можно не суетиться. Хотя я своими глазами видел, что они были, и даже отдельно была выделена новость, что с 1-го апреля они изменились. По факту сейчас всё так же, как и было: 100 запросов за 6 часов без аутентификации и 200 с ней. Протёр глаза и понял, что мне не мерещится. Реально изменений нет.

Сходу как-то даже новости на нашёл на эту тему. Практически молча всё откатили обратно, как было. Немного поискав, нашёл обновлённую старую новость от 21 февраля:

April 8, 2025: No changes to Docker Hub rate limits at this time

Не знаю, по какой причине, но они передумали вводить новые лимиты. И пообещали, что если опять надумают, то предупредят минимум за 6 месяцев.

Для того, чтобы не зависеть от каких-либо ограничений со стороны Docker Hub, можно использовать свои registry. Настроить их очень просто и быстро. Вообще никаких проблем:

▪️Nexus
▪️Harbor
▪️Gitlab Registry
▪️Docker Registry + UI

Для того, чтобы туда автоматом закидывать образы с Docker Hub, можно воспользоваться, к примеру, Sinker. Или чем-то ещё. Таких утилит много. Можно настроить обращения к Docker Hub так, чтобы не выходить за лимиты, и держать свой локальный registry с актуальными образами.

#docker #devops
🌐 Хотите освоить фильтрацию трафика в Linux? Погрузитесь в мир IPTables и nftables!

📅 На вебинаре 17 апреля 2025 года в 19:00 мск мы разберём основные возможности сетевого фильтра IPTables на примере Ubuntu 24.04 и изучим взаимодействие с новой подсистемой nftables.

🎤 Спикер Николай Лавлинский — эксперт веб-разработки с более чем 15-летним опытом, опытный преподаватель (10+ лет). Николай занимался техническим руководством и оптимизацией клиентской и серверной производительности веб-приложений в более чем 100 проектах.

Преимущества участия: поймёте архитектуру подсистемы Netfilter, освоите основные команды утилиты iptables и научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера.

Все участники вебинара получат скидку на курс "Administrator Linux. Basic".

Для участия зарегистрируйтесь https://clck.ru/3LPtPV

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Сейчас будет неожиданная заметка, после которой кто-то подумает, а может и напишет, что автор нуб, не знает таких очевидных вещей. Чего мне только не писали в комментариях. Из того, что запомнилось, это то, что меня бы на работу не взяли, такого бездаря. Также говорили, что я не достоин называться системным администратором.

Всё время, что работал администратором Windows, и будучи пользователем Windows, смотрел список сохранённых паролей в системе через Панель управления ⇨ Учетные записи пользователей ⇨ Диспетчер учетных данных.

А если в командной строке ввести команду:

> rundll32.exe keymgr.dll,KRShowKeyMgr

То откроется другой интерфейс для управления этими же сохранёнными данными. Я его на днях увидел вообще впервые.

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

Для того, чтобы не пропускать такие простые и не совсем очевидные вещи полезно сертифицироваться, даже если вам сертификат формально не нужен. Обычно вот такие примочки во время подготовки и узнаешь. Хотя у меня есть сертификат Microsoft Certified Professional (MCP), но уже не помню, было там такое или нет. Получал очень давно. Обратил тогда внимание, что узнал много таких вещей, о которых даже слышать не приходилось на учёбе или работе.

#windows
Ещё немного откровений по Windows. Эта тема мне давно знакома, но решил её углубить и заодно поделиться с теми, кто раньше не слышал о ней. ОС Windows умеет автоматически определять, подключен ли интернет на компьютере или нет. И делает она это следующим образом:

1️⃣ Делает DNS запрос для домена dns.msftncsi.com и ожидает ответ 131.107.255.255.
2️⃣ Делает HTTP запрос по адресу www.msftconnecttest.com/connecttest.txt и ожидает получить в текстовом файле фразу "Microsoft Connect Test".

Проверки могут отличаться в разных версиях Windows. Приведённую выше информацию я посмотрел у себя в Win11.

А теперь самое интересное. Это поведение настраивается через реестр. Есть ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet с параметрами:

◽️ActiveDnsProbeHost - DNS имя для проверки
◽️ActiveDnsProbeContent - ожидаемый ответ от DNS проверки
◽️ActiveWebProbeHost - веб сервер для HTTP проверки
◽️ActiveWebProbePath - имя текстового файла на веб сервере
◽️ActiveWebProbeContent - содержимое текстового файла

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

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

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

В логе веб сервера вы будете видеть примерно следующее:

178.18.225.228 - - [13/Apr/2025:13:45:23 +0300] "GET /connecttest.txt HTTP/1.1" 200 18 "-" "Microsoft NCSI"

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Знакомство с Service mesh на примере Istio

Изучение концепции Service Mesh и практическое руководство по установке и настройке Istio в Kubernetes.

На вебинаре вы узнаете:

1. Что такое Service Mesh и его значение в современной разработке ПО.
2. Основные функции и возможности Istio как одного из ведущих инструментов Service Mesh.
3. Как установить Istio в кластер Kubernetes и настроить базовые политики управления трафиком.

В результате вебинара:
- Вы получите четкое представление о Service Mesh и его применении.
- Научитесь устанавливать и конфигурировать Istio в Kubernetes кластере.
- Овладеете базовыми навыками настройки политик управления трафиком с использованием Istio.

👉 Регистрация и подробности о курсе "Инфраструктурная платформа на основе Kubernetes": https://clck.ru/3LQVYa

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Небольшой практический совет во время отладки в консоли Linux. Иногда хочется узнать, в каком окружении работает то или иное приложение. Поти вся информация о процессах в Linux живёт в /proc/<pid>, в том числе и об его окружении. Посмотреть можно так:

# cat /proc/816/environ

LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binHOME=/var/lib/zabbixLOGNAME=zabbixUSER=zabbixSHELL=/sbin/nologinCONFFILE=/etc/zabbix/zabbix_agentd.conf

Всё в одну строчку. Не воспринимается глазами вообще. Можно ещё вот так посмотреть:

# ps e -ww -p 816

Тоже не очень наглядно. Так как у нас консоль и bash, то вывод можно как угодно обрабатывать, чтобы было удобно. Проще всего взять xargs, так как у него есть ключ --null, который позволяет разделять строку, используя разделителем так называемый NULL character. Я уже как-то раз писал про него. Иногда его удобно использовать, в том числе в find с ключом -print0.

# cat /proc/816/environ | xargs --null --max-args=1

или то же самое, но немного по-другому:

# xargs --null --max-args=1 echo < /proc/816/environ
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
HOME=/var/lib/zabbix
LOGNAME=zabbix
USER=zabbix
SHELL=/sbin/nologin
CONFFILE=/etc/zabbix/zabbix_agentd.conf

Я уже болен cat-офилией и привык везде её использовать. Уже даже не пытаюсь переучиться. Вместо grep постоянно делаю cat | grep. Вы выбирайте, что вам легче запоминается.

На выходе получаем аккуратный список окружения процесса, где можно увидеть нужные нам нюансы быстрее и нагляднее, чем где-то в другом месте. И запоминать особо не надо, конструкция несложная. Главное ключ --null запомнить.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#linux #bash