Системное администрирование

Искусство поддержания IT-инфраструктуры в рабочем состоянии, обеспечения безопасности и эффективности систем.

Узнать больше

Что такое системное администрирование?

Определение

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

Системный администратор (сисадмин) отвечает за установку, настройку, обновление и устранение неполадок в IT-инфраструктуре организации.

Роли и обязанности

• Установка и настройка ОС и ПО

• Управление пользователями и правами доступа

• Обеспечение безопасности систем

• Резервное копирование и восстановление данных

• Мониторинг производительности систем

• Устранение неисправностей

Необходимые навыки

• Знание операционных систем (Windows, Linux)

• Понимание сетевых технологий

• Навыки работы с базами данных

• Знание языков скриптования

• Умение решать проблемы

• Коммуникационные навыки

Основные задачи сисадмина

Управление пользователями

Создание, изменение и удаление учетных записей пользователей, управление группами и правами доступа.

Пример: PowerShell
# Создание нового пользователя
New-LocalUser -Name "Ivanov" -Description "Новый сотрудник" -NoPassword

# Добавление пользователя в группу
Add-LocalGroupMember -Group "Пользователи" -Member "Ivanov"

# Установка пароля
Set-LocalUser -Name "Ivanov" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

Мониторинг систем

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

Пример: Bash
# Просмотр использования дискового пространства
df -h

# Мониторинг процессов
top

# Проверка использования памяти
free -h

# Мониторинг сетевых соединений
netstat -tuln

Резервное копирование

Организация регулярного резервного копирования данных и тестирование процедур восстановления.

Пример: Bash скрипт
#!/bin/bash
# Скрипт резервного копирования

BACKUP_DIR="/backups"
DATE="$(date +%Y%m%d)"
SOURCE_DIR="/var/www/html"

# Создание резервной копии
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR"

# Удаление старых резервных копий (старше 30 дней)
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +30 -delete

Инструменты системного администратора

Мониторинг

• Zabbix - система мониторинга IT-инфраструктуры

• Nagios - мониторинг сетевых сервисов

• Prometheus + Grafana - сбор метрик и визуализация

• Wireshark - анализ сетевого трафика

Управление конфигурацией

• Ansible - автоматизация развертывания и управления

• Puppet - управление конфигурациями инфраструктуры

• Chef - автоматизация инфраструктуры

• Docker - контейнеризация приложений

Удаленное управление

• SSH - безопасное удаленное подключение

• RDP - удаленный рабочий стол Windows

• TeamViewer - удаленный доступ к компьютерам

• PuTTY - SSH-клиент для Windows

Практические примеры

Автоматизация с помощью PowerShell

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

Backup-Script.ps1
# Скрипт резервного копирования с уведомлением

param(
    [string]$SourcePath = "C:\Data",
    [string]$BackupPath = "D:\Backups",
    [string]$SmtpServer = "smtp.company.com",
    [string]$EmailTo = "admin@company.com"
)

# Создание имени файла с датой
$BackupFile = "Backup_$(Get-Date -Format 'yyyyMMdd_HHmmss').zip"
$FullBackupPath = Join-Path $BackupPath $BackupFile

# Создание резервной копии
try {
    Compress-Archive -Path $SourcePath -DestinationPath $FullBackupPath -CompressionLevel Optimal
    $Success = $true
    $Message = "Резервное копирование успешно завершено: $BackupFile"
}
catch {
    $Success = $false
    $Message = "Ошибка при резервном копировании: $_"
}

# Отправка уведомления
Send-MailMessage -SmtpServer $SmtpServer -To $EmailTo -Subject "Резервное копирование" -Body $Message

Настройка веб-сервера на Linux

Bash-скрипт для автоматической установки и настройки веб-сервера Nginx:

nginx-setup.sh
#!/bin/bash

# Обновление системы
apt update && apt upgrade -y

# Установка Nginx
apt install nginx -y

# Запуск и включение автозапуска Nginx
systemctl start nginx
systemctl enable nginx

# Настройка брандмауэра
ufw allow 'Nginx Full'
ufw enable

# Создание директории для сайта
mkdir -p /var/www/example.com/html
chown -R www-data:www-data /var/www/example.com

# Создание конфигурационного файла
cat > /etc/nginx/sites-available/example.com << EOF
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    
    index index.html index.htm;
    
    location / {
        try_files \$uri \$uri/ =404;
    }
}
EOF

# Активация сайта
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

# Проверка конфигурации и перезагрузка
nginx -t
systemctl reload nginx

Лучшие практики

Безопасность

• Регулярно обновляйте системы и приложения

• Используйте сложные пароли и двухфакторную аутентификацию

• Ограничивайте права доступа по принципу минимальных привилегий

• Регулярно проводите аудит безопасности

• Используйте брандмауэры и системы обнаружения вторжений

Резервное копирование

• Следуйте правилу 3-2-1: 3 копии, 2 разных носителя, 1 копия вне площадки

• Регулярно тестируйте восстановление из резервных копий

• Автоматизируйте процесс резервного копирования

• Шифруйте резервные копии

• Ведите журнал резервного копирования

Документирование

• Ведите документацию по инфраструктуре

• Документируйте процедуры устранения неполадок

• Создавайте схемы сети

• Ведите журнал изменений

• Создавайте инструкции для пользователей