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

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

РКН: https://kurl.ru/nQejS
Download Telegram
Как расширить диск сервера в CentOS? (Часть 1)

Очень частая ситуация: виртуальная машина на Linux (CentOS) работает долго, пока в какой-то момент не заканчивается место. В Hyper-V или VMware можно просто увеличить виртуальный диск, но внутри системы ничего не изменится, и сервер все равно будет считать, что дисковое пространство осталось прежним.

В этой инструкции разберем, как расширить диск в CentOS, управляя Physical Volume (PV), Volume Group (VG) и Logical Volume (LV).

Можно ли расширить существующий диск?

Перед тем как что-то делать, проверьте, есть ли у вас возможность создать новый раздел.

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

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

fdisk -l


Пример вывода, где можно добавить новый раздел:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM


У нас 2 раздела — значит, можно добавить еще 2.

А вот если уже 4 раздела, то расширение невозможно:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM
/dev/sda3 2637 19581 136110712+ 8e Linux LVM
/dev/sda4 19582 22844 26210047+ 8e Linux LVM


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

Если у вас менее 4 разделов, идем дальше!

Создание нового раздела

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

1️⃣Проверяем текущие диски командой:

fdisk -l


Пример вывода:

Disk /dev/sda: 10.7 GB, 10737418240 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 391 3036285 8e Linux LVM


2️⃣ Запускаем fdisk для редактирования диска:

fdisk /dev/sda


3️⃣Внутри утилиты вводим:
• n → создаем новый раздел
• p → выбираем Primary (основной)
• Указываем номер (например, 3)
• Дважды нажимаем Enter, чтобы использовать все доступное место

4️⃣Меняем тип раздела на LVM (8e):

t
3
8e


5️⃣Сохраняем изменения:

w


Обновление таблицы разделов

Теперь нужно, чтобы система увидела новый раздел. Запускаем:

partprobe -s


Если не сработало, попробуйте:

partx -v -a /dev/sda


Если после этого новый раздел не появился, придется перезагрузить сервер.

Проверяем результат:

fdisk -l


Если новый раздел появился (например, /dev/sda3), значит, все прошло успешно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
💬 Вопрос на собеседовании для сисадмина

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


Вопрос: В чем разница между source script.sh и ./script.sh в bash?

Ответ: При запуске ./script.sh создается новый процесс, и все переменные внутри скрипта остаются только в его окружении. После завершения скрипта изменения не затрагивают текущую сессию.

При выполнении source script.sh (или . script.sh) код исполняется в текущем процессе shell, а все изменения (например, объявленные переменные) сохраняются в текущей сессии.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍222🔥21
Продвинутые CLI-команды для разработчиков (Часть 1)

Нет, здесь мы не будем говорить о базовых командах вроде ls, rm и cd. Вы и так их знаете.

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

Wget — загрузка файлов из сети

wget — это утилита для скачивания файлов по HTTP, HTTPS и FTP. Работает в фоновом режиме, не требует взаимодействия с пользователем и позволяет загружать файлы даже после выхода из системы.

Простой пример скачивания файла:

wget https://website.com/static/images/header.jpg


Полезные опции:
• -c — продолжить загрузку, если она была прервана
• -O — задать имя выходного файла
• -r — рекурсивная загрузка (например, всей папки)

Скачивание сайта целиком:

wget -r -np -k https://example.com


SCP — безопасное копирование файлов между серверами

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

Копирование файла с удаленного сервера на локальный компьютер:

scp [email protected]:/path/to/foobar.txt /local/directory/


Копирование файла с локального компьютера на удаленный сервер:

scp /local/directory/foobar.txt [email protected]:/path/to/destination/


Копирование каталога (с флагом -r):

SSH-ключи — избавляемся от ввода пароля

Чтобы автоматизировать SSH-подключения и работу с Git, создайте пару ключей с помощью:

ssh-keygen -t ed25519


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

ssh-copy-id [email protected]


Теперь можно подключаться без пароля:

ssh [email protected]


CHMOD — управление правами доступа

Изменение прав доступа к файлам:

chmod 664 robots.txt
chmod 775 public/images


Расшифровка:
• 664 — владелец и группа могут читать и записывать, остальные — только читать
• 775 — владелец и группа могут читать, записывать и выполнять, остальные — только читать и выполнять

Полный доступ ко всем:

chmod 777 script.sh
👍16
🤣13👍3😱2🥱2😁1
Слышали ли вы, что...

SRE — это просто «продвинутый DevOps»,
внедрение SRE требует огромных ресурсов и подходит только гигантам вроде Google,
SRE занимается только устранением инцидентов.

Правда в том, что эти и многие другие убеждения далеки от реальности. Мы собрали для вас PDF-файл, в котором разоблачаем самые популярные мифы о SRE.

Это must-have для тех, кто хочет понять, как SRE может помочь именно вашей работе и бизнесу, без лишних сложностей и заблуждений.

📍Переходите к боту-помощнику и забирайте полезный PDF прямо сейчас 🔗

Реклама. ООО "СЛЁРМ". ИНН 3652901451. erid: 2W5zFGro77n
👍2
Продвинутые CLI-команды для разработчиков (Часть 2)

Продолжаем разбирать полезные команды, которые помогут вам работать быстрее и эффективнее в терминале.

Tar — архивируем файлы в консоли

tar позволяет создавать и извлекать архивы без потери структуры каталогов.

Создать архив без сжатия:

tar -cvf my-archive.tar /path/to/directory


Создать сжатый архив (с gzip):

tar -czvf my-archive.tar.gz /path/to/directory


Распаковать архив в текущую папку:

tar -xvf my-archive.tar


Распаковать в указанную папку:

tar -xvf my-archive.tar -C /home/user/folder/


Alias — сокращаем длинные команды

Если вы часто вводите длинные команды, создайте для них псевдонимы (alias).

Пример:

alias gs="git status"
alias ll="ls -lah"


Теперь вместо git status можно просто писать gs.

Но! Эти псевдонимы временные — после перезапуска терминала они исчезнут.

Чтобы сделать их постоянными, добавьте их в ~/.bashrc или ~/.zshrc:

echo 'alias gs="git status"' >> ~/.bashrc
source ~/.bashrc


Совет 1: Перенаправление вывода

Вместо того чтобы читать длинный вывод команды в терминале, его можно сохранить в файл:

ls -al > output.txt  # Сохранение вывода в файл
ls -al >> output.txt # Добавление в файл без перезаписи


А если нужен и файл, и экран — используем tee:

ls -al | tee output.txt

Совет 2: Объединение команд


Запустить несколько команд подряд:

ls -al; pwd;

Запустить вторую команду только если первая успешна:

mkdir images && cd images


Запустить вторую команду только если первая провалилась:

mkdir images || echo "Папка уже существует"
👍132
Какие знания ключевые для успешного ИБ-специалиста?
🔴 Знание компьютерных сетей позволяет выявлять 70% уязвимостей, настраивать защиту и анализировать трафик, что критично для предотвращения 90% атак.

Освойте сети за 4 месяца на курсе от Академии Кодебай — стартуем 3 марта. Регистрация

Курс создан для: Junior IT-специалистов, системных администраторов, Web-разработчиков, сетевых инженеров, которые хотят досконально освоить архитектуру сетей

Содержание курса:
✦ Изучение топологии сетей, видов сетевого оборудования
✦ Маршрутизация данных и управление доступом к среде
✦ Протокол IP, транспортный и прикладной уровни
✦ Система имен DNS, безопасность в сетях и противодействие атакам

По всем вопросам пишите @Codeby_Academy
👍2
👍16😁7💯32
Какой инструмент позволяет просматривать открытые сокеты в Linux и фильтровать их по PID?
Anonymous Quiz
23%
netstat
22%
ss
26%
lsof
29%
Все перечисленные
😁10👍6👌3
Настройка и использование Docker Compose

Docker Compose — это инструмент для управления многоконтейнерными приложениями.

Он позволяет описывать и запускать сервисы через YAML-файл, а затем управлять ими с помощью всего одной команды.

1️⃣Установка и настройка проекта

Создайте каталог проекта и перейдите в него:

mkdir composetest  
cd composetest


Создайте файл app.py с простым веб-приложением на Flask + Redis:

import time
import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)

@app.route('/')
def hello():
count = get_hit_count()
return f'Hello World! I have been seen {count} times.'


Создайте requirements.txt для зависимостей:

flask  
redis


Теперь напишем Dockerfile, который описывает, как собирать контейнер:

FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]


2️⃣ Конфигурация Docker Compose

Создайте docker-compose.yml, в котором определим сервисы:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"


Здесь:
web — наше Flask-приложение, которое собирается из Dockerfile.
redis — сервис Redis, использующий готовый образ.

3️⃣ Запуск проекта

Теперь просто запустите Compose:

docker-compose up


Вы должны увидеть вывод, похожий на этот:

Creating network "composetest_default" with the default driver
Creating composetest_web_1 ...
Creating composetest_redis_1 ...
web_1 | * Running on https://0.0.0.0:5000/


Откройте в браузере https://localhost:5000/, и приложение начнет считать посещения.

4️⃣ Горячая правка кода без пересборки

Чтобы не пересобирать контейнер при изменении кода, обновите docker-compose.yml:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"


Теперь код изменяется на лету, без пересборки образа.

Пример: измените app.py:

return f'Hello from Docker! I have been seen {count} times.'


Перезагрузите страницу в браузере — новый текст появится без перезапуска контейнера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161
💬 Вопрос на собеседовании для DevOps-инженера

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


Вопрос: Как работает Consul и зачем он нужен?

Ответ: Consul — это сервис для сервис-открытия (service discovery), распределенного хранения конфигураций и автоматизации сетевого взаимодействия. Он позволяет сервисам находить друг друга и обмениваться данными без жестко заданных адресов.

Основные компоненты:
Agent: работает на каждом узле, собирает информацию о сервисах и проверяет их работоспособность.
Service Registry: хранит данные о доступных сервисах и их состоянии.
KV-хранилище: используется для хранения конфигурационных данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🌐 Маршрутизация — это основа сетей. Но насколько хорошо вы в ней разбираетесь?

На открытом вебинаре 5 марта в 20:00 мск мы рассмотрим следующие ключевые аспекты:
- Разберемся, зачем нужна маршрутизация и какая она бывает.
- Рассмотрим статическую и динамическую маршрутизацию.
- Реализуем статическую и динамическую маршрутизацию в сети на практике.

 🎁Успейте зарегистрироваться и получите скидку на большое обучение «Network Engineer»: 👉 cсылка

🔗 Присоединяйтесь, чтобы стать настоящим мастером маршрутизации! Ждем вас! 🚀

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
👍2🤣1
lshw – список железных компонентов сервера

Команда lshw помогает получить детальную информацию о “железе” сервера: процессоре, памяти, накопителях, сетевых интерфейсах, USB и аудио-устройствах.

Установка lshw

Если команда не исполняется, установите пакет:

CentOS

sudo yum install lshw


Debian/Ubuntu

sudo apt install lshw


Вывод информации о компонентах

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

lshw -short


Пример вывода:

H/W path          Device       Class      Description
=====================================================
system Virtual Machine
/0 bus Virtual Machine
/0/5 processor Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz
/0/51 memory 4GiB System Memory
/0/1 scsi2 storage
/0/1/0.0.0 /dev/sda disk 160GB SCSI Disk
/0/1/0.0.0/1 /dev/sda1 volume 500MiB EXT4 volume
/1 eth0 network Ethernet interface


Другие полезные команды

Вывод в развернутом виде:

lshw


Сохранение в файл:

lshw > hardware_info.txt


Информация только о CPU:

lshw -C CPU
👍162
🤣28😁5
6 полезных трюков для работы с Linux (Часть 1)

Если вы администрируете сервер на Linux и часто работаете в Bash, вот три полезных трюка, которые могут упростить вашу жизнь.

1️⃣Автодополнение с Tab

Если вы только начали работать в Linux, автодополнение может стать вашим лучшим другом. Нажатие Tab позволяет завершать команды и названия файлов автоматически.

Пример: Вы хотите запустить docker-compose, но не помните точное название? Просто начните вводить и нажмите Tab:

docke<Tab>


Система сама допишет docker-compose (если он установлен). Это удобно, когда у файла длинное название или вы забыли его точное написание.

2️⃣ Пайплайн команд (|)

Символ | (пайп) передает результат одной команды в другую.

Пример: Вам нужно найти файл с названием recording010101 в директории:

ls | grep recording010101


Тут:
ls показывает список файлов,
grep фильтрует результат и показывает только нужный файл.

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

3️⃣ Использование маски (*)

Символ * (звездочка) помогает работать с группами файлов.

Пример: Удаление всех файлов, начинающихся с recording01:

rm recording01*


Будьте осторожны! Команда rm * удалит ВСЁ в директории!

Этот трюк полезен при написании скриптов для автоматической очистки логов.


В следующем посте продолжим
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤣9
Intel обновила драйверы Wi-Fi и Bluetooth для Windows 10 и 11

Intel выпустила новые версии драйверов Wi-Fi и Bluetooth (23.120.0) для Windows 10 и 11, добавив улучшенное распознавание беспроводных сетей, обновления нормативных стандартов и доработки Bluetooth.

Помимо этого, версия 23.120.0 исправляет мелкие баги, повышая производительность, стабильность и функциональность.

Какие устройства поддерживаются?

Драйверы доступны для 64-разрядных версий Windows 10 и 11 с сетевыми картами:
Wi-Fi 7: Intel BE202, BE201, BE200
Wi-Fi 6E: Intel AX411 (Gig+), AX211 (Gig+), AX210 (Gig+)
Wi-Fi 6: Intel AX203, AX201, AX200, AX101
Wireless-AC: Intel 9560, 9461/9462, 9260

Важно: Wi-Fi 6E и Wi-Fi 7 поддерживаются только в Windows 11.

Где скачать?
Wi-Fi 23.120.0.3 — скачать
Bluetooth 23.120.03 — скачать

Ранее Intel уже выпускала обновления, исправляющие BSOD при высокой сетевой нагрузке и ошибки «Сети Wi-Fi не найдены» при подключении к Miracast.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤨7🤬1
6 полезных трюков для работы с Linux (Часть 2)

Если вы уже знакомы с основами Bash, давайте разберем более сложные техники, которые могут серьезно ускорить работу в Linux.

4️⃣ Перехват вывода и редирект ошибок

Часто приходится сохранять результат команды, но стандартный вывод (stdout) и ошибки (stderr) идут в один поток. Это можно разнести:

command > output.txt 2> errors.txt


Здесь:
• > — сохраняет стандартный вывод в output.txt
• 2> — записывает ошибки в errors.txt

Чтобы объединить оба потока в один файл:

command > all_output.txt 2>&1


Еще мощнее — использовать tee, чтобы одновременно сохранять и видеть вывод в терминале:

command | tee log.txt


5️⃣ Работа с историей команд

В Bash есть мощные инструменты для работы с историей команд. Вот несколько полезных приемов:
• !! — выполняет последнюю команду (например, если забыли sudo):

sudo !!


• !n — выполняет команду из истории под номером n (узнать номер можно через history).
• !grep — повторяет последнюю команду, начинающуюся с grep.
• CTRL + R — интерактивный поиск по истории. Начните вводить команду, а затем нажимайте CTRL + R, пока не найдете нужную.

6️⃣ Фоновый режим, приостановка и диспетчер задач в терминале

Если запустили команду без &, но хотите отправить ее в фон, нажмите CTRL + Z, затем выполните:

bg


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

fg


Если процессов несколько, можно вывести их список командой:

jobs


А для управления запущенными процессами используйте htop или kill:

kill -9 <PID>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤣21
💬 Вопрос на собеседовании для сисадмина

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


Вопрос: В чем разница между exec и fork в bash?

Ответ: Команда fork создает новый процесс, который является дочерним по отношению к текущему. Родительский процесс продолжает выполняться параллельно с дочерним. Например, при запуске скрипта ./script.sh создается новый процесс, независимый от родительского.

Команда exec заменяет текущий процесс новым, не создавая дочернего. Это означает, что после выполнения exec command текущий процесс завершится, а вместо него будет работать новый. Это полезно для оптимизации, когда не требуется возвращаться в исходный процесс.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤣6
FTP на своем компьютере? Легко!

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

Конечно, можно использовать облачные сервисы, но если у вас терабайты данных, хранить их в облаке не всегда удобно. Здесь на помощь приходит локальный FTP-сервер.


Выбор программы: FileZilla Server

Многие знакомы с клиентом FileZilla, но не все знают, что у него есть серверная часть. Она бесплатная, простая в установке и отлично подходит для организации FTP-сервера на домашнем ПК или ноутбуке.

1️⃣Установка FileZilla Server
Скачиваем программу с официального сайта, устанавливаем и выбираем опцию “Установить как службу”, чтобы сервер запускался автоматически при включении компьютера.

2️⃣ Базовая настройка
В меню Edit → Settings указываем порты для входящих соединений (лучше выбрать значения выше 1023 для безопасности), настраиваем число потоков (число ядер × 2) и таймауты соединений.

Если сервер будет доступен извне, включаем Passive Mode и указываем:
• Диапазон портов для соединений
• Внешний IP-адрес или Dynamic DNS (если IP-адрес меняется)

3️⃣ Настройка Dynamic DNS
Если провайдер выдаёт динамический IP, воспользуемся No-IP или аналогичным сервисом. Это позволит подключаться к серверу по доменному имени (mycomp.com), а не по IP.

4️⃣ Создание пользователей и директорий
Добавляем пользователя (Edit → Users), задаем пароль, назначаем домашнюю папку и права доступа. Можно создать разные директории и разрешения для каждого пользователя.

5️⃣ Настройка маршрутизатора (Port Forwarding)
Чтобы получить доступ к FTP-серверу из Интернета, на роутере нужно перебросить порты (раздел “Виртуальные серверы” или “Port Forwarding”):
• Внешний порт: 21
• Внутренний порт: 21
• IP-адрес: локальный IP сервера

6️⃣ Разрешение доступа в брандмауэре
В Windows Defender Firewall создаем новое правило:
• Открываем порты TCP/21 и диапазон для Passive Mode
• Разрешаем соединения для всех профилей сети
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😐2🤝21👎1