Найти в Дзене
Просто о сложном

Скрипты, которые реально облегчают жизнь сисадмину

Скрипт — это не «сложный код», а просто короткая инструкция, которую выполняет система за тебя. Рассказываю, какие скрипты реально работают и что именно они делают. Если ты системный администратор и до сих пор всё делаешь руками — рано или поздно устанешь. Не потому что лень, а потому что одно и то же. Чистка кэша, перезапуск служб, проверка дисков, выгрузка пользователей — всё это можно и нужно поручить скриптам. Скрипт — это по сути текстовая команда, которую система выполняет по расписанию или при запуске. Ниже — несколько рабочих примеров, которые я использую сам. И объясняю не только «что они делают», но и зачем это нужно. 1. Очистка временных файлов (Windows) Задача: система начинает тормозить, а ты видишь: диск почти забит. Особенно часто — в Temp. bat @echo off chcp 65001 >nul echo [%date% %time%] Очистка временных файлов... rem Очистка пользовательских временных файлов echo Очистка %TEMP% del /s /q "%TEMP%\*.*" >nul 2>&1 rem Очистка системных временных файлов (требует прав адм

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

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

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

1. Очистка временных файлов (Windows)

Задача: система начинает тормозить, а ты видишь: диск почти забит. Особенно часто — в Temp.

bat

@echo off

chcp 65001 >nul

echo [%date% %time%] Очистка временных файлов...

rem Очистка пользовательских временных файлов

echo Очистка %TEMP%

del /s /q "%TEMP%\*.*" >nul 2>&1

rem Очистка системных временных файлов (требует прав администратора)

echo Очистка C:\Windows\Temp

del /s /q "C:\Windows\Temp\*.*" >nul 2>&1

echo [%date% %time%] Очистка завершена.

Что делает:

  • Удаляет все временные файлы из пользовательской и системной папки.
  • /s — рекурсивно по папкам, /q — без подтверждений.

Как использовать:

  • Сохрани в файл с расширением .bat
  • Запусти вручную или через планировщик задач (например, каждую неделю в 4 утра)

Реальный эффект:
На некоторых рабочих станциях после такой очистки освобождается по 5–10 ГБ.

2. Проверка свободного места и отправка письма (PowerShell)

Задача: диск забивается, никто не замечает — пока не упадёт бэкап или база.

powershell

$thresholdGB = 10

$from = "monitor@example.com"

$to = "admin@example.com"

$smtpServer = "smtp.example.com"

$port = 587

$cred = Get-Credential

$drives = Get-PSDrive -PSProvider 'FileSystem'

foreach ($d in $drives) {

$freeGB = [math]::Round($d.Free / 1GB, 2)

if ($freeGB -lt $thresholdGB) {

$subject = "Low disk space on $($d.Name): $freeGB GB left"

$body = "Disk $($d.Name) has only $freeGB GB free."

Send-MailMessage -From $from -To $to -Subject $subject -Body $body `

-SmtpServer $smtpServer -Port $port -UseSsl -Credential $cred

}

}

Что делает:

  • Проверяет все диски на машине
  • Если свободного места меньше 10 ГБ — шлёт письмо администратору

Что нужно:

  • PowerShell 5.0+
  • Настроенный SMTP-сервер (или корпоративный)

Зачем:
Ты узнаешь о проблеме
до того, как что-то перестанет работать.

3. Перезапуск службы, если она упала (Windows)

Задача: служба зависла. Пользователь жалуется. Или не жалуется — а проблема уже есть.

powershell

$serviceName = "wuauserv"

$logPath = "C:\Logs\service_check.log"

$service = Get-Service -Name $serviceName

if ($service.Status -ne "Running") {

Restart-Service -Name $serviceName

"$((Get-Date).ToString('u')) Служба $serviceName была перезапущена" >> $logPath

} else {

"$((Get-Date).ToString('u')) Служба $serviceName работает нормально" >> $logPath

}

Что делает:

  • Проверяет, работает ли служба Центра обновлений Windows
  • Если нет — перезапускает её

Как использовать:

  • В планировщике задач — каждые 15 минут
  • Или вложить в сценарий утренней диагностики

Можно адаптировать:
Для любой другой службы, например, Exchange, 1С, Apache.

4. Архив логов и удаление старых архивов (Linux)

Задача: логов становится слишком много, и они занимают место. Но удалить всё нельзя — надо хранить хотя бы месяц.

bash

#!/bin/bash

BACKUP_DIR="/backup"

LOG_SOURCE="/var/log"

TODAY=$(date +%F)

ARCHIVE="$BACKUP_DIR/logs_$TODAY.tar.gz"

mkdir -p "$BACKUP_DIR"

# Создание архива (исключаем systemd journal, если не нужно)

tar --exclude='/var/log/journal' -czf "$ARCHIVE" "$LOG_SOURCE"

# Удаление архивов старше 30 дней

find "$BACKUP_DIR" -name "logs_*.tar.gz" -mtime +30 -deleteЧто делает:

  • Сохраняет /var/log в архив с датой
  • Удаляет архивы, которым больше 30 дней

Как использовать:

  • В crontab — каждый день, в 3 ночи
    0 3 * * * /home/admin/scripts/log_backup.sh

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

5. Выгрузка пользователей из Active Directory (PowerShell)

Задача: нужен список сотрудников — кому открыт доступ, кто активен.

powershell

Import-Module ActiveDirectory

$reportPath = "C:\Reports\users_$(Get-Date -Format 'yyyyMMdd').csv"

Get-ADUser -Filter * -Property Name, EmailAddress, Enabled |

Select-Object Name, EmailAddress, Enabled |

Sort-Object Name | Export-Csv -Path $reportPath -NoTypeInformation

Что делает:

  • Получает список всех пользователей в AD
  • Сохраняет их имена, почту и статус в файл CSV

Для кого полезно:

  • Отделу кадров
  • Безопасности
  • Для планового аудита учёток

Как обычно напоминаю, что это образцы кода, которые скорее всего придется адаптировать под твою систему. Не копируй бездумно, разберись и пойми. RFTM.

Вывод

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

#сисадмин #автоматизация #powershell #bash #скрипты #инструменты