Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
20 videos
34 files
557 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Какой инструмент используется для поиска утечек памяти в программе на Linux?
Anonymous Quiz
36%
strace
14%
valgrind
13%
gdb
38%
top
👍10
Команда ionice — Управление приоритетами ввода-вывода

Команда ionice позволяет управлять приоритетом операций ввода-вывода (I/O) для процессов в Linux.

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

Зачем использовать ionice?

1️⃣Устранение конфликтов:
Вы можете снизить влияние ресурсоемких процессов на более важные задачи.
2️⃣Оптимизация производительности:
Используется для повышения скорости критически важных операций, таких как базы данных или резервное копирование.
3️⃣ Контроль ресурсов:
Администратор может задать точные правила, определяя, какой процесс и с каким приоритетом будет работать с диском.

Основные классы приоритетов

ionice работает с тремя классами:
Idle (Класс 3):
Процесс выполняет операции ввода-вывода только тогда, когда диск не занят другими задачами.
Best-effort (Класс 2, значение по умолчанию):
I/O операции выполняются с указанным приоритетом (от 0 — самый высокий, до 7 — самый низкий).
Realtime (Класс 1):
Процесс получает доступ к диску немедленно, игнорируя другие задачи. Использовать с осторожностью!

Примеры использования
1️⃣Установить минимальный приоритет для резервного копирования:
Если вы запускаете резервное копирование с помощью rsync и не хотите, чтобы оно замедляло сервер:

ionice -c3 rsync -a /source /destination


2️⃣ Проверить текущий приоритет процесса:
Для процесса с PID 1234:

ionice -p 1234


Вывод покажет текущий класс и приоритет процесса.

3️⃣Установить высокий приоритет для базы данных: Если нужно ускорить работу MySQL:

ionice -c1 -p $(pgrep mysqld)


4️⃣ Запуск ресурсоемкого скрипта с низким приоритетом:
Для минимизации влияния скрипта на другие задачи:

ionice -c2 -n7 ./heavy_script.sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Microsoft создаёт AI Shell для командной строки Windows 11

Microsoft завершила тестирование новой интерактивной оболочки AI Shell, которая интегрирует возможности искусственного интеллекта непосредственно в Windows PowerShell.

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


Пример использования AI Shell: запрос о отображении списка файлов на компьютере больше 200 МБ, который после нескольких уточнений ИИ преобразовал в подходящую команду.

AI Shell также обладает функцией генерации кода.

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

На данный момент оболочка поддерживает два ИИ-инструмента: Azure OpenAI и Copilot. 


Однако пользователи могут добавлять и другие инструменты, что открывает возможности для выбора наиболее подходящей модели для конкретных задач.
👍12
Apache Maven – установка и настройка

Apache Maven - это инструмент управления проектами и автоматизации сборки с открытым исходным кодом, основанный на концепции объектной модели проекта (POM – Project Object Model), которая в основном используется для развертывания приложений на основе Java, но также может использоваться в проектах, написанных на C#, Ruby и другиех языках программирования.

В посте мы объясним, как установить и настроить последнюю версию Apache Maven в системе CentOS 7 (данная инструкция также работает с дистрибутивом RHEL и Fedora).

Установка OpenJDK 8 в CentOS 7
Java Development Kit (JDK)
является основным требованием для установки Apache Maven, поэтому сначала установите Java в системе CentOS 7 из репозитория по умолчанию и проверьте версию с помощью следующих команд.

# yum install -y java-1.8.0-openjdk-devel
# java -version


Если установка прошла успешно то, вы увидите следующий вывод.

openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)


Установка Apache Maven в CentOS 7

Далее перейдите на оф страницу загрузки Apache Maven и загрузите последнюю версию или используйте следующую команду wget, чтобы загрузить ее в домашний каталог maven ‘/usr/local/src’.

# cd /usr/local/src
# wget https://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz


Настройка среды Apache Maven

Теперь нам нужно сконфигурировать переменные окружения для предварительно скомпилированных файлов Apache Maven в нашей системе, создав файл конфигурации «maven.sh» в каталоге «/etc/profile.d» .

# cd /etc/profile.d/
# vim maven.sh


Добавьте следующую конфигурацию в файл конфигурации «maven.sh».

# Apache Maven Environment Variables

# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2

export M2_HOME=/usr/local/src/apache-maven
export PATH=${M2_HOME}/bin:${PATH}


Теперь сделайте конфигурационный файл «maven.sh» исполняемым, а затем загрузите конфигурацию, выполнив команду «source» .

# chmod +x maven.sh
# source /etc/profile.d/maven.sh


Проверка версии Apache Maven

Чтобы проверить установку Apache Maven, выполните следующую команду.

# mvn --version


И вы должны получить вывод, похожий на следующий:

Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T19:33:14+01:00)
Maven home: /usr/local/src/apache-maven
Java version: 9.0.4, vendor: Oracle Corporation, runtime: /opt/java/jdk-9.0.4
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.17.6-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"
👍111
Админы, было такое?
😁38👍12💯9🤣4🔥2
С наступающим Новым годом! 🥳

Три полезные команды для администрирования файловой системы


1️⃣inotifywait — мониторинг изменений в реальном времени

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

inotifywait -m /var/log/


Отображает события в реальном времени (добавление, изменение, удаление файлов). Полезно при поиске причин непредвиденных изменений в системе или отслеживании активности пользователя.

2️⃣ setfacl — настройка расширенных прав доступа

Команда setfacl позволяет задавать права доступа для отдельных пользователей или групп, не ограничиваясь стандартными атрибутами chmod.

setfacl -m u:username:rw /path/to/file


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

3️⃣ rename — массовое переименование файлов

Команда rename переименовывает файлы, используя регулярные выражения. Это полезно, если нужно быстро изменить множество имен файлов.

rename 's/old/new/' *.txt


Заменяет текст в именах файлов (в данном случае old на new) и идеально подходит для массовой обработки файлов, таких как логические архивы или бэкапы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
Nvidia откроет исходный код Run:ai

Nvidia завершила сделку по приобретению израильской компании Run:ai, которая разрабатывает программное обеспечение для технологий искусственного интеллекта.

Теперь Nvidia планирует открыть исходный код платформы стартапа.


Run:ai помогает корпоративным клиентам оптимизировать вычислительную нагрузку и управлять кластерами GPU на уровне дата-центров.

Основатели стартапа Омри Геллер и Ронен Дар заявили, что открытие исходного кода ускорит развитие экосистемы ИИ.

Хотя Run:ai изначально поддерживает только GPU от Nvidia, открытие кода позволит сделать платформу доступной для более широкой аудитории.

Nvidia и Run:ai сотрудничают с 2020 года, и это партнёрство уже доказало свою эффективность, особенно для крупных корпоративных клиентов.


🔥 Эта инициатива Nvidia станет важным шагом для развития сообщества open source, расширяя возможности использования искусственного интеллекта на глобальном уровне.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
Основы команды SCP в Linux – безопасное копирование файлов

SCP (Secure Copy) — это команда для безопасного копирования файлов между системами Linux или Unix через зашифрованное соединение SSH. Благодаря этому данные остаются защищёнными даже при попытках перехвата.

Примеры использования SCP
1️⃣Копирование файлов с локального на удалённый сервер
Чтобы скопировать файл test.txt в каталог /location2 на удалённом сервере:

scp test.txt username@destination:/location2


2️⃣ Копирование всех файлов определённого типа
Для передачи всех файлов .txt из домашнего каталога в удалённую систему:

scp ~/files/*.txt username@destination:/location/


3️⃣ Переименование файлов во время копирования
Чтобы скопировать файл test.txt и сохранить его на удалённой системе под новым именем:

scp test.txt username@destination:/location/renamed_file.txt


4️⃣ Использование нестандартного порта
Если сервер SSH настроен на порт 1234:

scp -P 1234 test.txt username@destination:/location2/


Советы по использованию SCP
Будьте осторожны с перезаписью файлов: SCP автоматически перезаписывает файлы с одинаковым именем в каталоге назначения.
Контроль разрешений: Убедитесь, что у вас есть права на чтение/запись в исходной и целевой системах.

Для стабильной передачи больших файлов используйте SCP в сочетании с терминальным мультиплексором, например, tmux, чтобы избежать потери прогресса при разрыве соединения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое “Canary Deployment” и как оно помогает в процессе развертывания?

Ответ: Canary Deployment — это стратегия развертывания, при которой новая версия приложения сначала внедряется на небольшом числе серверов (canary-серверах), чтобы протестировать её на реальных пользователях перед полномасштабным развертыванием.

Принцип работы:
• Сначала новая версия развертывается на ограниченной группе пользователей.
• Мониторинг производительности и ошибок помогает определить, стоит ли расширять развертывание на всю инфраструктуру.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Три полезные команды для работы с SSH в Linux

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

Разберём три менее популярные, но крайне удобные команды для управления через SSH.


1️⃣ssh-copy-id — Быстрая настройка ключей SSH

Чтобы не вводить пароль каждый раз при подключении к удалённому серверу, можно использовать SSH-ключи. Команда ssh-copy-id автоматизирует процесс их передачи.

Пример использования:

ssh-copy-id username@remote_host


После выполнения этой команды ваш публичный SSH-ключ будет добавлен в файл ~/.ssh/authorized_keys на удалённом сервере. Теперь вы можете подключаться без ввода пароля.

Почему полезно:
• Ускоряет настройку серверов.
• Устраняет необходимость в ручной передаче ключей.

2️⃣ sshfs — Монтирование удалённой файловой системы

С помощью sshfs можно монтировать удалённый сервер в локальную файловую систему. Это позволяет работать с файлами так, как будто они находятся на вашем компьютере.

Установка:

sudo apt install sshfs  # Для Debian/Ubuntu  
sudo yum install sshfs # Для CentOS/RHEL


Пример монтирования:

sshfs username@remote_host:/remote/directory /local/mountpoint


Чтобы размонтировать файловую систему:

fusermount -u /local/mountpoint


Почему полезно:
• Удобно для работы с файлами на сервере без использования SCP или SFTP.
• Подходит для редактирования конфигураций напрямую.

3️⃣ autossh — Перезапуск соединения при обрывах

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

Установка:

sudo apt install autossh  # Debian/Ubuntu  
sudo yum install autossh # CentOS/RHEL


Пример использования:

autossh -M 0 -f -N -L 8080:remote_host:80 username@remote_host


Эта команда создаёт туннель через порт 8080 и поддерживает его активным.

Почему полезно:
• Устраняет необходимость ручного восстановления соединения.
• Надёжно работает даже в условиях плохой сети.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥54
Какой параметр в конфигурации sshd_config определяет максимальное количество попыток аутентификации для SSH?
Anonymous Quiz
33%
MaxAuthTries
46%
MaxLoginAttempts
14%
AuthMaxTries
7%
MaxTries
👍51🔥1
Команда at — Запуск задач по расписанию в Linux

at — это команда для одноразового планирования задач. В отличие от cron, который работает с повторяющимися заданиями, at позволяет запустить задачу в точно указанное время.

Основные примеры использования

1️⃣Запуск задачи через определённое время

Чтобы запланировать выполнение команды через 10 минут:

echo "sudo apt update" | at now + 10 minutes


После этого система обновит список пакетов через 10 минут.

2️⃣Запуск задачи в конкретное время

Например, чтобы запустить скрипт в 18:30:

echo "/path/to/script.sh" | at 18:30


Скрипт выполнится ровно в указанное время.

3️⃣ Просмотр запланированных задач

Чтобы увидеть список всех задач, выполните:

atq


Команда покажет ID задач и время их выполнения.

4️⃣ Удаление запланированной задачи

Для отмены задачи используйте её ID, который показывает atq:

atrm <task_id>


Почему at полезна?
• Удобно для одноразовых задач, например, перезагрузки сервера ночью.
• Не требует настройки сложных расписаний, как в cron.
• Легко управлять через команды atq и atrm.

Пример реального применения

Системный администратор может использовать at для автоматического перезапуска службы после ночных обновлений:

echo "systemctl restart nginx" | at 02:00


Задача выполнится без необходимости присутствия администратора.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍244
💬Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.

Вопрос: Как работает Consistent Hashing, и почему оно важно в распределенных системах?

Ответ: Consistent Hashing — это алгоритм, обеспечивающий равномерное распределение данных между узлами в системе, минимизируя перестановку данных при изменении количества узлов.

Принцип работы:
• Хэш-пространство представляется в виде кольца. Узлы и ключи мапируются на это кольцо.
• Ключ передается ближайшему узлу по часовой стрелке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
RAID-технологии в Windows Server

#RAID (Redundant Array of Independent Disks) — это метод объединения нескольких физических дисков в одно логическое хранилище с целью повышения производительности, надежности или их комбинации.

RAID 0

Стрипирование данных, где информация разделяется и записывается на два или более дисков.

Это увеличивает производительность чтения и записи данных, но отсутствует резервное копирование, что делает этот уровень менее надежным в случае отказа одного из дисков.

RAID 1

Зеркалирование данных, при котором каждый диск имеет точную копию другого. 


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

RAID 5

Полосовое распределение данных с паритетной информацией.

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

RAID 6

Расширенная версия RAID 5 с двойной паритетностью.

Он обеспечивает защиту данных от отказов до двух дисков, делая хранилище еще надежнее.

RAID 10 (или 1+0)

Это комбинация RAID 1 и RAID 0. Данные стрипируются (как в RAID 0) и зеркалируются (как в RAID 1). 


Это обеспечивает высокую производительность и высокий уровень надежности, но требует минимум четырех дисков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥴32
Этапы изучения Linux 😅
👍36😁112
Создание собственного WIM-образа Windows

WIM (Windows Imaging Format) — это формат файлов, используемый для хранения образов операционных систем Windows.

Он позволяет гибко управлять компонентами и упрощает процесс развертывания.


Основные преимущества WIM-образов:

Универсальные методы развертывания: WIM-файлы можно развернуть с USB-носителя, через сетевой ресурс или с помощью технологий WDS и SCCM.
Редактируемость: Можно подключить образ для добавления или удаления компонентов, драйверов и обновлений.
Обновляемость: Поддержка актуальных обновлений без полного захвата системы.

Структура установочного носителя Windows

На носителе Windows Server 2019 хранятся два ключевых WIM-файла:
Boot.wim: отвечает за загрузку предустановочной среды.
Install.wim: содержит образы ОС.

Например, в Install.wim могут быть сохранены сразу несколько редакций Windows Server 2019. Для работы с этими файлами часто требуется добавить драйверы или обновления.

Почему важно обновлять образы?

Актуальные образы ускоряют установку и сокращают сетевую нагрузку. 


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

🔥Чтобы работать с WIM-файлами, используется утилита DISM — инструмент для обслуживания образов Windows. В следующем посте мы рассмотрим, как с её помощью добавлять драйверы и обновления в WIM-образ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥9
Релиз Total Commander 11.50: что нового?

Начало 2025 года ознаменовалось выходом Total Commander 11.50 — одной из самых популярных программ для управления файлами.

Новая версия обновила встроенный FTP-клиент с поддержкой FXP, добавила улучшения для анализа дискового пространства, синхронизации файлов и работы с архивами (ZIP, RAR, TAR и другими).


Совместимость:
Total Commander 11.50 поддерживает Windows от версии 3.1 до Windows 11, что делает его универсальным инструментом как для современных, так и для старых систем.

Что нового?

Вот основные изменения и доработки:
Секунды в поле даты: теперь можно отображать точное время изменения файла.
Метки томов: за буквами дисков отображаются их названия для удобной навигации.
Улучшенная корзина: исходное расположение удаленных файлов теперь видно в комментариях.
Миниатюры ссылок: отображение целевых файлов вместо их ярлыков.
Выбор метода контрольной суммы: полезно при работе с файлами, где требуется уточнение метода проверки.
Интеграция с 7zip: сжатие теперь работает через библиотеку 7zip dll, что повышает стабильность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍241
Обслуживание и редактирование WIM-образов с помощью DISM

DISM (Deployment Image Servicing and Management) — это утилита командной строки для обслуживания образов Windows.

Она позволяет редактировать WIM-файлы, добавлять обновления, драйверы и компоненты, не развертывая ОС.

Основные возможности DISM:
• Просмотр и редактирование компонентов системы.
• Добавление и удаление драйверов.
• Интеграция обновлений.
• Подключение и отключение приложений в формате *.appx.

Шаги по редактированию WIM-образа

1️⃣Определение индекса образа

WIM-файл может содержать несколько образов ОС. Чтобы узнать их индексы, выполните команду:

Dism.exe /get-wiminfo /wimfile:D:\Images\sources\install.wim


В PowerShell:

Get-WindowsImage -ImagePath D:\Images\sources\install.wim


2️⃣ Монтирование образа

Для редактирования образа его нужно смонтировать:

Dism.exe /mount-image /imagefile:D:\Images\sources\install.wim /index:2 /mountdir:C:\mount


PowerShell:

Mount-WindowsImage -ImagePath D:\Images\sources\install.wim -Index 2 -Path C:\mount


Добавление драйверов и обновлений

Интеграция драйверов

Чтобы добавить драйверы из папки D:\Drivers в образ, выполните:

Dism.exe /image:C:\mount /Add-Driver /driver:D:\Drivers /recurse


PowerShell:

Add-WindowsDriver -Path C:\mount -Driver D:\Drivers -Recurse


Добавление обновлений

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

Dism.exe /image:C:\mount /Add-Package /PackagePath:D:\Updates\update.msu


PowerShell:

Add-WindowsPackage -Path C:\mount -PackagePath D:\Updates\update.msu


Сохранение изменений

После внесения изменений сохраните их командой:

Dism.exe /Unmount-Wim /MountDir:C:\mount /commit


Для отмены изменений:

Dism.exe /Unmount-Wim /MountDir:C:\mount /discard
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203🔥2
Какой из указанных режимов SELinux запрещает выполнение любых действий, нарушающих политики безопасности?
Anonymous Quiz
41%
Enforcing
32%
Permissive
15%
Disabled
12%
Auditing
👍4🔥1
Тонкая настройка SSH для безопасности серверов

SSH — это основной инструмент удаленного управления серверами, но стандартные настройки часто становятся уязвимостью для атак.

Правильная конфигурация позволяет значительно повысить уровень безопасности.


Шаги по защите SSH

1️⃣Измените порт по умолчанию
Порт 22 — стандартная цель для брутфорс-атак. Чтобы усложнить задачу злоумышленникам, измените его на нестандартный:

sudo nano /etc/ssh/sshd_config  


Найдите строку Port 22 и укажите другой порт, например Port 2222. Затем перезапустите службу SSH:

sudo systemctl restart sshd  


2️⃣ Запретите вход для root
Вход под root-аккаунтом повышает риск компрометации. Чтобы его отключить, в файле sshd_config измените параметр:

PermitRootLogin no  


3️⃣ Используйте ключи вместо паролей
Аутентификация по ключам надежнее, чем по паролям. Создайте ключи с помощью команды:

ssh-keygen -t rsa -b 4096  


Затем добавьте публичный ключ на сервер:

ssh-copy-id user@server_ip  


Отключите аутентификацию по паролю:

PasswordAuthentication no  


4️⃣ Ограничьте доступ по IP
Если к серверу подключаются только с определенных адресов, настройте правила на стороне брандмауэра (например, с помощью UFW или iptables).

5️⃣ Настройте Fail2Ban
Этот инструмент блокирует IP-адреса, с которых происходят многочисленные неудачные попытки входа:

sudo apt install fail2ban  


После установки Fail2Ban автоматически начнет защищать сервер от брутфорса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍316🔥4
😁56👍5😐5