Системный Администратор (Сисадмин)
14.2K subscribers
1.85K photos
1.82K videos
92 files
1.96K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Горячие клавиши в терминале Linux

Давным-давно, такие слова как "hot keys" и "keyboard shortcuts" мне не всегда удавалось перевести на русский без потери лица. Как-то раз, я написал "клавиатурные сокращения", чем сразу же привлёк косые взгляды и вызвал смелые медицинские фантазии... Но вроде бы сейчас принято везде говорить и писать "горячие клавиши". О них и поговорим.

#terminal #linux
👍5🔥1
Менеджеры пакетов в системах linux

В двух словах, управление пакетами это установка и поддержка (обновление или удаление при необходимости), программного обеспечения операционной системы. На ранних стадиях развития операционных систем Linux, программное обеспечение для них распространялось только в виде исходного кода, вместе с необходимой документацией, файлами конфигурации и т. д. В настоящее время большинство дистрибутивов Linux используют уже скомпилированные программы, называемые пакетами. Пакеты предоставляются пользователю уже готовыми к установке на операционную систему. Тем не менее в linux, всегда можно получить исходный код того или иного программного обеспечения для изучения, улучшения и компиляции.

#linux

👉@sysadminof
👍3
Типы файлов Linux

В GNU/Linux как и других Unix-подобных операционных системах понятие типа файла не связано с расширением файла (несколькими буквами после точки в конце имени), как это обстоит в Windows. Далее

#Linux

👉@sysadminof
👍5
Копирование, перемещение, создание и удаление файлов и каталогов

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

#Linux

👉@sysadminof
👍3
Команды Linux

Несмотря на то, что на каждом шагу нас преследует графический интерфейс и красивые окна, командная строка не теряет своей актуальности. Даже в ОС Windows командная строка иногда позволяет сделать очень интересные действия. А в Windows 2008 появилась даже отдельная конфигурация, которая позволяет запустить сервер без графического режима и выполнять все действия с помощью текстовых команд.

Часть 1
Часть 2

#Linux

👉@sysadminof
👍6
Команда sudo – администрирование системы

В Unix-подобных операционных системах должен быть привилегированный пользователь – суперпользователь, он же администратор. Логин его учетной записи – root, а домашний каталог находится в /root. Этот пользователь предназначен для администрирования системы, а значит обладает правами на операции с системными файлами, установку программного обеспечения, создание и удаление других пользователей, предоставление им различных доступов. Далее

#Linux

👉@sysadminof
👍3
Поиск файлов. Команда find

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

#Linux

👉@sysadminof
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
​Winapps – проект, что позволяет запускать приложения Windows, такие как Microsoft Office в Linux (Ubuntu) и GNOME, как если бы они были частью собственной ОС, включая интеграцию с Nautilus

#GitHub #Shell #Linux #Windows #Interesting

👉 @Githublib
🔥15
​​PeaZip – бесплатная утилита для архивирования файлов и экстрактор rar для Windows и Linux

Работает с более чем 200 типами и вариантами архивов (7z, ace, arc, bz2, cab, gz, iso, paq, pea, rar, tar, wim, zip, zipx ...), может обрабатывать составные архивы (001, r01, z01 ...) и поддерживать несколько стандартов шифрования архивов

#GitHub #Pascal #Zip #Windows #Linux #Interesting

👉 @Githublib
👍8
Использование ps, kill и nice для управления процессами в Linux

Сервер Linux, как и любой другой компьютер, использует приложения. Компьютер рассматривает эти приложения как процессы.

Хотя Linux автоматически выполняет все скрытые низкоуровневые задачи жизненного цикла процесса, нам необходим способ взаимодействия с операционной системой для управления на более высоком уровне.

В этом учебном модуле мы расскажем о некоторых простых аспектах управления процессами. Linux предоставляет широкий выбор инструментов для этой цели.

В качестве примера мы используем Ubuntu 12.04 VPS, но любые современные дистрибутивы Linux будут работать аналогичным образом.

https://www.digitalocean.com/community/tutorials/how-to-use-ps-kill-and-nice-to-manage-processes-in-linux-ru#linux

👉 @sysadminof
👍3
🧠 Что делает команда exec в bash — и зачем она нужна?

Многие слышали о exec, но используют редко. А зря! Это мощный инструмент, особенно в скриптах и системном администрировании.

🔹 Что делает exec?
Она заменяет текущий процесс новым, без создания дочернего. То есть, вместо запуска новой программы — текущий процесс «перевоплощается» в неё.

Простой пример:

exec top

В этом случае оболочка bash будет заменена на top, и когда вы закроете top, сессия завершится.



🛠 Где это может пригодиться:

1. В systemd-юнитах — при запуске сервиса через скрипт:

#!/bin/bash
exec /usr/bin/myapp

Это позволит системе правильно отслеживать основной процесс.

2. В контейнерах (например, Docker) — если вы запускаете скрипт в качестве ENTRYPOINT, используйте exec, чтобы сигналы (например, SIGTERM) корректно передавались вашему приложению.

3. Для перенаправления ввода/вывода:

exec >> /var/log/myscript.log 2>&1

Всё, что будет выведено в stdout и stderr после этой строки — пойдёт в лог.


exec не делает магии, но помогает делать вещи правильно. Особенно там, где важна замена PID и корректная работа сигналов.

А вы используете exec в своих скриптах? Поделитесь опытом 👇

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍8
#vacancy #сисадмин #системныйадминистратор #Linux #Ubuntu #Centos #fulltime #вакансия #москва

Системный администратор Linux

Локация: Москва
ЗП: 250к-350к net
Занятость: Полная, Гибридный формат
Оформление: ТКРФ
Компания: Федеральное Медико-биологическое агентство

ЦСП ФМБА занимается научными исследованиями связанными с геномом человека и анализом полученных данных.
Группа разработки создает внутренние сервисы для автоматизации движения, обработки и распределенного хранения больших объемов данных.

Требования:
• Высокий уровень системного администрирование и траблшутинг серверных операционных систем Linux (Ubuntu,Centos)
• Виртуализация VMWare, Proxmox, KVM.
• Знания и практический опыт в области развертывания и обслуживания СУБД (Postgresql,mysql);
• Опыт проектирования и развертывания сетевых служб DNS,DHCP
• Знания технологий RAID;
• Опыт работы с сетевым оборудованием: DELL, MikroTik, Mellanox, HP; знание и понимание принципов работы сетей TCP/IP, маршрутизации, VLAN;
• Опыт работы с серверными платформами: Dell, Supermicro, IBM
• Опыт внедрения и администрирования терминальных ферм, знание правил и принципов;
• Практические навыки написания скриптов (Bash,Python);
• Практический опыт работы с Zabbix, написания триггеров.

Чем предстоит заниматься:
- Развертывание, настройка и поддержка инфраструктуры
- Настройка и работа с виртуализацией
- Взаимодействие с командой разработки по ключевым вопросам

Мы предлагаем:
Москва, офис недалеко от метро Щукинская
График работы 5/2
Гибридный режим работы
Официальное оформление по ТК РФ
Белая стабильная заработная плата
Бронь от мобилизации
Обслуживание в корпоративной поликлинике


Резюме отправлять: @ddsh_kl
👍12💩11
🏎 Разгоняем KVM: Тюнинг производительности

«Из коробки» KVM предлагает безопасные и совместимые настройки, но они - враг высокой производительности. Если ваша БД тормозит или сеть не выдает гигабит, скорее всего, проблема не в железе, а в том, как виртуалка с ним общается.

Вот «святая троица» настроек для High Performance.

1. VirtIO: Забудьте про эмуляцию

По умолчанию гипервизор может подсовывать машине эмулируемую сетевую карту (например, e1000) или IDE-диск. Это создает огромный оверхед: CPU тратит такты на то, чтобы притворяться старым железом.

Решение: Используйте паравиртуализированные драйверы VirtIO. Они позволяют гостевой ОС знать, что она виртуальная, и общаться с гипервизором напрямую.

🩵Диски: Используйте шину VirtIO (или VirtIO-SCSI).
🩵Сеть: Модель адаптера virtio.

Как проверить в XML (virsh edit):


<target dev='vda' bus='virtio'/>
<model type='virtio'/>



Важно: Для Windows-гостей понадобятся драйверы virtio-win.iso.


2. Дисковый кэш и I/O

Если вы используете LVM или raw-файлы, стандартный кэш Linux может создавать лишние копии данных в RAM.

Решение:

1. Cache mode: Ставим none. Это отключает кэширование на хосте (Direct I/O). VM сама управляет своим кэшем, что быстрее и безопаснее для баз данных.
2. IO mode: Ставим native. Использует нативный Linux AIO (Asynchronous I/O).


<driver name='qemu' type='raw' cache='none' io='native'/>



3. CPU Pinning (Привязка ядер)

Самый мощный буст для процессорозависимых задач.
По умолчанию планировщик Linux перекидывает потоки vCPU виртуалки между любыми физическими ядрами хоста. Это убивает L1/L2/L3 кэш процессора (Context Switching).

Решение: Жестко привязать виртуальные ядра к физическим.

Пример для 4-ядерной VM (привязываем к ядрам 2,3,4,5 физического хоста):


<cputune>
<vcpupin vcpu='0' cpuset='2'/>
<vcpupin vcpu='1' cpuset='3'/>
<vcpupin vcpu='2' cpuset='4'/>
<vcpupin vcpu='3' cpuset='5'/>
</cputune>



Pro Tip: Не используйте "ядро 0" хоста — оставьте его для самого гипервизора и системных прерываний.




🚀 Чек-лист для максимальной скорости:

1. Драйверы: Только VirtIO (net + blk).

2. Диски: Формат RAW (или LVM volume), кэш none.

3. CPU: Pinning + режим host-passthrough (чтобы VM видела все инструкции процессора, включая AES-NI и AVX).

4. Память: Если у вас сотни Гб RAM, включите Hugepages (страницы по 2Mb или 1Gb вместо 4Kb), чтобы разгрузить таблицу страниц памяти.

А вы заморачиваетесь с тюнингом или для ваших задач хватает дефолтных настроек? Делитесь опытом в комментах!

#sysadmin #kvm #performance #tuning #linux #virtio

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133
☁️ KVM + Cloud-Init: Настройка сервера «без рук»

В продолжение поста. Мы научились поднимать "железо" через Terraform. Но что толку от запущенной VM, если в нее нужно заходить через VNC-консоль, вручную создавать пользователя, прописывать пароли и ставить nginx?

Это медленно и небезопасно.

Решение Cloud-Init. Это стандарт де-факто для инициализации облачных инстансов (AWS, Azure, DigitalOcean), который прекрасно работает и на локальном KVM.

🎯 Задача

При команде terraform apply:

1. Создать VM.
2. Автоматически создать пользователя admin.
3. Закинуть туда ваш публичный SSH-ключ (чтобы заходить без пароля).
4. Установить Nginx и Docker.

📝 Шаг 1. Пишем конфиг (cloud_init.cfg)

Создайте файл cloud_init.cfg. Это обычный YAML, который описывает, что нужно сделать внутри ОС при первом старте.


#cloud-config
hostname: my-web-server
fqdn: my-web-server.local
manage_etc_hosts: true

users:
- name: admin
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- ssh-rsa AAAAB3Nza... (ваш публичный ключ id_rsa.pub)

packages:
- nginx
- htop
- git

runcmd:
- [ systemctl, enable, nginx ]
- [ systemctl, start, nginx ]
- [ echo, "Hello from Cloud-Init!", >, /var/www/html/index.html ]



🔗 Шаг 2. Подключаем к Terraform

В наш файл main.tf (из прошлого поста) добавляем ресурс диска Cloud-Init. Terraform создаст маленький ISO-образ с нашим конфигом и подключит его как CD-ROM к виртуалке.


# 1. Читаем конфиг
data "template_file" "user_data" {
template = file("${path.module}/cloud_init.cfg")
}

# 2. Создаем диск с настройками
resource "libvirt_cloudinit_disk" "commoninit" {
name = "commoninit.iso"
user_data = data.template_file.user_data.rendered
}

# 3. Цепляем к машине
resource "libvirt_domain" "vm" {
# ... остальные настройки ...

# Самая важная строчка:
cloudinit = libvirt_cloudinit_disk.commoninit.id

# ...
}



🚀 Результат: Вы запускаете terraform apply.
Через 30 секунд у вас есть поднятый сервер с установленным Nginx. Вы просто пишете:
ssh admin@<ip-address>
...и сразу попадаете внутрь. Никаких паролей, никаких ручных установок.


💡 Важный нюанс: Cloud-Init работает только на специальных Cloud Images (например, Ubuntu Cloud, CentOS GenericCloud, Debian Cloud).
Если вы попытаетесь скормить ему обычный установочный ISO (Desktop/Server installer), магии не произойдет, там нет демона cloud-init, который читает конфиг при загрузке.

Коллеги, а вы используете Cloud-Init или по старинке Ansible/Chef/Puppet накатываете настройки уже после того, как машина загрузилась?

#sysadmin #cloudinit #terraform #kvm #devops #automation #linux

📲 Мы в MAX

👉 @sysadminof
4👍3🤨2🔥1
📊 Мониторинг KVM: Prometheus + Grafana + Node Exporter

Мы подняли парк виртуальных машин. Но как узнать, что на web-server-01 закончилась память, а db-02 уперлась в полку по CPU? Смотреть htop на каждом сервере не выход.

Строим классический стек мониторинга. Это стандарт индустрии: бесплатно, гибко и выглядит так, что начальство будет в восторге.

🛠 Три мушкетера мониторинга

1. Node Exporter: Агент-шпион. Ставится на каждую Linux-машину (VM). Собирает метрики (CPU, RAM, Disk, Net) и отдает их по HTTP.

2. Prometheus: База данных (TSDB). Периодически опрашивает всех агентов («скрейпит») и сохраняет историю изменений.

3. Grafana: Красивая "морда". Рисует графики, дашборды и шлет алерты в Telegram.


🚀 Шаг 1. Ставим агента (на каждую VM)

На целевой виртуалке скачиваем и запускаем node_exporter.
Самый простой способ - через Systemd, чтобы он стартовал сам.

Создаем юнит /etc/systemd/system/node_exporter.service:


[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target



Не забудьте открыть порт 9100 в фаерволе!

💾 Шаг 2. Настраиваем Prometheus (Сервер мониторинга)

На сервере мониторинга в prometheus.yml добавляем наши виртуалки в список целей:


scrape_configs:
- job_name: 'kvm_vms'
static_configs:
- targets:
- '192.168.122.10:9100' # web-server
- '192.168.122.11:9100' # db-server



Перезапускаем Prometheus. Теперь он каждые 15 секунд (по дефолту) ходит к виртуалкам и спрашивает: «Как дела?».

🎨 Шаг 3. Визуализация в Grafana

Заходим в Grafana -> Data Sources -> Add Prometheus.
А теперь магия: не нужно рисовать графики вручную!

1. Идем в Dashboards -> Import.

2. Вводим ID готового дашборда: 1860 (или 11074).

3. Нажимаем Load.

Вуаля! У вас перед глазами полная картина: загрузка ядер, потребление RAM, IOPS дисков и сетевой трафик по каждой машине.


💡 Pro Tip для KVM: libvirt-exporter

Node Exporter показывает то, что видит сама виртуалка. Но иногда виртуалка "врет" или зависает так, что агент не отвечает.

Чтобы видеть ситуацию снаружи (со стороны гипервизора), поставьте на хост-машину libvirt-exporter.
Он берет метрики напрямую из KVM/QEMU. Вы увидите:

🩵Реальное потребление CPU (включая Overhead).
🩵Статус машин (Running/Paused/Shutdown).
🩵Проблемы с дисками на уровне хоста.

👉 Zabbix или Prometheus? Кто чем пользуется в проде и почему?

#sysadmin #monitoring #prometheus #grafana #devops #linux

📲 Мы в MAX

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72